Usually interviewer start with questions like introduction, daily role and responsibility etc apart from such questions these are few question that are generally asked in a Weblogic administration interview. Almost in every Weblogic administration interview the interviewer asks question from Apache(front end),linux/unix(OS platform) , sql(database) etc. I have covered these in separate post.
Q.) What is Weblogic server?
Ans.) A weblogic server is J2EE application server, its a instance of java process executing in java virtual machine(JVM). This server can be configured as a web server by making use of HTTP listener for supporting the HTTP.
A weblogic server act as a middle tire between back-end database and related applications and browser based thin clients.
Q.) What are the basic components of weblogic server?
1)Domains: Its a administrative boundary which logically relate the group of weblogic server resources as a single unit.
2)Admin Server: It is central point of control for the webLogic domain.Administration Server stores the master copy of the domain configuration. Weblogic domain can have only one admin server. We can access admin server by web console on any browser it is known as weblogic admin console. With admin server we can create, delete and configure the resources of a domain like managed server, machine, cluster, JDBC data source etc.
3)Manage server: Other than admin server every server in a weblogic domain is manage server. The application is deployed on manage server which means only manage server host and server the application.A domain can have any number of manage server depending on the requirement of application. Every manage server haas a copy of domain configurtaion i.e, copy from admin server during its start-up.
4.)Node Manager: Node Manager is a Java utility that runs as separate process from WebLogic Server which allows you to run common tasts(start, stop, suspend server etc) for a Managed Server using the Administration Console. Its not necessary to have a node manager for a manage server.The process of node manager runs on manage server. A machine can have only single node manage irrespective of number of manage servers on that machine.
5.)Machine: A machine represents a physical node where managed-servers can be located.The machine configuration includes information about the listen address and port number that the Administration Server uses to connect with the Node Manager process running on that machine.In a cluster, WebLogic Server uses machines to ensure that server session data is replicated on separate pieces of hardware.
6.)Weblogic Server Cluster: It is a logical group of WebLogic Managed Server Instances that work together to provide high availability and scalability for applications is called cluster. WebLogic Servers with in cluster can run on same machine or different machines.
Q.) What are the supported installation modes for WebLogic Server?
Ans.) Weblogic can be installed in three modes.
Graphical mode: This is GUI mode of installation.
Console mode: It is command line mode of installation.
Silent mode: In silent mode we give the xml file as a parameter containing the configuration.
For detail explaination on installtion check the weblogic installtion tab on my website.
Q.) What is the difference between server hang and server crash?
Ans.) When the server crash the JAVA process doesn’t exist that is it dies. On linux you can check this by process grep(ps -ef | grep yourprocessname). Server crash can be because of :
Ans.) Native IO
b) SSL Native Libraries
d) Supported Configuration
e) JDBC Driver issue
Incase of server hang, server stop responding. The JAVA process will still be there howevere the server won’t respond to any request it receives. To analyse the issue we take multiple thred dumps. Kill -3 PROCESSID or admin console can be used to take thr ead dump.
Server hang can happen when theres:
a) Memory leak
b) Databse query taking a long time to return
d) Out Of Memory
Q.) Whats memory leak how is it different from Out Of Memory?
Ans.) Memory leak is when objects are not romved from the heap even when they are not required.
On other hand Out Of memory issue comes when there is no space left for allocating required space for the new objects or libraries or native codes.This happens when the JVM is not able to allocate the required memory space for a Java Object.
Q.) Explain the diffrenece between web server and application server.
Ans.) Application Server Web Server
A server that exposes business logic to client applications A server that handles HTTP protocol.
through various protocols including HTTP.
Job Application server is used to serve web based applications Web server is used to serve web based applications. and enterprise based applications(i.e servlets,jsps and ejbs etc) (i.e servlets and jsps)
Application servers may contain a web server internally.
Exmaple Weblogic server, Jboss and WAS etc. Example Apache, tomcat , IIS and Jetty .
Q.) How Administration server and Managed servers will interact?
Ans.) Weblogic admin Server stores the master copy of the domain configuration, including the
configuration for all Managed Servers in the domain. Each Managed Server stores a local copy of the
domain configuration file. When a Managed Server starts, it connects to the Administration Server to
synchronize the configuration. When the configuration is changed, the Administration Server sends the
changed configuration to the Managed Servers.
Q.) Can you start manage server if weblogic admin server is down?
Ans.) Yes we can start the mamange server even if admin server is down. The manage server will start in MSI mode, MSI mode is Managed Server Independence. By default the manage server can start in MSI mode if admin server is unavailable.It can be changed from admin console : Environment > Servers > Server_Name > Tuning > Advanced > Managed Server Independence Enabled
Q.) Difference between Weblogic Development and Production Mode?
Ans.) Here are some basic difference between Weblogic Development Mode and Production Mode:
1) The default JDK for development domain is Sun Hotspot.
2) You can use the demo certificates for SSL.
3) Auto deployment is enabled
4) Server instances rotate their log files on startup
5) Admin Server uses an automatically created boot.properties during startup
6) The default maximum capacity for JDBC Datasource is 15
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 is disabled
4) Server instances rotate their log files when it reaches 5MB
5) Admin Server prompts for username and password during startup
6) The default maximum capacity for JDBC Datasource is 25
Q.) What is the difference between T3 protocol and HTTP protocol?
Ans.) In weblogic server the RMI(remote method invocation) communication uses T3 protocol to transport data between WebLogic Server and other Java programs, including clients and other WebLogic Server instances.T3 is weblogic proprietary the idea behind T3 to speed-up client server network interactions.
Http protocols are used primarily for HTTP communication between the browser and the web server.
Q.) How do you tune your weblogic JVM Parameters ?
Ans. ) Well the jvm tuning depends only on server and the application running on it. For a single processor, single thread machine you should use the serial collector GC (usually its by default however you can enable it explicitly with -XX:+UseSerialGC). If you have multiprocessor machines where your workload is basically CPU bound, use the parallel collector use -XX:+UseParallelGC to use parallel GC.
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.
Q.) What is the difference between the Sun hotspot jvm and BEA jrockit jvm?
Ans.) The Sun hotspot or now the Oracle hotspot jvm it is shipped in the Java Developer’s Kit (JDK) and Java Runtime Environment (JRE) from Sun.
JRockit was originally developed by Appeal and BEA Systems before being acquired by Oracle to run server software.It was meant to be optimized for large applications requiring long running tasks, a lot of memory and a scalable environment,
Having said that, i guess the main difference is the way they do garbage collection. It is depdends on your requirement which jvm you want to use speaking in context of weblogic server; JRockit is used in production side and sun hotspot is generally used in development mode.
Q.) How do you set the jvm parameters?
Ans.) We usually set the jvm parameters in server environment file which is read during server start-up.Following are the common jvm parameter on jrocket:
-Xgc to set static garbage collection.
E.g: -Xgc: singlecon (Single-spaced concurrent)
-Xgc: parallel (Single-spaced parallel)
-XgcPause to print out the pause times caused by the garbage collector during a run.
E.g output : [memory ] young collection pause time: 8.0086705 ms
-Xms to set the initial and minimum Java heap size.
E.g: -Xms:512m It will set the initial and minimum heap size to half a gig that is 512mb.
-Xmx to set the maximum Java heap size.
E.g: -Xms:2g It will set the initial and minimum heap size to a gig that is 1gb.
If both -Xmx and -Xms are specified the value of -Xmx must be larger than or equal to that of -Xms.
If both -Xmx and -Xns are specified the value of -Xmx must be larger than or equal to that of -Xns.
-Xns to set the nursery space. Java heap is divided into areas (or generations) like nursery (or young space) and the old space. The nursery is a part of the heap reserved for allocation of new objects. When the nursery becomes full, garbage is collected by running a special young collection, where all objects that have lived long enough in the nursery are promoted (moved) to the old space, thus freeing up the nursery for more object allocation. When the old space becomes full garbage is collected there, a process called an old collection.
E.g: -Xns:128m It will set the nursery heap size to 128mb.
Note: Nursery heap size can’t be more than maximum heap size.
-Xss to set the thread stack size. Thread stacks are memory areas allocated for each Java thread for their internal use.
E.g: -Xss:64m It will set the thread stack size to 64mb.