INFO [STDOUT] java.lang.Error: Error starting thread: Cann
prince Mar 2, 2005 10:21 AMHi 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