1.)What is the Request flow from client in WebSphere Environment ?
In general on a fully configured Environment the request flow will have many passes .An example is shown in the below .
Browser --> DNS Server --> Load Balancer --> WebServer(IHS) --> IBM Plug-in --> WebSphere Application Server ( Can have multiple JVM's)
From Browser ( It can be IE,Chrome,Firefox,Mozilla ..etc ) or from the mobile app’s the http or https request will be triggered . ex https://askmiddlewareexpert.com/test . Now the request will be sent to DNS for Host to Public IP resolution if the site is Public . It will get the public IP then the Internet Provider will route the traffic to Organisation Network by which the Public IP is registered . In the organisation Public IP Nat’ed to a Private IP . Private IP can be SLB( Load Balancer ) of the WebServer IP . From WebServer based on the context route (test) it verified the Plugin loaded information with the context route it get the JVM that server’s the request .If there are multiple server’s that serving the application request based on the load balancing algorithm traffic is redirected back to Application Server .
Application server may have DB connectivity ,LDAP connectivity ,AD connectivity ..etc depending on the Application requirement .
2)What are the environments you support?
Be honest and explain the environments you support. You may be supporting the following.Some org may have more .
Development
SIT
UAT
DEMO
Pre-production
Production
DR
3)What are the WebSphere editions available?
WAS – Network Deployment
WAS – Developers
WAS – z/OS
WAS – Hypervisor
WAS – Express
WAS – Base
WAS – Liberty core
4)What’s a command to stop and start DMGR, Nodeagent & JVM?
To stop
JVM – stopServer.sh JVMNAME
Nodeagent – stopNode.sh
DMGR – stopManager.sh
To start
JVM – startServer.sh JVMNAME
Nodeagent – startNode.sh
DMGR – startManager.sh
Note: Stopping of any WebSphere service need an ID and password . If we don’t want to pass then the userid and password should updated in soap.client.properties file
5)How to increase the heap size of JVM?
Login to Administrative Console
Go to servers >> Server types >> WebSphere application server
Select the JVM >> Process definition >> java virtual machine
You can enter initial and maximum heap size here. These changes require restart .
For 32 bit operating systems Max Heap size will be 1536MB only . There is not limit for 64 bit machines
5)Explain what is node, node agent and node groups?
Node: It is a logical grouping of server processes maintained by WebSphere and that share common configuration and operational control
Nodeagent: Each node has a nodeagent that works along with the deployment manager to manage administration processes. It acts as a mediator between the node and deployment manager
Node Group: A node group is a grouping of nodes within a cell that have same capabilities . This is optional not see in many environments.
6) Explain what is a cell in WebSphere?
A cell is referred as a grouping of nodes into a single administrative domain. A cell can have multiple nodes which are all managed from a single point.One Deployment Manager will have only one cell. Each AppNode have its own cell name but once federated to DMGR then DMGR cell will be used for App Node as well .
7)What is WAS plugin configuration file name?
WebSphere plugin configuration name is plugin-cfg.xml . We can generate from genPluginCfg.sh file from the DMGR . It consists for SeverGroup/Cluster Information , JVM names and its ports ,Deployed application and it context roots,Virtual host and it mappings . In one shot all the information that is required for Web Server to route the traffic to back end App Server will be available in a single file . This file is xml and can be editable or manual modifications .
8)What is a Plugin? Where is it installed?
A. WebSphere plug-in integrates with the HTTP Server and directs requests for WebSphere resources (servlets, JSPs, etc.) to the Websphere application server. The WebSphere plug-in uses a configuration file called plugin-cfg.xml file to determine which requests are to be handled by WebSphere. As applications are deployed to the WebSphere configuration, this file must be regenerated (typically using the Administration Console) and distributed to all Web servers, so that they know which URL requests to direct to WebSphere.
9)Which script to change the Java SDK used by profile?
managesdk.sh script is available in bin folder which will help to change the SDK. When we install Websphere it is shipped with one JVM version let say JAVA 1.7 and Our Application need JAVA 1.8 we can install Java 1.8 and update WebSphere to use JAVA 1.8 using managesdk.sh script .
10)Can you change the context root for deployed application?
Yes, it’s doable. To do this through the administrative console, go inside the application and click “Context root for web modules” to change the context root. Doing this change require restart of WebSphere Application server ,update of plugin-cfg.xml file .
11)How to change WebContainer thread pool size?
WebContainer thread pool can be changed by going inside JVM >> Thread pools >> WebContainer
JVM Restart required for this change.
12)What is the registry or repository supported in WebSphere?
Federated repository
Local operating system
Standalone LDAP registry
Standalone custom registry
13)What is the default session timeout for an administrative console?
Default is 30 minutes . This is configurable .
14)What is a fix pack?
A fix pack is a collection of patches provided by IBM. It may contain bug fixes, security patches & performance improvements. EX : 8.5.5.18,9.5.0.2 ..etc
15)Mention some of the features available in Websphere?
Some of the features available in Websphere includes
It supports the servlet/JSP container functionality that runs on top of HTTP
It supports HTTP servers as IBM HTTP server, Apache httpd server,Netscape iPlanet server, and MS IIS
It supports Java Server Pages, HTML pages, Servlets and XML
It supports EJB component model and Workload Management.
16)What is node sync?
IBM WAS stores the entire configuration in a central repository called “Master repository,” and every node will have the local repository.
When you make any changes to the node through DMGR, you must sync it, so configuration is pushed to respective node’s server.
Sync always happens from master to local repository, so it’s one-way communication. Node sync are Ad-hoc when we make changes and save then sync , Automatic as per the interval configured and Manual sync using syncNode.sh
17)Mention what are the default ports you use to use WebSphere Application Sphere?
The default ports you use are HTTP: 9080 and HTTP: 9443 for JVM
For DMGR 9080 and 9043 for https
18)some of the log files generated by WebSphere?
SystemOut.log
SystemError.log
native_stdout.log
native_stderr.log
19)How to generate a thread dump?
There are three possible ways to generate a thread dump.
Through DMGR console: Go to Troubleshooting >> Select the JVM and click on Java core
Kill -3 PID of JVM
Using wsadmin.sh
20)How do you know if your JVM is up or not?
There are multiple ways to confirm this.
Do you have any monitoring tool if so check if there is an alert or current status
Login to a server and grep for the JVM by ps -ef | grep jvmname
Check if you can access the JVM URL
Check if you can telnet JVM URL and port
Check if JVM port is listening on the server
Use serverStatus.sh –all command to see what is running
21)How to check the installed WAS version?
Go to profile and bin folder
Execute ./versionInfo.sh
22)What are the common issues you have experienced?
Below are some of the general issues experienced during day to day operations
Virtual host not defined
Logs not moving
Internal Server Error
OutOfMemory exception
Slowness
JVM not starting
High CPU/Memory/Disk utilization
23)What is a virtual host?
Virtual host is a configuration that enables to use multiple FQDN’s and allow mapping traffic to the back end AppServer from WebServer. Virtual host contains multiple URLs (IP or FQDN based) on a single application and configuration is done through WAS administrative console.
In order to allow an application to be accessible on particular URL, you must have this URL in a virtual host and associated with the application.Every time when we modify or update Virtual host on the Application server then Restart is required also same has to be updated on the WebServer plugin.
24)How do you disable security in WebSphere?
You can disable security by executing “securityoff” through wsadmin.sh. DMGR must be restarted after switching off the security. or go to security.xml and update enabled=”false” from enabled=”true” [ Look for the first occurance in the file] . Take backup of the file for safe always .
Once security is disabled and restart then we dont need id to login to WAS console .
25)What’s a difference between vertical and horizontal cluster?
The vertical cluster has its member on same node or server where horizontal is across multiple nodes and servers in a cell. Vertical cluster has disadvantage of Single point of failure where as in Horizontal cluster if one Sever goes down still have other server with JVM up and running .Hence it is highly recommended in Production environments
26)How to enable verbose garbage collection?
Verbose GC is not enabled by default and if you need you can do it by;
Servers >> Server Type >> WebSphere Application Server
Select the JVM >> Process definition under “Java and process management”
Click Java virtual machine under “additional properties” and tick the checkbox for “verbose garbage collection.”
27)How do you connect Web Server to WAS?
There are two ways to connect to WAS.
Using plugin – this is the recommended method to install WAS plugin on a web server and use plugin-cfg.xml file
Using ProxyPass & ProxyPassReverse – if you are using Apache and don’t want to use the plugin then you can connect to WAS JVM by ProxyPass & ProxyPassReverse directive.
28)What is shared libraries?
Creating a shared library is recommended to reduce the duplicate library files. The single shared library can bed used by multiple applications within a cell.
29)What is context root?
A context root for each application should be unique within the cell. It’s defined n deployment descriptor and used to access the application.
For an ex: if application A has context root called “retail” then an application will be accessible from http://servername:port/retail
30)Can you decode WebSphere keystore XOR?
Yes, you can through online tool – http://www.poweredbywebsphere.com/decoder.html
any password in Websphere with XOR can be decrypted using above url .unless the password is encrypted using custom jar
31)Mention how many ways you can deploy the application in WebSphere?
In Websphere application can be deployed in three ways
Copy files directly to deploy application folder in websphere
Use websphere specific ant tasks create automated scripts for deploying application
Via administration console
32)Mention what are the Websphere MQ programming APIs?
Websphere MQ programming APIs include
AMI (Application Messaging Interface)
JMS (Java Message Service)
MQI (Message Queue Interface)
33)Can application run without any issue if DMGR is down?
Yes, DMGR down doesn’t impact existing running application. However, if you need to make any changes or deployment through DMGR, then that would be affected.
34)How to take WAS configuration backup without stopping the DMGR?
Go to DMGR profile and bin folder
Execute ./backupConfig.sh -nostop to take a backup
35)What is the session affinity?
Session affinity in another word is persistence session. Having session affinity allow a request to bind with single JVM. It means the returning request will always be routed to the same JVM. This is possible because plugin used jvm clone id information to maintain the session affinity .
Very good write-up. I definitely love this site. Thanks! Charlot Brigham Thetis