I often get mails from people asking what are the questions generally asked in Weblogic by interviewers.
Generally for an Administrator’s positions, in addition to Weblogic questions, there are a lot of Unix questions and a few questions related to process and case handling.
These are the important questions that I cover while interviewing.
1. 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.
2. What can be the various reasons for a server crash?
a) Native IO
b) SSL Native Libraries
c) JVM
d) Supported Configuration
e) JDBC Driver issue
3. 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 optimzed 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.
4. 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.
5. What can be the reasons of Server hang?
Memory leak, databse query taking a long time to return, Deadlock.
6. What is memory leak?
Memory leak is when objects are not romved from the heap even when they are not required.
7. What are the various causes for OUT OF MEMORY?
a) Insufficient heap size, not able to match the extra load.
b) Objects licing too long, like HTTP Sessions.
c) Memory leak in application code.
d) Full GC not happening due to JVM Bug.
8. 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.
9. When does High CPU Usage occur?
It occurs when one process or one thread utilizes unexpectedly high proportion of CPU.
10. 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.
11. 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.
12. How does Cluster Communication Happen?
Members of the Cluster communicate over the Cluster Multicast IP and Port by sending periodic heart beat messages.
13. 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.
14. 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.
15. How do you do performance tuning of WLS?
It can be categorized in 4 parts.
a. Application Tuning.
jsp precompilation, ejb pool size cache..
b. OS Tuning
Setting tcp ip parameter.
tcp_time_wait_interval
tcp_conn_req_max_q
c. Core Server Tuning.
tune workmanager, tune chuck size and chunck pool size, using performance packs, conenction backlog buffering.
d. JVM Tuning
tuning gc strategy, monitoring garbage collection..
16. What is the difference between Development mode and Production mode of Weblogic Server?
Development Mode:
1. The default JDK for development domain is Sun Hotspot.
2. You can use the demo certificates for SSL.
3. Auto deployment(to admin server only) is enabled.
4. Server instances rotate their log files on start-up.
5. Admin Server uses an automatically created boot.properties during start-up.
6. The default maximum capacity for JDBC Datasource is 15.
7. The debugFlag which is used to start the WebLogic Workshop Debugger is enabled.
8. In Development Mode any configuration change being done by a user doesn’t need him to take a Lock and Edit session.
9. Availability of web service test client.
10. Nodemanger username and password: Default Admin credentials.
11. Availability of Classloader Analysis Tool: Yes.
12. 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.
Production Mode:
1. The default JDK for production domain is JRockit.
2. If you use the demo certificates for SSL a warning is displayed.
3. Auto deployment(to admin server only) is disabled.
4. Server instances rotate their log files when it reaches 5MB.
5. Admin Server prompts for username and password during start-up.
6. The default maximum capacity for JDBC Datasource is 25.
7. The debugFlag which is used to start the WebLogic Workshop Debugger is disabled.
8. In Production Mode the user needs to procure a Lock and Edit session before trying to make any configurational changes.
9. No Availability of web service test client.
10. Nodemanger username and password: Randomly generated
11. Availability of Classloader Analysis Tool: No.
12. Default start parameters when using Sun JDK and the default startWebLogic script : java -server -Xms256m -Xmx512m -XX:MaxPermSize=256m.
Ref :- http://impradeep.com/difference-between-production-and-development-mode-in-weblogic/
17. 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
18. 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.
19. How can you recover a failed admin server?
Ideally the admin server should listen on to a VIP. If something goes wrong to the admin server machine then the domain can be recreated on another machine from backup and the same VIP can be assigned. We can alternatively have the domain configuration on a shared file system so that is faster to recover on another machine.
20. What is the difference between unicast and multicast mode of clustering in WebLogic
Multicast | Unicast |
Only option in pre-10.0 versions of WLS, continues to exist in version 10+ | Available from WLS 10.0 onwards |
Uses UDP Protocol – which is not always reliable but WebLogic has built it’s own mechanism into the messages to detect packet losses and retransmission requirements. |
Uses TCP/IP |
Requires additional configurations to Routers, TTL when clustering across multiple subnets. | Requires no additional configuration to account for network topology. |
Requires configuring the Multicast Listen Address and Port. May need to specify the Network Interface to use on machines with multiple NICs. | Simply specify the listen address. Supports using the Default Channel or a Custom Network Channel for cluster communication. |
Each message delivered directly to and received directly from the network | Each message delivered to a group leader, which retransmits the message to other group members (N – 1) and any other group leaders (M – 1), if they exist. The other group leaders then retransmit the message to their group members resulting in up to NxM network messages for every cluster message. Message delivery to each cluster member takes between 1 and 3 network hops. |
Every server sees every other server | Group leaders act as a message relay point to retransmit messages to its group members and other group leaders. |
Cluster membership changes require 3 consecutive missed heartbeat messages to remove a member from the cluster list. | Cluster membership changes require only a single missed heartbeat message to remove a member from the cluster. |
Can anyone help me in understanding, what is the difference when we target jdbc data source to manage server and Admin server.
Hi Setu,
Ideally there should be no difference between targeting a jdbc data source to managed server and Admin Server unless the managed servers are in a cluster.
The JDBC datasource would be bound to the respective server JNDI tree.
Data Sources—In a cluster, external clients must obtain connections through a JDBC data source on the JNDI tree. The data source uses the WebLogic Server RMI driver to acquire a connection. The cluster-aware nature of WebLogic data sources in external client applications allows a client to request another connection if the server instance hosting the previous connection fails. Although not strictly required, Oracle recommends that server-side clients also obtain connections via a data source on the JNDI tree.
Recommended further reading.
http://docs.oracle.com/cd/E15051_01/wls/docs103/cluster/overview.html#JDBC
Cheers,
Anandraj
Can any one know about WSo2 ESB (Enterprise Bus Service).If so please share the stuff
Thanks Anandraj
How can we find if the connection pool is connected with database or not ? not by using the console?
Thanks for your valuable question and answer. It is very helpful for me.
Thanks George!
Any one can tel me why we are using Administration port in web logic server and what is the use of that one?
You can read here..
http://monduke.com/2008/03/21/the-weblogic-administration-port/
esb is used for the routing and filtering the assigned variables. the esb can be used in different apps. for example in soa10g we use it as esb and in soa11g we use it as a mediator in the composite application. in 11g there is no separate server for the esb.
reply me if anything wrong or you need more info
These questions are very useful to me.Anadraj would you please demonstrate how to deploy the application whose war file is not present but having all individual .jsp & servlet files,and all other project files.
Hi Kunal,
You will have to package the application as a war/ear so that u can deploy it.
Thanks,
How does 2 applications in 2 different domains communicate to each other?
Is it T3 or Http protocol?
its generally t3