Weblogic Interview Questions
Explain deployment descriptors?
Deployment descriptors are associated with almost all the modules as well as applications. The deployment descriptors can be seen in the form of XML documents and they are capable of describing the contents that are part of directory or the jar file. J2EE specifications usually define the standard as well as the deployment descriptors which are portable for J2EE applications and modules.
What is web.xml ?
Web.xml is an XML document that is mainly for application purpose and it helps in listing out the J2EE components and configuration that of your application in J2EE modules format.
What is the name of default JVM that is made used for WebLogic?
The sun hotspot JDK default is made used for development, JRockit is the one used for production of WebLogic 11g as well as 12c. Operating system is another factor that helps in choosing the certified JDK JVM.
Explain the methods for providing user credentials for starting the server?
At the time of the creation of domain, the wizard for setting configuration asks for the details like user name, password etc. from the user who is logging in for the first time as an administrator. If the domain is created in development mode, the configuration wizard saves the encrypted password as well as the username inside an identity file. This file is available for reference during the time of booting so that in the absence of this file, system can prompt the user for the purpose of entering credentials. A new boot – identity file can be created if you want to change the use credentials or else if you are having the requirement of creating domain in the production mode.
Is there any possibility for starting managed server during the absence of administrator server?
The usual process is that in case of any difficulty for the manager server to get connected to any administration server at the time of start up, there is an option for the managed server to retrieve the configuration related to it from the configuration files as well as other files involved. The information thus retrieved cannot be altered and it is possible only when the administration server is really available. When the administration server is unavailable, then the managed server enters into its independence mode for carrying out its operations.
What are the capabilities of WebLogic server?
There are various capabilities associated with WebLogic server and they are
- Changes in dynamic configuration.
- Production application redeployment
- Rolling upgrades.
Explain about the function associated with T3 in WebLogic server ?
T3 provides enhancements support for the messages of WebLogic server. The enhancements comprise of the object replacement, the working of the seblogic server – clusters and also HTTP. T3 also performs serialization of java object and also predation of RMI. T3 can be considered as a superset associated with java object. T3 is mandated between WebLogic servers, programmatic clients and cluster associated with WebLogic server. The protocols HTTP and IIOP are made used for enabling communication between WebLogic server and processes.
Explain the use of HTTP ?
HTTP is the protocol that is made used for the purpose of enabling communication between the WebLogic server and processes.
Explain the functionality of IIOP ?
OIIP is a kind of protocol helpful in enabling the communication between WebLogic server and object request broker.
How do stubs function inside WebLogic server cluster at the time of failure?
Stubs perform the process of removing the failed instance from the list whenever there is a failure. The stub usually makes use of DNS for finding the running server and also for obtaining the list of the instances that are currently available with the application. List of the instances available with the server inside cluster gets periodically refreshment and allows in acquiring advantages associated with new servers. The advantages are gained as the server gets added to the cluster.
How can default JVM be changed to other?
For changing the JVM can be done by following the steps below.
- You should first set the JAVA_HOME in the start script of the server.
- Change the config.xml of domain for using the JRockit javac.exe
- Remove any kind of switches specific to Sun JVM from start scripts of server.
How clients handle the DNS – requests to the failed servers?
Bandwidth gets wasted in the case of continues DNS requests to that of unavailable machine at the time of server failure. This problem usually occurs during the time of startup associated with the application that of client side. The servers that are unavailable are removed by searching DNS entries provided by WebLogic server. This removal prevents the clients from accessing failed servers. A third party load – balancers are made used for avoiding the unnecessary DNS requests. Some of the third party load – balancers are BigIP, resonate, local director and Alteon. The main function of these third party loads – balancers is to mask multiple addresses of DNS in to a single one.
Explain the functionality of T3 associated with WebLogic server?
T3 is capable of providing framework or overall structure for the messages that are capable of supporting the enhancements. The enhancements comprises of product tunneling, working in the context associated with clusters of WebLogic server and also in object replacement.
How can classpath be set?
Classpath can be set by making use of the following script WL_HOME\server\bin\setWLSEnv.cmd (in case of windows).
Explain the functioning of Stub?
Stub is usually expected by the people who connect to the WebLogic server cluster. The stub has the list that consists of the available instances of server that perform host implementations associated with object. The stub also has the functionality of balancing the load by distributing load amongst the host servers.
What are the steps for the creation of Pooling within Tomcat server?
- The first step involved in this process of creating pooling is to download 3 jar files which are the commons-dbcp-1.2 jar, commons-pool-1.3.jar and commons-collections-3.1 jar.
- The next step is to make an entry inside server.xml of tomcat factory.
How can you differentiate server crash and server hang?
With a server crash, there is no existence for the Java process and if it is a server hang, then the Java process stops responding.
What are the causes for server crash?
The major reasons for the occurrence of server crash are the native IO, JVM, supported configuration, JDBC driver issues and SSL native libraries.
How can you solve the issue of server crash?
A crash associated with JVM is capable of generating hs_err_pid file. You need to refer this file for finding out the root cause for such a crash. In the case of native IO being the origin of thread, you need to disable it. If the origin of the problem is from the driver, need to contact the driver team.
How can Server Hang be solved?
Java WebLogic.Admin PING needs to be checked for finding whether you get a normal and positive response. You can find out the root cause for hanging from this file. You just need to rectify the errors that are identified from this file.
Explain the reasons for server hang?
The major reasons that lead to the server hang are memory leak, deadlock, and long time for returning.
Define memory leak ?
Memory leak is the condition that arises when the objects get retained in the heap even after they have no use.
What causes the condition OUT OF MEMORY?
There are various reasons that can lead to this condition and they are
- Insufficient size of the heap compared to the extra load.
- Placing of the objects takes longer period of time like that of HTTP sessions.
- Occurrence of memory leak inside the application code.
- The prevention of occurrence of full GC because of JVM bug.
How can the OUT OF MEMORY be solved?
There is a possibility for collecting the memory data after enabling GC – verbose. If the condition has aroused because of HTTP session, then it will be automatically solved when the session gets time out. You should also verify the code associated with the handling of jdbc connectivity. You should also optimize the size of the heap by considering the load.
When can high usage of CPU occur?
This is the condition that usually occurs when a single thread or process makes use of a larger portion of the CPU in an unexpected manner.
How can the issue associated with high CPU usage be solved?
In windows platform the issue of CPU high usage can easily be solved by making use of pslist and also with the process explorer to observe the function performed by the thread or the process.
Explain the term clustering?
Clustering is the process of grouping the servers together for accomplishing high percentage of scalability and availability.
What is the purpose of clustering?
The major goal of performing the process of clustering is to make high scalability as well as availability of the servers possible. This process also helps in balancing the load in a proper manner and also accomplishes failover.
How can cluster communication occur?
The communication through cluster is made possible by the multicast IP as well as port by the process of sending periodic messages which are normally called as heartbeat messages.
What are the various types of WebLogic installations?
The WebLogic installation usually occurs in three different modes which are:
- Graphical mode
- Console mode
- Silent mode.
What is Graphic mode?
It is a kind of installation type that makes use of interactive GUI.
What is console mode?
This is a kind of installation type that follows interactive text based method.
What is silent mode?
This is a method of installation that is non-interactive and is usually based on the .xml properties – file.
What is Unicast?
Unicast is the method used in the clustering technique where there are cluster master and each server should ping to this cluster master for informing that the server is alive.
What is Multicast?
It is a kind of clustering system where there is no cluster master and each and every server needs to ping each other for informing their existence. Multicasting has many messages to be sent in the form of ping as each server needs to inform all others about its existence. This condition creates much complexity associated with the method compared to unicast.
What is a stage deployment?
Stage deployment is a kind of process in which the admin gets a physical copy which is distributed to the other instances.
What is non-stage deployment?
There is no copy in the administrator but each and every server needs to contact the source directly for getting the item to be deployed.
How can port number be checked?
Port number can be checked by using netstat-na|grep connected.
How to find out the listening ports?
Listening ports can be found out by using netstat-na|grep listen.
How to check the version of Java?
Version of java can be checked by using [roo@h1vm/]#java-version.
How is it informed when the server is added to the cluster?
The availability of the new server in the cluster is broadcasted by the WebLogic server – cluster.
How many WebLogic servers can be held inside a multi-processor machine?
There is no limitation for the number of servers.
What is application tuning?
This process involves ejb pool – size cache and jsp recompilation.
What is OS tuning?
This is the process of setting up TCP/IP parameters.
What is Core Server tuning?
This is the process involving the tuning of work manager, chuck size, performance packs, chunk pool size and connection backlog buffering.
What is JVM tuning?
This process involves monitoring of the garbage collection and the tuning of gc strategy.
What is a Machine?
Machine is the logical representation that of the physical machine.
What is Node Manager?
Node manager is a service from Java that is capable of running separate process other than that of WebLogic server.
What is a domain?
Domain can be defined as the group which comprises of various WebLogic – server resources.
How do you differentiate between a server hang and server crash issue?
When a Server crahes, the JAVA process no longer exists. When the Server is hung, it stops responding.
We can use the weblogic.ADMIN utilty to ping the server. In case of a hang situation we can take multiple thread dumps and analyze the cause of hang.
What can be the various reasons for a server crash?
- Native IO
- SSL Native Libraries
- Supported Configuration
- JDBC Driver issue
How do you troubleshoot a crash?
- JVM crash generates a hs_err_pid file. We need to look into the stack trace of the hs_err_pid file .
- If the thread is from a native io, we need to disable native io.
- if the stack trace is from the driver, we need to get in touch with the drive team.
- Quite possibly its a problem with driver. Changing the type of driver can be a workaround.
- If the thread shows it coming from an optimized code, we can turn of optimization.
- If the stack is from native calls of application, its a bug with the application and it has to b modified.
Ho do you troubleshoot Server Hang?
We can use java weblogic.Admin PING to check if we get a normal response.
We need to take multiple thread dumps with kill -3 pid on unix and CTLR Break on Windows.
Analyze the thread dump to find the root cause.
What can be the reasons of Server hang?
Memory leak, databse query taking a long time to return, Deadlock.
What is memory leak?
Memory leak is when objects are not romved from the heap even when they are not required.
What are the various causes for OUT OF MEMORY?
- Insufficient heap size, not able to match the extra load.
- Objects licing too long, like HTTP Sessions.
- Memory leak in application code.
- Full GC not happening due to JVM Bug.
How to troubleshoot and overcome such issues?
- Gather memory data by enabling GC verbose.
- If its due to Http Session, timing out http session after certain interval might help.
- Look into the code for jdbc connection handling.
- Optimizing the heap size according to the load.
When does High CPU Usage occur?
It occurs when one process or one thread utilizes unexpectedly high proportion of CPU.
How to troubleshoot it?
In Solaris environment, we need to take pstack and prstack and see what the threads are doing.
In Windows we need to use pslist and process explorer.
What is Clustering and what is achieved through it?
Clustering is the grouping together of servers for the purpose of high availability and scalability.
Load balancing and Failover is achieved.
How does Cluster Communication Happen?
Members of the Cluster communicate over the Cluster Multicast IP and Port by sending periodic heart beat messages.
What is the difference between the Sun JVM and BEA JRockit JVM?
The most well know JVM is the implementation from Sun. The Sun JVM is called HotSpot. The Sun JVM is shipped in the Java Developer’s Kit (JDK) and Java Runtime Environment (JRE) from Sun.
The BEA JRockit JVM from BEA systems is optimized for reliability and performance for server side applications. To achieve this, BEA JRockit JVM uses technologies such as code generation, hot spot detection, code optimization, advanced garbage collection algorithms and tight operating system integration.
TUning JVM Parameters.
If you have a single processor, single thread machine then you should use the serial collector (default for some configurations, can be enabled explicitly for with -XX:+UseSerialGC). For multiprocessor machines where your workload is basically CPU bound, use the parallel collector. This is enabled by default if you use the -server flag, or you can enable it explicitly with -XX:+UseParallelGC. If you’d rather keep the GC pauses shorter at the expense of using more total CPU time for GC, and you have more than one CPU, you can use the concurrent collector (-XX:+UseConcMarkSweepGC). Note that the concurrent collector tends to require more RAM allocated to the JVM than the serial or parallel collectors for a given workload because some memory fragmentation can occur.
How do you do performance tuning of WLS?
It can be categorized in 4 parts.
a. Application Tuning.
jsp precompilation, ejb pool size cache..
- OS Tuning
Setting tcp ip parameter.
- Core Server Tuning.
tune workmanager, tune chuck size and chunck pool size, using performance packs, conenction backlog buffering.
- JVM Tuning
tuning gc strategy, monitoring garbage collection..
What is the difference between Development mode and Production mode of Weblogic Server?
- The default JDK for development domain is Sun Hotspot.
- You can use the demo certificates for SSL.
- Auto deployment(to admin server only) is enabled.
- Server instances rotate their log files on start-up.
- Admin Server uses an automatically created boot.properties during start-up.
- The default maximum capacity for JDBC Datasource is 15.
- The debugFlag which is used to start the WebLogic Workshop Debugger is enabled.
- In Development Mode any configuration change being done by a user doesn’t need him to take a Lock and Edit session.
- Availability of web service test client.
- Nodemanger username and password: Default Admin credentials.
- Availability of Classloader Analysis Tool: Yes.
- Default start parameters when using Sun JDK and the default startWebLogic script : java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=256m.
- The default JDK for production domain is JRockit.
- If you use the demo certificates for SSL a warning is displayed.
- Auto deployment(to admin server only) is disabled.
- Server instances rotate their log files when it reaches 5MB.
- Admin Server prompts for username and password during start-up.
- The default maximum capacity for JDBC Datasource is 25.
- The debugFlag which is used to start the WebLogic Workshop Debugger is disabled.
- In Production Mode the user needs to procure a Lock and Edit session before trying to make any configurational changes.
- No Availability of web service test client.
- Nodemanger username and password: Randomly generated
- Availability of Classloader Analysis Tool: No.
- Default start parameters when using Sun JDK and the default startWebLogic script : java -server -Xms256m -Xmx512m -XX:MaxPermSize=256m.
What is HTTP tunneling? How can we configure it on Weblogic?
HTTP tunneling provides a way to simulate a stateful socket connection between WebLogic Server and a Java client when your only option is to use the HTTP protocol. It is generally used to tunnel through an HTTP port in a security firewall. HTTP is a stateless protocol, but WebLogic Server provides tunneling functionality to make the connection appear to be a regular T3Connection.
Steps to configure Http tunneling.
Login into the Admin Console, click on the server on which you want to enable he Http Tunneling feature
Click on the Protocols tab ? General ? check the “Enable Tunneling” check box.
Now you can communicate with the JVMs (Server Instances) using protocols other than t3
What is the difference between T3 and HTTP protocol?
WebLogic uses the T3 protocols for internal and external connections to the servers. The T3 protocol often is used in WebLogic’s implementation of RMI. Proprietary of WebLogic Server.
Http protocols are used primarily for HTTP communication between the browser and the web server. Standard follows the W3C (World Wide Web Consortium).
Note: All of these protocols are, by default, multiplexed over the same connection to the server’s address and port. So you can access a web page hosted by the server using a URL such as http://host:port/page.jsp. An external client can set up an initial JNDI context to a server using the URL t3://host:port/. All that has changed is the protocol over which the client must communicate with the server.