List of Top 11 Application Server in 2021

  • IBM
  • Nginx
  • Apache Tomcat.
  • Oracle WebLogic.
  • Plesk.
  • IIS 7.5.
  • LiteSpeed Web Server.
  • vCenter Server.
  • Apache Server.
  • Wildfly.
  • Phusion Passenger.

What is Application Server?

  • A server specifically designed to run applications.
  • Includes both hardware and software that provide an environment for programs to run.

What is Application Server examples?

There is a huge number of application servers that are used today. Some of the examples are given below:

  • JBoss
  • Weblogic
  • Websphere
  • Glassfish
  • Apache Geronimo
  • Oracle OC4J
  • Sun GLassFish Enterprise Server

 What is the purpose of application server?

An application server enables a server to generate a dynamic, customized response to a client request. An application server is a Java™ Virtual Machine (JVM) that runs user applications. The application server collaborates with the web server to return a dynamic, customized response to a client request.

How does application server work?

Application server usually work in concert with a web server. In fact, Today’s app server usually have web servers built in.

Here is how the process works:

  • The user submits a request from a browser(e.g. Netscape, IE)
  • The web server receives the request from the browser and recognizes it as a special request for a servlet.

• This is done by configuring the web server to recognize certain url’s as servlet requests.

  • The web server passes the request to the application server.
  • The application server processes the request and returns a response to the web server. 
  • The web server passes the response to the browser.

What is difference between Web server and application server?

Tagged : / / / / / / / / /

How to automatically recover Tomcat from crashes

rajeshkumar created the topic: How to automatically recover Tomcat from crashes

How to automatically recover Tomcat from crashes

Tomcat occasionally crashes if you do frequent hot-deploys or if you are running it on a machine with low memory. Every time tomcat crashes someone has to manually restart it, so I wrote a script which automatically detects that tomcat has crashed and restarts it.

Here’s the pseudo logic:

1. every few minutes {  
   2.   check tomcat status;  
   4.   if (status is "not running") {  
   5.     start tomcat;  
   6.   }  
   7. }

Here’s a shell script to implement the above logic. It assumes that you are running on a unix/linux system and have /etc/init.d/tomcat* script setup to manage tomcat.

Adjust the path to “/etc/init.d/tomcat” in the script below to reflect the correct path on your computer. Sometimes it is called /etc/init.d/tomcat5 or /etc/init.d/tomcat6 depending on your tomcat version. Also make sure that the message “Tomcat Servlet Container is not running.” matches with the message that you get when you run the script when tomcat is stopped.

# #! /bin/sh  
# SERVICE=/etc/init.d/tomcat  
# STOPPED_MESSAGE="Tomcat Servlet Container is not running."  
# if [ "`$SERVICE status`" == "$STOPPED_MESSAGE"];  
# then  
# {  
#   $SERVICE start  
# }  
# fi

To run the script every 10 minutes:

1. Save the above script to “/root/bin/”.

2. Add execute permission:

1. chmod +x /root/bin/

chmod +x /root/bin/

3. Add this to root’s crontab, type the following as root:

1. crontab -e

crontab -e

4. Add the following lines to the crontab:

1. # monitor tomcat every 10 minutes
2. */10 * * * * /root/bin/

What if I don’t have /etc/init.d/tomcat* script on my computer?

Tomcat creates a pid file, typically in the TOMCAT_HOME/bin directory. This file contains the process id of the tomcat process running on the machine. The pseudo logic in that case would be:

1. if (the PID file does not exist) {  
   2.   // conclude that tomcat is not running  
   3.   start tomcat  
   4. }  
   5. else {  
   6.   read the process id from the PID file  
   7.   if (no process that id is running) {  
   8.     // conclude that tomcat has crashed  
   9.     start tomcat  
  10.   }  
  11. }

You can implement the above logic as follows. The following is experimental and is merely a suggested way, test it on your computer before using it.

   1. # adjust this to reflect tomcat home on your computer  
   2. TOMCAT_HOME=/opt/tomcat5  
   4. if [ -f $TOMCAT_HOME/bin/ ]  
   5. then  
   6.   echo "PID file exists"  
   7.   pid="`cat $TOMCAT_HOME/bin/`"  
   8.   if [ "X`ps -p $pid | awk '{print $1}' | tail -1`" = "X"]  
   9.   then  
  10.     echo "Tomcat is running"  
  11.   else  
  12.     echo "Tomcat had crashed"  
  13.     $TOMCAT_HOME/bin/  
  14.   fi  
  15. else  
  16.   echo "PID file does not exist. Restarting..."  
  17.   $TOMCAT_HOME/bin/  
  18. fi

Why would tomcat crash?

The most common reason is low memory. For example, if you have allocated 1024MB of max memory to tomcat and enough memory is not available on that machine. Other reasons may involve repeated hot-deploys causing memory leaks, rare JVM bugs causing the JVM to crash.

Rajesh Kumar
Twitt me @

Tagged :

Setup SSL with Apache2

rajeshkumar created the topic: Setup SSL with Apache2


I am trying to setting up a SSL with apache2 so application can be run on https instead of http. Any body has got any live experience with step by step instructions?

help me out?

Rajesh Kumar
Twitt me @

Tagged :

mod_jk module Vs mod_rewrite and mod_proxy

rajeshkumar created the topic: mod_jk module Vs mod_rewrite and mod_proxy


In order to Integrate Jboss with Apache, i got to 2 solutions below;
1. Integration using mod_jk module &
2. Integration using mod_rewrite and mod_proxy

I have few questions top of it

1. Which is better solutions and what are the pros and cons of this?
2. Is there any other solution for Apache2 and jboss integration?

Rajesh Kumar
Twitt me @

Tagged :

Integration of Jboss and Apache2

rajeshkumar created the topic: Integration of Jboss and Apache2


My Application(.ear) is running in Jboss with any issues on 7001 port. There are following requirement as such with me. Task 1. Integrate Jboss with Apache2 so all the request should be coming from Apache Instead of jboss

Task 2. Implement SSLwith apache2 so it should open with https instead of http.

For task 1, I have followed carefully with some issues. 1. Application is getting up and running without any issues but logout has some issues. 2. I want to stop JBOSS access point but not getting any clue

For task 2 Once this is up and running, i will have to implement SSL with Apache so it should only get open with HTTPS instead of http. any help on this front as well..any links or Reference.

Reagrds, Raj, Build and Release Engineer,

Rajesh Kumar
Twitt me @

rajeshkumar replied the topic: Re:Integration of Jboss and Apache2

Jboss along with Apache 2 setup is working fine but I am getting issues with SSL setup with apache..

I followed the
but without success?

Any urgent help?
Rajesh Kumar
Twitt me @

rajeshkumar replied the topic: Re:Integration of Jboss and Apache2


With continuation of post,…oss-and-apache2.html

Integration of Jboss with Apache2 which i achieved Successful but got stuck in SSL Setup with Apache2. One point need to be note down is that I am using module_jk.

Any help on this. I could get first page with https URL but once login, its redirecting to http URL.

Any Solution?

my httpd.conf file

My mod-jk.conf file
# Load mod_jk module
# Specify the filename of the mod_jk lib
LoadModule jk_module modules/
# Where to find
JkWorkersFile conf/
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicates to send SSK KEY SIZE
# Notes: 
# 1) Changed from +ForwardURICompat. 
# 2) For mod_rewrite compatibility, use +ForwardURIProxy (default since 1.2.24)
# See  
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"
# Mount your applications
JkMount /__application__/* loadbalancer
# Let Apache serve the images
JkUnMount /__application__/images/* loadbalancer
# You can use external file for mount points.
# It will be checked for updates each 60 seconds.
# The format of the file is: /url=worker
# /examples/*=loadbalancer
JkMountFile conf/
# Add shared memory.
# This directive is present with 1.2.10 and
# later versions of mod_jk, and is needed for
# for load balancing to work properly
## Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to 
JkShmFile run/jk.shm
# Add jkstatus for managing runtime data
<Location /jkstatus>
JkMount status
Order deny,allow
Deny from all
Allow from
# Added by Rajesh
	JkMount /elance loadbalancer
	JkMount /elance/* loadbalancer

My httpd-ssl.conf file

Rajesh Kumar
Twitt me @

Tagged : /

Bugzilla 2.22.1 created the topic: Bugzilla 2.22.1

QI want to add new field in bugzilla when we create a ticket. can u tell me how can i do that?

QI want to change the email format of bugzilla. how that will be done?

mnanjala replied the topic: Re: Bugzilla 2.22.1

I think you need to modify At the very least, you need to specify
a content-type: header of “text/html”. And to really do the job right, you
might also appropriately encode characters as HTML entities. You might want
to do the latter piece-wise in and please take a look at how does it..

Tagged :

Start Apache with normal user

scmuser created the topic: Start Apache with normal user


I have few normal user in linux to whom I want to give apache http start and stop access? any idea how to to do this?

When i start start apache httpd, then i get some error somthing like permission denied ..

./apachectl start
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address

no listening sockets available, shutting down
Unable to open logs

Any Solution….

Tagged :

Enable/Disable Hot Deployment in Jboss EAP 5.1

tpatil created the topic: Enable/Disable Hot Deployment in Jboss EAP 5.1

Hot Deployment in Jboss EAP 5.1 can be controlled by 2 ways:-

1. ${config}/deploy/hdscanner-jboss-beans.xml deployment descriptor will enable deployment scanning by default; removing it will disable it.

2. The scanEnabled attribute can be added to deploy/hdscanner-jboss-beans.xml. Setting this attribute to false will disable scanning, and setting this attribute to true will enable it.

Tagged :

Starting multiple instances of jboss from shell script

tpatil created the topic: Starting multiple instances of jboss from shell script

For starting the multiple instances of jboss I have created the following 2 scripts.

Please let me know if anybody has any other suggestions. will call



for clust in ${cluster//,/ };
HOST=`echo $clust |cut -f2 -d:`
NODE=`echo $clust |cut -f1 -d:`
echo "Starting jboss $NODE on $HOST ....."

echo " complete"
exit 0



### ====================================================================== ###
## ##
## JBoss Startup Script ##
## ARG1 =====>Name of profile ##
## ARG2 =====>Hostname/IP address of node ##
### ====================================================================== ###


echo "Starting jboss..........."

rm /tmp/jboss.$1.start > /dev/null

$JBOSSDIR/bin/ -c $1 -b $BINDHOST > /tmp/jboss.$1.start 2>&1 &


for i in `seq 1 30` ; do
if ps -p $pid > /dev/null ; then : ; else
sleep 2
result="`$JBOSSDIR/bin/ -s $BINDHOST -u $JMXUSER -p $JMXPASS get "jboss.system:type=Server" Started --noprefix`"
if [ $? == 0 -a x"$result" == x"true" ] ; then

if $started ; then
echo $pid >> $TARGETDIR/log/
echo ".........Sucessfully Started"
exit 0
elif test i = 30 ; then
echo "...............Timed Out"
exit 1
echo "...............Failed to Start"
exit 1

echo " complete"
exit 0

Tagged :