13 Replies Latest reply on May 23, 2014 3:40 AM by Mohd Hafiz Yusof

    JBossAS-5.1.0 terminates automatically on Sun Solaris

    Hushen Savani Novice

      Hi Community,


            I am running JBossAS-5.1.0.GA application server on Sun Solaris production system. Lately, the JBoss server terminates automatically. I have tried placing -Xrs JVM parameter as suggested in this wiki article, but this didn't help. The server terimates unexpectedly. The only log shown in jboss.log is as following:




           Hence, I am not able to debug the root cause as well. Can anyone please suggest on the same on urgent basis.


           Thank you.


      Best Regards,

      Hushen Savani

        • 1. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
          Wolf-Dieter Fink Master

          There are different reasons.

          One can be a 'kill -9' command


          Does it happen periodically? i.e. maybe a cron job try to kill something but use accidentaly a wrong PID!

          Please provide more information that we are able to guide you.

          • 2. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
            Hushen Savani Novice

            Hi Fink,


                 Thanks for response. I have checked all the cron jobs. There are no 'kill' jobs scheduled for any process. It seems to be that there is some other cause. When it shutdown unexpectedly, it shows following logs in jboss.log:

            [Unloading class sun.reflect.GeneratedMethodAccessor618]

            [Unloading class sun.reflect.GeneratedMethodAccessor696]

            [Unloading class sun.reflect.GeneratedMethodAccessor691]

            [Unloading class sun.reflect.GeneratedMethodAccessor688]

            [Unloading class sun.reflect.GeneratedMethodAccessor747]

            [Unloading class sun.reflect.GeneratedMethodAccessor604]

            [Unloading class sun.reflect.GeneratedMethodAccessor623]

            [Unloading class sun.reflect.GeneratedMethodAccessor617]

            [Unloading class sun.reflect.GeneratedMethodAccessor698]

            [Unloading class sun.reflect.GeneratedMethodAccessor594]

            [Unloading class sun.reflect.GeneratedMethodAccessor620]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor189]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor205]

            [Unloading class sun.reflect.GeneratedMethodAccessor580]

            [Unloading class sun.reflect.GeneratedMethodAccessor590]

            [Unloading class sun.reflect.GeneratedMethodAccessor406]

            [Unloading class sun.reflect.GeneratedMethodAccessor648]

            [Unloading class sun.reflect.GeneratedMethodAccessor649]

            [Unloading class sun.reflect.GeneratedMethodAccessor643]

            [Unloading class sun.reflect.GeneratedMethodAccessor603]

            [Unloading class sun.reflect.GeneratedMethodAccessor605]

            [Unloading class sun.reflect.GeneratedMethodAccessor667]

            [Unloading class sun.reflect.GeneratedMethodAccessor714]

            [Unloading class sun.reflect.GeneratedMethodAccessor700]

            [Unloading class sun.reflect.GeneratedMethodAccessor629]

            [Unloading class sun.reflect.GeneratedMethodAccessor608]

            [Unloading class sun.reflect.GeneratedMethodAccessor600]

            [Unloading class sun.reflect.GeneratedMethodAccessor659]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor191]

            [Unloading class sun.reflect.GeneratedMethodAccessor639]

            [Unloading class sun.reflect.GeneratedMethodAccessor716]

            [Unloading class sun.reflect.GeneratedMethodAccessor674]

            [Unloading class sun.reflect.GeneratedMethodAccessor626]

            [Unloading class sun.reflect.GeneratedMethodAccessor615]

            [Unloading class sun.reflect.GeneratedConstructorAccessor219]

            [Unloading class sun.reflect.GeneratedMethodAccessor720]

            [Unloading class sun.reflect.GeneratedMethodAccessor596]

            [Unloading class sun.reflect.GeneratedMethodAccessor705]

            [Unloading class sun.reflect.GeneratedMethodAccessor665]

            [Unloading class sun.reflect.GeneratedMethodAccessor599]

            [Unloading class sun.reflect.GeneratedMethodAccessor690]

            [Unloading class sun.reflect.GeneratedMethodAccessor587]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor206]

            [Unloading class sun.reflect.GeneratedMethodAccessor613]

            [Unloading class sun.reflect.GeneratedMethodAccessor365]

            [Unloading class sun.reflect.GeneratedMethodAccessor624]

            [Unloading class sun.reflect.GeneratedMethodAccessor711]

            [Unloading class sun.reflect.GeneratedMethodAccessor645]

            [Unloading class sun.reflect.GeneratedMethodAccessor731]

            [Unloading class sun.reflect.GeneratedMethodAccessor597]

            [Unloading class sun.reflect.GeneratedMethodAccessor593]

            [Unloading class sun.reflect.GeneratedMethodAccessor578]

            [Unloading class sun.reflect.GeneratedMethodAccessor607]

            [Unloading class sun.reflect.GeneratedMethodAccessor726]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor186]

            [Unloading class sun.reflect.GeneratedMethodAccessor632]

            [Unloading class sun.reflect.GeneratedMethodAccessor630]

            [Unloading class sun.reflect.GeneratedMethodAccessor652]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor192]

            [Unloading class sun.reflect.GeneratedMethodAccessor655]

            [Unloading class sun.reflect.GeneratedMethodAccessor717]

            [Unloading class sun.reflect.GeneratedMethodAccessor723]

            [Unloading class sun.reflect.GeneratedMethodAccessor588]

            [Unloading class sun.reflect.GeneratedMethodAccessor646]

            [Unloading class sun.reflect.GeneratedMethodAccessor709]

            [Unloading class sun.reflect.GeneratedMethodAccessor577]

            [Unloading class sun.reflect.GeneratedMethodAccessor490]

            [Unloading class sun.reflect.GeneratedMethodAccessor583]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor182]

            [Unloading class sun.reflect.GeneratedMethodAccessor609]

            [Unloading class sun.reflect.GeneratedMethodAccessor606]

            [Unloading class sun.reflect.GeneratedMethodAccessor591]

            [Unloading class sun.reflect.GeneratedMethodAccessor585]

            [Unloading class sun.reflect.GeneratedMethodAccessor684]

            [Unloading class sun.reflect.GeneratedMethodAccessor367]

            [Unloading class sun.reflect.GeneratedMethodAccessor622]

            [Unloading class sun.reflect.GeneratedConstructorAccessor217]

            [Unloading class sun.reflect.GeneratedMethodAccessor660]

            [Unloading class sun.reflect.GeneratedMethodAccessor656]

            [Unloading class sun.reflect.GeneratedMethodAccessor737]

            [Unloading class sun.reflect.GeneratedMethodAccessor638]

            [Unloading class sun.reflect.GeneratedMethodAccessor635]

            [Unloading class sun.reflect.GeneratedMethodAccessor692]

            [Unloading class sun.reflect.GeneratedMethodAccessor668]

            [Unloading class sun.reflect.GeneratedMethodAccessor739]

            [Unloading class sun.reflect.GeneratedConstructorAccessor220]

            [Unloading class sun.reflect.GeneratedMethodAccessor734]

            [Unloading class sun.reflect.GeneratedMethodAccessor562]

            [Unloading class sun.reflect.GeneratedMethodAccessor601]

            [Unloading class sun.reflect.GeneratedMethodAccessor640]

            [Unloading class sun.reflect.GeneratedMethodAccessor582]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor208]

            [Unloading class sun.reflect.GeneratedMethodAccessor681]

            [Unloading class sun.reflect.GeneratedMethodAccessor719]

            [Unloading class sun.reflect.GeneratedMethodAccessor612]

            [Unloading class sun.reflect.GeneratedMethodAccessor693]

            [Unloading class sun.reflect.GeneratedMethodAccessor685]

            [Unloading class sun.reflect.GeneratedMethodAccessor360]

            [Unloading class sun.reflect.GeneratedMethodAccessor662]

            [Unloading class sun.reflect.GeneratedMethodAccessor581]

            [Unloading class sun.reflect.GeneratedMethodAccessor401]

            [Unloading class sun.reflect.GeneratedMethodAccessor366]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor188]

            [Unloading class sun.reflect.GeneratedMethodAccessor744]

            [Unloading class sun.reflect.GeneratedMethodAccessor707]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor183]

            [Unloading class sun.reflect.GeneratedMethodAccessor397]

            [Unloading class sun.reflect.GeneratedMethodAccessor677]

            [Unloading class sun.reflect.GeneratedMethodAccessor403]

            [Unloading class sun.reflect.GeneratedMethodAccessor732]

            [Unloading class sun.reflect.GeneratedMethodAccessor740]

            [Unloading class sun.reflect.GeneratedMethodAccessor598]

            [Unloading class sun.reflect.GeneratedMethodAccessor595]

            [Unloading class sun.reflect.GeneratedMethodAccessor579]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor209]

            [Unloading class sun.reflect.GeneratedMethodAccessor361]

            [Unloading class sun.reflect.GeneratedMethodAccessor641]

            [Unloading class sun.reflect.GeneratedMethodAccessor703]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor207]

            [Unloading class sun.reflect.GeneratedMethodAccessor637]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor204]

            [Unloading class sun.reflect.GeneratedMethodAccessor592]

            [Unloading class sun.reflect.GeneratedMethodAccessor602]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor193]

            [Unloading class sun.reflect.GeneratedMethodAccessor666]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor185]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor187]

            [Unloading class sun.reflect.GeneratedMethodAccessor664]

            [Unloading class sun.reflect.GeneratedMethodAccessor742]

            [Unloading class sun.reflect.GeneratedMethodAccessor713]

            [Unloading class sun.reflect.GeneratedMethodAccessor694]

            [Unloading class sun.reflect.GeneratedMethodAccessor746]

            [Unloading class sun.reflect.GeneratedMethodAccessor661]

            [Unloading class sun.reflect.GeneratedMethodAccessor634]

            [Unloading class sun.reflect.GeneratedMethodAccessor627]

            [Unloading class sun.reflect.GeneratedMethodAccessor741]

            [Unloading class sun.reflect.GeneratedMethodAccessor722]

            [Unloading class sun.reflect.GeneratedMethodAccessor672]

            [Unloading class sun.reflect.GeneratedMethodAccessor670]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor190]

            [Unloading class sun.reflect.GeneratedMethodAccessor644]

            [Unloading class sun.reflect.GeneratedMethodAccessor589]

            [Unloading class sun.reflect.GeneratedMethodAccessor727]

            [Unloading class sun.reflect.GeneratedMethodAccessor724]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor184]

            [Unloading class sun.reflect.GeneratedMethodAccessor718]

            [Unloading class sun.reflect.GeneratedMethodAccessor500]

            [Unloading class sun.reflect.GeneratedMethodAccessor584]

            [Unloading class sun.reflect.GeneratedMethodAccessor675]

            [Unloading class sun.reflect.GeneratedMethodAccessor654]

            [Unloading class sun.reflect.GeneratedMethodAccessor735]

            [Unloading class sun.reflect.GeneratedMethodAccessor586]

            [Unloading class sun.reflect.GeneratedMethodAccessor669]

            [Unloading class sun.reflect.GeneratedMethodAccessor658]

            [Unloading class sun.reflect.GeneratedConstructorAccessor218]

            [Unloading class sun.reflect.GeneratedMethodAccessor633]

            [Unloading class sun.reflect.GeneratedMethodAccessor679]

            [Unloading class sun.reflect.GeneratedMethodAccessor701]

            [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor175]

            [Unloading class sun.reflect.GeneratedMethodAccessor611]

            [Unloading class sun.reflect.GeneratedMethodAccessor729]

            Shutdown complete

            Halting VM


                 Also, I have observed that server shuts down arbitarily regardless of any load on it. Last night there was zero-load on the server, yet it has gone down automatically. Can't figure out where can be the problem.


                 Can there be JBoss which is shutting down(or trying to restart) the own server to perform some activities? Pls. suggest.




            Best Regards,

            Hushen Savani

            • 3. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
              Wolf-Dieter Fink Master

              Have a look to https://community.jboss.org/wiki/MysteriousShutdowns. There is a collection of reasons you can look for.


              I suppose it is a event from outside. Do you check whether it is periodical.

              Check the suggeestions of MysteriousShutdowns

              Also it can be that the JMX-console is used via http to shutdown, I would recommend to secure or remove the jmx- management-console applications to avoid this.


              I think it can be hard to find out, good luck!

              • 4. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                Hushen Savani Novice

                Hi Fink,

                Have a look to https://community.jboss.org/wiki/MysteriousShutdowns. There is a collection of reasons you can look for.

                          Thanks. I had looked for the same, but given suggestions didn't help


                I suppose it is a event from outside. Do you check whether it is periodical.

                          It is not periodical. Server shuts down arbitarily.


                Also it can be that the JMX-console is used via http to shutdown, I would recommend to secure or remove the jmx- management-console applications to avoid this.

                          Well, JMX-Console remote port is not open on production, its secure. However, I will try removing jmx-management sar.


                        By the way, can Quartz scheduler cause such issue? I am running quartz schedulers inside JBoss(i.e. a scheduler sar) to perform certain business process. 


                        Pl. suggest. Thanks.


                Best Regards,

                Hushen Savani

                • 5. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                  Wolf-Dieter Fink Master

                  I think you've checked it but can you confirm that you do not see messages like 'shutdown hook called' or similar that indicate a programatic shutdown?

                  The JMX-console is not the only one, admin-console and management  might be deployed depend on the version of JBoss.


                  I did not think that the quartz scheduler itselve force a shutdown (otherwise this problem might raise earlier), but maybe wrong additional code might have such effect.


                  .... just brainstorming

                  - what if you start an empty jboss instance on that system (different ports AND/OR virtual ip) to see whether the shutdown happen here

                  - restrict user system access

                  - watch network traffic

                  I know that sounds like a huge effort

                  • 6. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                    Hushen Savani Novice

                    Hi Fink,


                         As per you suggested, I have removed my application ears/sars from this JBoss and restarted the same. Again, JBoss terminated unexpectedly. This time I got the log as following in jboss.log:

                    14:42:58,017 INFO  [TomcatDeployment] deploy, ctxPath=/admin-console

                    14:42:58,089 INFO  [config] Initializing Mojarra (1.2_12-b01-FCS) for context '/admin-console'

                    14:42:59,822 INFO  [TomcatDeployment] deploy, ctxPath=/

                    14:42:59,877 INFO  [TomcatDeployment] deploy, ctxPath=/jmx-console

                    14:42:59,968 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-

                    14:42:59,995 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-

                    14:43:00,009 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 46s:679ms

                    [Unloading class $Proxy240]

                    [Unloading class $Proxy245]

                    [Unloading class $Proxy239]

                    [Unloading class $Proxy242]

                    [Unloading class $Proxy246]

                    [Unloading class $Proxy243]

                    16:51:49,625 INFO  [ServerImpl] Runtime shutdown hook called, forceHalt: true

                    16:51:49,634 INFO  [Http11Protocol] Pausing Coyote HTTP/1.1 on http-

                    16:51:49,636 INFO  [Http11Protocol] Stopping Coyote HTTP/1.1 on http-

                    16:51:49,642 INFO  [AjpProtocol] Pausing Coyote AJP/1.3 on ajp-

                    16:51:49,643 INFO  [AjpProtocol] Stopping Coyote AJP/1.3 on ajp-

                    16:51:49,672 INFO  [TomcatDeployment] undeploy, ctxPath=/web-console

                    16:51:49,703 INFO  [SessionSpecContainer] Stopping jboss.j2ee:jar=profileservice-secured.jar,name=SecureProfileService,service=EJB3

                    16:51:49,715 INFO  [EJBContainer] STOPPED EJB: org.jboss.profileservice.ejb.SecureProfileServiceBean ejbName: SecureProfileService

                    16:51:49,756 INFO  [SessionSpecContainer] Stopping jboss.j2ee:jar=profileservice-secured.jar,name=SecureDeploymentManager,service=EJB3

                    16:51:49,767 INFO  [EJBContainer] STOPPED EJB: org.jboss.profileservice.ejb.SecureDeploymentManager ejbName: SecureDeploymentManager

                    16:51:49,808 INFO  [SessionSpecContainer] Stopping jboss.j2ee:jar=profileservice-secured.jar,name=SecureManagementView,service=EJB3

                    16:51:49,817 INFO  [EJBContainer] STOPPED EJB: org.jboss.profileservice.ejb.SecureManagementView ejbName: SecureManagementView

                    16:51:49,863 INFO  [ConnectionFactoryBindingService] Unbound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' from JNDI name 'java:JmsXA'

                    16:51:49,874 INFO  [HornetQResourceAdapter] HornetQ resource adapter stopped

                    16:51:50,004 INFO  [HornetQServerImpl] HornetQ Server version 2.2.5.Final (HQ_2_2_5_FINAL_AS7, 121) [0c7fc5b5-5235-11e1-83a4-83e65a70b530] stopped

                    16:51:50,060 INFO  [TomcatDeployment] undeploy, ctxPath=/invoker

                    16:51:50,085 INFO  [EntityLockMonitor] EntityLockMonitor stopped

                    16:51:50,114 INFO  [TomcatDeployment] undeploy, ctxPath=/admin-console

                    16:51:50,118 INFO  [TomcatDeployment] undeploy, ctxPath=/

                    16:51:50,122 INFO  [TomcatDeployment] undeploy, ctxPath=/jmx-console

                    16:51:50,128 INFO  [StandardService] Stopping service jboss.web

                    16:51:50,186 INFO  [MailService] Mail service 'java:/Mail' removed from JNDI

                    16:51:50,251 INFO  [ConnectionFactoryBindingService] Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=jdbc/JISPDS' from JNDI name 'java:jdbc/JISPDS'

                    16:51:50,252 INFO  [ConnectionFactoryBindingService] Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' from JNDI name 'java:DefaultDS'

                    16:51:50,298 INFO  [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.

                    16:51:50,298 INFO  [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.

                    16:51:50,302 INFO  [SimpleThreadPool] There are still 23 worker threads active. See javadoc runInThread(Runnable) for a possible explanation

                    16:51:50,302 INFO  [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.

                    16:51:50,538 INFO  [TransactionManagerService] Stopping transaction recovery manager

                    16:51:50,540 INFO  [TransactionManagerService] Destroying TransactionManagerService

                    16:51:50,829 INFO  [HypersonicDatabase] Database standalone closed clean

                    16:51:53,356 INFO  [ServerImpl] Shutdown complete

                    Shutdown complete

                    Halting VM


                         I can't really make out what is making jboss killed. Is it jboss itself or some signals from OS?? Pl. suggest on the same.




                    Best Regards,

                    Hushen Savani


                    Attaching jboss.log file

                    • 7. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                      Wolf-Dieter Fink Master

                      Here I see

                      16:51:49,625 INFO  [ServerImpl] Runtime shutdown hook called, forceHalt: true

                      If you look to [1] the reason can be 'Ctrl-C' or a signal TERM or INT.

                      So I suppose that a process or user on that machine do this.


                      What if you move the JBoss to another system or start a second one for test on the same (see brainstorming of my last comment)


                      [1] https://community.jboss.org/wiki/ShutdownLogs

                      • 8. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                        Hushen Savani Novice

                        Hi Fink,


                        If you look to [1] the reason can be 'Ctrl-C' or a signal TERM or INT.

                                       Yes, you are right. I tried replicating the same scenario in my local machine. Its TERM which is causing this issue. For prevention, I tried providing the '-Xrs' JVM Parameter. But it just supresses the messages in jboss.log. The process is getting killed anyway. (By the way, Ctrl+C is not the issue, I am running my jboss process in background using nohup).


                        What if you move the JBoss to another system or start a second one for test on the same (see brainstorming of my last comment)

                                       I already have been running two JBoss instances on production server. One of them(or both) gets killed randomly with or without my application ears.


                             Now, since -Xrs is not working, can there be any way to prevent / ignore TERM signal anyway???


                             Pl. suggest. Thanks.


                        Best Regards,

                        Hushen Savani

                        • 9. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                          Wolf-Dieter Fink Master

                          Look to run.sh for the shell command 'trap', it is active if you set a environment variable for JBoss start.

                          This command will catch the signals (not all) and you can handle it.


                          Here a simple shell script to demonstrate:

                          trap "echo SIGTERM" TERM

                          while [ 0 -lt 128 ]; do

                            sleep 2



                          You can stop the program with 'kill PID' only if you remove the trap-line otherwise you only see SIGTERM output.

                          If you add this to run.sh it can be a workaround, you might send a mail or write into a log with the date and the signal for tracking.


                          BUT you should find out who or what is the reason for such signals!

                          • 10. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                            Hushen Savani Novice

                            Hi Fink,


                                 I tried putting the same in run.sh. But its not preventing the kill -TERM PID. Either I am placing the sample script (one you have given) at the wrong place, or it cannot act on TERM. However, the traps are handled in run.sh:



                            ### ====================================================================== ###

                            ##                                                                          ##

                            ##  JBoss Bootstrap Script                                                  ##

                            ##                                                                          ##

                            ### ====================================================================== ###



                            ### $Id: run.sh 88978 2009-05-16 18:18:45Z alex.loubyansky@jboss.com $ ###



                            DIRNAME=`dirname $0`

                            PROGNAME=`basename $0`




                            # Use the maximum available, or set MAX_FD != -1 to use that





                            # Helper to complain.


                            warn() {

                                echo "${PROGNAME}: $*"





                            # Helper to puke.


                            die() {

                                warn $*

                                exit 1




                            # OS specific support (must be 'true' or 'false').




                            case "`uname`" in
















                            # Read an optional running configuration file

                            if [ "x$RUN_CONF" = "x" ]; then



                            if [ -r "$RUN_CONF" ]; then

                                . "$RUN_CONF"




                            # Force IPv4 on Linux systems since IPv6 doesn't work correctly with jdk5 and lower

                            if [ "$linux" = "true" ]; then

                               JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"




                            # For Cygwin, ensure paths are in UNIX format before anything is touched

                            if $cygwin ; then

                                [ -n "$JBOSS_HOME" ] &&

                                    JBOSS_HOME=`cygpath --unix "$JBOSS_HOME"`

                                [ -n "$JAVA_HOME" ] &&

                                    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`

                                [ -n "$JAVAC_JAR" ] &&

                                    JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"`




                            # Setup JBOSS_HOME

                            if [ "x$JBOSS_HOME" = "x" ]; then

                                # get the full path (without any relative bits)

                                JBOSS_HOME=`cd $DIRNAME/..; pwd`


                            export JBOSS_HOME



                            # Increase the maximum file descriptors if we can

                            if [ "$cygwin" = "false" ]; then

                                MAX_FD_LIMIT=`ulimit -H -n`

                                if [ "$?" -eq 0 ]; then

                                    # Darwin does not allow RLIMIT_INFINITY on file soft limit

                                    if [ "$darwin" = "true" -a "$MAX_FD_LIMIT" = "unlimited" ]; then

                                        MAX_FD_LIMIT=`/usr/sbin/sysctl -n kern.maxfilesperproc`




                              if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then

                                 # use the system max





                              ulimit -n $MAX_FD

                              if [ "$?" -ne 0 ]; then

                                 warn "Could not set maximum file descriptor limit: $MAX_FD"



                              warn "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT"





                            # Setup the JVM

                            if [ "x$JAVA" = "x" ]; then

                                if [ "x$JAVA_HOME" != "x" ]; then








                            # Setup the classpath


                            if [ ! -f "$runjar" ]; then

                                die "Missing required file: $runjar"





                            # Tomcat uses the JDT Compiler

                            # Only include tools.jar if someone wants to use the JDK instead.

                            # compatible distribution which JAVA_HOME points to

                            if [ "x$JAVAC_JAR" = "x" ]; then





                            if [ ! -f "$JAVAC_JAR_FILE" ]; then

                               # MacOSX does not have a seperate tools.jar

                               if [ "$darwin" != "true" -a "x$JAVAC_JAR" != "x" ]; then

                                  warn "Missing file: JAVAC_JAR=$JAVAC_JAR"

                                  warn "Unexpected results may occur."






                            if [ "x$JBOSS_CLASSPATH" = "x" ]; then





                            if [ "x$JAVAC_JAR_FILE" != "x" ]; then





                            # If -server not set in JAVA_OPTS, set it, if supported

                            SERVER_SET=`echo $JAVA_OPTS | $GREP "\-server"`

                            if [ "x$SERVER_SET" = "x" ]; then



                                # Check for SUN(tm) JVM w/ HotSpot support

                                if [ "x$HAS_HOTSPOT" = "x" ]; then

                              HAS_HOTSPOT=`"$JAVA" -version 2>&1 | $GREP -i HotSpot`




                                # Enable -server if we have Hotspot, unless we can't

                                if [ "x$HAS_HOTSPOT" != "x" ]; then

                              # MacOS does not support -server flag

                              if [ "$darwin" != "true" ]; then

                                 JAVA_OPTS="-server $JAVA_OPTS"






                            # Setup JBoss Native library path

                            # Use the common JBoss Native convention

                            # for packing platform binaries


                            JBOSS_NATIVE_CPU=`uname -m`

                            case "$JBOSS_NATIVE_CPU" in

























                            JBOSS_NATIVE_SYS=`uname -s`

                            case "$JBOSS_NATIVE_SYS" in

















                            if [ -d "$JBOSS_NATIVE_DIR" ]; then

                                if $cygwin ; then

                                    export PATH="$JBOSS_NATIVE_DIR:$PATH"

                                    JBOSS_NATIVE_DIR=`cygpath --path --windows "$JBOSS_NATIVE_DIR"`


                                    if [ "x$LD_LIBRARY_PATH" = "x" ]; then





                                    export LD_LIBRARY_PATH


                                if [ "x$JAVA_OPTS" = "x" ]; then



                                    JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$JBOSS_NATIVE_DIR"





                            # Setup JBoss specific properties

                            JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"



                            # Setup the java endorsed dirs




                            # For Cygwin, switch paths to Windows format before running java

                            if $cygwin; then

                                JBOSS_HOME=`cygpath --path --windows "$JBOSS_HOME"`

                                JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`

                                JBOSS_CLASSPATH=`cygpath --path --windows "$JBOSS_CLASSPATH"`

                                JBOSS_ENDORSED_DIRS=`cygpath --path --windows "$JBOSS_ENDORSED_DIRS"`




                            # Display our environment

                            echo "========================================================================="

                            echo ""

                            echo "  JBoss Bootstrap Environment"

                            echo ""

                            echo "  JBOSS_HOME: $JBOSS_HOME"

                            echo ""

                            echo "  JAVA: $JAVA"

                            echo ""

                            echo "  JAVA_OPTS: $JAVA_OPTS"

                            echo ""

                            echo "  CLASSPATH: $JBOSS_CLASSPATH"

                            echo ""

                            echo "========================================================================="

                            echo ""



                            while true; do

                               if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then

                                  # Execute the JVM in the foreground

                                  "$JAVA" $JAVA_OPTS \

                                     -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" \

                                     -classpath "$JBOSS_CLASSPATH" \

                                     org.jboss.Main "$@"





                                  # Execute the JVM in the background

                                  "$JAVA" $JAVA_OPTS \

                                     -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" \

                                     -classpath "$JBOSS_CLASSPATH" \

                                     org.jboss.Main "$@" &


                              # Trap common signals and relay them to the jboss process

                                  trap "kill -HUP  $JBOSS_PID" HUP

                                  trap "kill -TERM $JBOSS_PID" INT

                                  trap "kill -QUIT $JBOSS_PID" QUIT

                                  trap "kill -PIPE $JBOSS_PID" PIPE

                                  trap "kill -TERM $JBOSS_PID" TERM

                                  # Wait until the background process exits


                                  while [ "$WAIT_STATUS" -ge 128 ]; do

                                     wait $JBOSS_PID 2>/dev/null


                                     if [ "${WAIT_STATUS}" -gt 128 ]; then

                                        SIGNAL=`expr ${WAIT_STATUS} - 128`

                                        SIGNAL_NAME=`kill -l ${SIGNAL}`

                                        echo "*** JBossAS process (${JBOSS_PID}) received ${SIGNAL_NAME} signal ***" >&2



                                  if [ "${WAIT_STATUS}" -lt 127 ]; then






                               # If restart doesn't work, check you are running JBossAS 4.0.4+

                               #    http://jira.jboss.com/jira/browse/JBAS-2483

                               # or the following if you're running Red Hat 7.0

                               #    http://developer.java.sun.com/developer/bugParade/bugs/4465334.html  

                               if [ "$JBOSS_STATUS" -eq 10 ]; then

                                  echo "Restarting JBoss..."


                                  exit $JBOSS_STATUS




                                 I do have my $JBOSS_HOME set. Can you please suggest where exactly place the sample script in this run.sh??




                            Best Regards,

                            Hushen Savani

                            • 11. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                              Hushen Savani Novice

                              Hi Fink,


                                   I'm up with one more observation. I installed a Fresh Copy of JBoss on the same server. If I let this fresh copy of JBoss be running along with my old JBosses, all three JBoss are up and running. But if I turn down the fresh copy of JBoss, then one of the old JBoss terminates unexpectedly at unexpected time. Isn't it mistrious??? 


                              Best Regards,

                              Hushen Savani

                              • 12. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                                Wolf-Dieter Fink Master

                                Very mystic.

                                But I've seen so many fast written srcipts that are dangerous in error handling (nice example is 'rm -fr /$MYVAR' - the last message you will see at such system is 'rm rm not found!' )

                                So it might be that the process is killed on some conditions (i.e. number of ps -ef|grep jave|wc).


                                Maybe a warning message with the signal might help you to find the reason (use trap in the jboss.sh script before JB is started), also this will suppress the shutdown.

                                the point where you can add the change is after this lines (suppose that you not set env LAUNCH_JBOSS_IN_BACKGROUND)

                                while true; do

                                   if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then

                                      # Execute the JVM in the foreground

                                • 13. Re: JBossAS-5.1.0 terminates automatically on Sun Solaris
                                  Mohd Hafiz Yusof Newbie

                                  Hi Hushen and Fink,


                                  Very amazing reading the message of this issue.


                                  Recently we also find this issue in JBoss running in Sun Solaris server.

                                  We had tried using -Xrs JVM parameter  but it is not working.

                                  I would like to know whether the solution for this problem already has been found.