4 Replies Latest reply on Sep 12, 2011 8:40 AM by Martín Urtasun

    @Pool / @ActivationConfigProperty multitheading problem?

    Martín Urtasun Newbie

      Hi,   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)

        • 1. Re: @Pool / @ActivationConfigProperty multitheading problem?
          Martín Urtasun Newbie

          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 pai Master

            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?
              Martín Urtasun Newbie

              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?
                Martín Urtasun Newbie

                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)