2 Replies Latest reply on Mar 4, 2005 2:58 AM by prince

    INFO  [STDOUT] java.lang.Error: Error starting thread: Cann

    prince

      Hi All,

      We have launched our applications that uses jboss mq for messaging.Our production server configuration are given below.

      SERVER: HP DL server 32 bit intel xeon
      Operating System: SUSE LINUX Enterprise Server 9 (i586) - Kernel 2.6.5-7.97-bigsmp (1).
      RAM:4GB
      JDK/JVM:BEA jrockit-jdk1.5.0
      Database server: mysql 4.0.X
      Jboss: 3.2.6

      We are running 4 standalone java applications in the same server. Out of 4, 3 applications are SMSC related.That means , the applications will pull and push messages from/to the SMSC in which it bind.One application is purely file processing application which will process bulk text files.

      The problem we are facing is that one of our application needs to handle huge number of requests/sms messages from the SMSC, process it and sends out reply to the SMSC using JMS queues.It may get 300-400 requests/minute. i.e, the queue will get 300 - 400 messages per minute. During the peak hours, the application was receiving huge request and putting into the queue. The queue depth keep increasing. So we increase one more thread in our application in order to pick up the message from the queue and process it, send back the response immediately.Due to the high volume of incoming messages to the queue, we often get "out of memory error" and we need to restart the jboss and our applications.
      Due to this, we are loosing some incoming requests and we are facing delay in processing. (We are getting an average of 50000 reqeusts from the SMSC per day.It may increase in the future).


      Note:
      ----------

      1.We understand that the application should be moved to a single powerful server. So we are planning to migrate the application soon.
      2. We are planning to use mysql for JMS persistence instead of hsqldb.
      3. We are planning to use EJB with MDB for our processing module.

      Questions:
      -----------
      1. Can anyone suggest reliable JMS for our application using jboss?
      2. What needs to be done in order to avoid the OutOfMemory error in JMS and restarting the server?

      FYI i will paste the error which came in the jboss console.

      21:18:55,497 INFO [STDOUT] java.lang.Error: Error starting thread: Cannot alloc
      ate memory.
      21:18:55,499 INFO [STDOUT] at java.lang.Thread.start0()V(Native Method)
      21:18:55,499 INFO [STDOUT] at java.lang.Thread.start()V(Unknown Source)
      21:18:55,499 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager.start(Sock
      etManager.java:127)
      21:18:55,499 INFO [STDOUT] at org.jboss.mq.il.uil2.UILServerILService.run(U
      ILServerILService.java:131)
      21:18:55,499 INFO [STDOUT] at java.lang.Thread.run()V(Unknown Source)


      22:10:54,137 INFO [STDOUT] java.lang.Error: Error starting thread: Cannot alloc
      ate memory.
      22:10:54,141 INFO [STDOUT] at java.lang.Thread.start0()V(Native Method)
      22:10:54,141 INFO [STDOUT] at java.lang.Thread.start()V(Unknown Source)
      22:10:54,141 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager.start(Sock
      etManager.java:128)
      22:10:54,141 INFO [STDOUT] at org.jboss.mq.il.uil2.UILServerILService.run(U
      ILServerILService.java:131)
      22:10:54,141 INFO [STDOUT] at java.lang.Thread.run()V(Unknown Source)
      22:10:54,160 INFO [STDOUT] java.lang.NullPointerException
      22:10:54,160 INFO [STDOUT] at java.lang.Thread.interrupt0()V(Unknown Source
      )
      22:10:54,160 INFO [STDOUT] at java.lang.Thread.interrupt()V(Unknown Source)
      22:10:54,160 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager$ReadTask.h
      andleStop(SocketManager.java:412)
      22:10:54,160 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager$ReadTask.r
      un(SocketManager.java:344)
      22:10:54,160 INFO [STDOUT] at java.lang.Thread.run()V(Unknown Source)
      22:10:54,137 INFO [STDOUT] java.lang.Error: Error starting thread: Cannot alloc
      ate memory.
      22:10:54,141 INFO [STDOUT] at java.lang.Thread.start0()V(Native Method)
      22:10:54,141 INFO [STDOUT] at java.lang.Thread.start()V(Unknown Source)
      22:10:54,141 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager.start(Sock
      etManager.java:128)
      22:10:54,141 INFO [STDOUT] at org.jboss.mq.il.uil2.UILServerILService.run(U
      ILServerILService.java:131)
      22:10:54,141 INFO [STDOUT] at java.lang.Thread.run()V(Unknown Source)
      22:10:54,160 INFO [STDOUT] java.lang.NullPointerException
      22:10:54,160 INFO [STDOUT] at java.lang.Thread.interrupt0()V(Unknown Source
      )
      22:10:54,160 INFO [STDOUT] at java.lang.Thread.interrupt()V(Unknown Source)
      22:10:54,160 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager$ReadTask.h
      andleStop(SocketManager.java:412)
      22:10:54,160 INFO [STDOUT] at org.jboss.mq.il.uil2.SocketManager$ReadTask.r
      un(SocketManager.java:344)
      22:10:54,160 INFO [STDOUT] at java.lang.Thread.run()V(Unknown Source)



      Please help us to solve the issues ASAP.

      Thanking in Advance,

      Prince


        • 1. Re:  INFO  [STDOUT] java.lang.Error: Error starting thread:
          genman


          You can limit the # of messages on a queue for 3.2.6+ to avoid memory issues.

          However, primarily you will need some tools for monitoring memory and queue depths to intercept any problems before they happen.

          Using MySQL should help.

          • 2. Re:  INFO  [STDOUT] java.lang.Error: Error starting thread:
            prince

            Thank for your Advice.

            I have referred the JIRA website regarding this issue. There lot of people posted the same issue. Finally they adviced to use jboss4.X version and recommended to change the JMS persistence database from Hypersonic to some other prodcution database. So we switch over to jboss4.X with Mysql persistence.

            Now the JMS stability is ok.

            But, when i try to access the EJB (session bean) from my remote java client, its giving error 'javax.naming.CommunicationException [Root exception is java.io.InvalidClassException: org.jboss.util.id.GUID; local class incompatible: stream classdesc serialVersionUID = 3289509836244263718, local class serialVersionUID = 6926421946503004889]'

            what should i do to solve this ??

            Kindly help me out.

            Thanks