-
1. Re: @Pool / @ActivationConfigProperty multitheading problem?
letincho Sep 10, 2011 6:29 PM (in response to letincho)Hi again, (now with enters and spaces )
After 1 or 2 days of normal execution, the server hangs: I can't login by ssh or access to the web console (or any other application running on JBoss).
The log of JBoss just stop without any exception.
This problem started when I configured the pool size of may MDB with the @Pool annotation. I have more than 50 MDBs.
Because of my performance problems (of throuput) I try to configure differents pool size on each MDBs.
So, I'd configured \server\default\deploy\jca-jboss-beans.xml, with 2048. And put diferents values on each MDB.
@ActivationConfigProperty(propertyName = "maxMessages", propertyValue = "1"),
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "50")})
@Pool (value=PoolDefaults.POOL_IMPLEMENTATION_STRICTMAX,maxSize=50,timeout=20000)
The sum of the all maxSize is around 1000.
I've no problem of database connection.
I've no OutOfMemory exception.
I've no exception on my logs.
My server is running on a VirtualBox 4, with 8 processors (the host has 16) with 6GB of RAM (the host has 16GB).
I guess about a multithreading problem or a pool administration bug, but I can't found any solution.
Can anybody help me?
Thanks in advance.
Martín
PD:
Server information: Version: 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221100)
Version Name: The Oracle Built on: May 22 2009
JVM Environment
Free Memory: 2067 MB
Max Memory: 2995 MB
Total Memory: 2995 MB
#Threads: 2206
JVM Version: 1.5.0_22-b03 (Sun Microsystems Inc.)
JVM Name: Java HotSpot(TM) 64-Bit Server
VM #CPU: 8
OS: Linux 2.6.32.39 (amd64)
-
2. Re: @Pool / @ActivationConfigProperty multitheading problem?
jaikiran Sep 11, 2011 9:57 AM (in response to letincho)Try to get thread dumps at regular interval and see what the server is doing when you see the hang http://community.jboss.org/wiki/ThreadDump
-
3. Re: @Pool / @ActivationConfigProperty multitheading problem?
letincho Sep 12, 2011 8:39 AM (in response to jaikiran)Hi Jaikiran, While I'm waiting for the next hang... I've made a thread dump from JmxConsole. I have 2048 workmanagers in state Waiting... is this right? Thanks, Martín Thread: WorkManager(2)-2025 : priority:5, demon:true, threadId:2365, threadState:WAITING sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:118) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841) java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) java.lang.Thread.run(Thread.java:595) Thread: WorkManager(2)-2026 : priority:5, demon:true, threadId:2366, threadState:WAITING sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:118) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841) java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) java.lang.Thread.run(Thread.java:595) Thread: WorkManager(2)-2027 : priority:5, demon:true, threadId:2367, threadState:WAITING sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:118) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841) java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) java.lang.Thread.run(Thread.java:595)
-
4. Re: @Pool / @ActivationConfigProperty multitheading problem?
letincho Sep 12, 2011 8:40 AM (in response to letincho)Hi Jaikiran,
While I'm waiting for the next hang... I've made a thread dump from JmxConsole.
I have 2048 workmanagers in state Waiting... is this right?
Thanks, Martín
Thread: WorkManager(2)-998 : priority:5, demon:true, threadId:1287, threadState:WAITING
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
java.lang.Thread.run(Thread.java:595)Thread: WorkManager(2)-999 : priority:5, demon:true, threadId:1288, threadState:WAITING
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
java.lang.Thread.run(Thread.java:595)Thread: WorkManager(2)-1000 : priority:5, demon:true, threadId:1289, threadState:WAITING
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
java.lang.Thread.run(Thread.java:595)