JBoss 4.2.2 GA
Hallo,
I have to fix an application which heavily relies on JMS.
It crashes after it has received a number of messages, because of a
java.lang.OutOfMemoryError: unable to create new native thread
A thread dump and jconsole show that
Thread: UIL2.SocketManager.ReadTask#259 client=127.0.0.1:8093 : priority:5, demon:true,
threadId:576, threadState:RUNNABLE, lockName:null
| java.net.SocketInputStream.socketRead0(Native Method)
| java.net.SocketInputStream.read(SocketInputStream.java:129)
| java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
| java.io.BufferedInputStream.read(BufferedInputStream.java:235)
|
org.jboss.util.stream.NotifyingBufferedInputStream.read(NotifyingBufferedInputStream.java:79)
| java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)
|
java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2376)
| java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2443)
| java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2515)
| java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2664)
| java.io.ObjectInputStream.readByte(ObjectInputStream.java:875)
| org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:340)
| java.lang.Thread.run(Thread.java:595)
|
| Thread: UIL2.SocketManager.WriteTask#260 client=127.0.0.1:8093 : priority:5,
demon:true, threadId:577, threadState:TIMED_WAITING, lockName:java.lang.Object@3380c5
| java.lang.Object.wait(Native Method)
| EDU.oswego.cs.dl.util.concurrent.LinkedQueue.poll(LinkedQueue.java:170)
| org.jboss.mq.il.uil2.SocketManager$WriteTask.run(SocketManager.java:551)
| java.lang.Thread.run(Thread.java:595)
Threads accumulate.
If have already tried to identify all the points where JMS messages are send in the
application and made sure that close() is called on sender, session and connection.
However the threads still accumulate.
What would be the best way to further analyse this? Is there a possibility to exactly find
out which of my classes starts those threads which do not terminate?
Thanks,
Hans
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4248059#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...