You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2014/08/13 19:38:13 UTC

[jira] [Closed] (AMQ-5133) Selector Worker thread consumes significant CPU when broker is idle

     [ https://issues.apache.org/jira/browse/AMQ-5133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish closed AMQ-5133.
-----------------------------

    Resolution: Cannot Reproduce

> Selector Worker thread consumes significant CPU when broker is idle
> -------------------------------------------------------------------
>
>                 Key: AMQ-5133
>                 URL: https://issues.apache.org/jira/browse/AMQ-5133
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0
>         Environment: OS:CentOS release 6.5
> Java: 1.6.0_17, Java HotSpot 64-Bit Server VM
> Host: VMWare Xeon(R) CPU E5-2660 0; 4 core @2.2GHz
>            Reporter: Keith Oppenheim
>
> The Selector Worker: 0 thread is consuming 25% of the host CPU even though there are no active producers or consumers and there are no messages in the message store.  I was able to identify the offending thread by first using {{ps -eLF}} to find the ActiveMQ thread with a relatively large and continually increasing amount of CPU time.  I then correlated the thread ID (LWP  column  in {{ps}} output) to the native thread ID provided by the 'nid' value in the thread dump.  At the time I ran {{ps}}, the Selector Worker thread had taken over 20 hours of CPU time while the next closest ActiveMQ thread had taken 3 minutes of CPU time.  The Selector Worker thread has nid=0x489 in the thread dump copied below.
> h4.  Steps To Reproduce
> Unfortunately, I don't have repeatable steps to reproduce.  I think the issue may have occurred while I was purging a queue that had four active consumers.  The queue had several thousand persistent 350KB messages.  The consumers were using selectors and all the messages on the queue matched the consumers' selectors.  The consumers were Apache.NMS clients.  I noticed the unexpected CPU usage after the purge completed, but I can't be sure it was triggered by the purge.  I'm running performance tests and part of my normal test initialization requires purging the queue.  As such, the purge is repeated many times a day and hasn't been an issue.  After I noticed the CPU usage increase, I shut down all producers and consumers but the CPU usage increase persisted.  I'm using JConsole to monitor the JVM and monitor/manage the broker.
>  
> h4. Thread Dump
> {noformat}
> 2014-04-03 10:23:18
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01 mixed mode):
> "ActiveMQ NIO Worker 807" daemon prio=10 tid=0x00007fc764031800 nid=0x34e7 waiting on condition [0x00007fc7b0786000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba8001c0> (a java.util.concurrent.SynchronousQueue$TransferStack)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
>         at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
>         at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ NIO Worker 806" daemon prio=10 tid=0x00007fc764017000 nid=0x346c waiting on condition [0x00007fc7b09ad000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba8001c0> (a java.util.concurrent.SynchronousQueue$TransferStack)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
>         at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
>         at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ InactivityMonitor Worker" daemon prio=10 tid=0x00007fc774003000 nid=0x2848 waiting on condition [0x00007fc7b0040000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba82b968> (a java.util.concurrent.SynchronousQueue$TransferStack)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
>         at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
>         at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "Attach Listener" daemon prio=10 tid=0x00007fc78c001000 nid=0x1788 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
> "ActiveMQ BrokerService[ActiveMQ-HCE-Playpen-partition-3-ndmhce-amq402] Task-135" daemon prio=10 tid=0x00007fc7700dd000 nid=0x10aa waiting on condition [0x00007fc7b059c000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba800290> (a java.util.concurrent.SynchronousQueue$TransferStack)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
>         at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
>         at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "RMI Scheduler(0)" daemon prio=10 tid=0x00007fc780003800 nid=0x495 waiting on condition [0x00007fc7b0b04000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba822528> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>         at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ BrokerService.worker.1" daemon prio=10 tid=0x00007fc77000e000 nid=0x491 waiting on condition [0x00007fc7b094b000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba8f6638> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ InactivityMonitor WriteCheckTimer" daemon prio=10 tid=0x00007fc77000a800 nid=0x48d in Object.wait() [0x00007fc7b0a0f000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7ba9c0960> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "ActiveMQ InactivityMonitor ReadCheckTimer" daemon prio=10 tid=0x00007fc770009000 nid=0x48c in Object.wait() [0x00007fc7b0a40000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7ba9c0a38> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "Selector Worker: 0" daemon prio=10 tid=0x00007fc76801a000 nid=0x489 runnable [0x00007fc7b0ad3000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.EPollArrayWrapper.updateRegistrations(EPollArrayWrapper.java:230)
>         - locked <0x00007fc7bb1777f8> (a java.util.LinkedList)
>         at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:214)
>         at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
>         at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
>         - locked <0x00007fc7ba9c0b90> (a sun.nio.ch.Util$1)
>         - locked <0x00007fc7ba9c0ba8> (a java.util.Collections$UnmodifiableSet)
>         - locked <0x00007fc7ba9067d0> (a sun.nio.ch.EPollSelectorImpl)
>         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>         at org.apache.activemq.transport.nio.SelectorWorker.run(SelectorWorker.java:93)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-44" prio=10 tid=0x00007fc75ca7a000 nid=0x481 waiting on condition [0x00007fc7b0b35000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba9c0ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:342)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:526)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(QueuedThreadPool.java:44)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-43" prio=10 tid=0x00007fc75ca78000 nid=0x480 waiting on condition [0x00007fc7b0b66000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba9c0ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:342)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:526)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(QueuedThreadPool.java:44)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-42" prio=10 tid=0x00007fc75ca76000 nid=0x47f waiting on condition [0x00007fc7b0b97000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba9c0ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:342)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:526)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(QueuedThreadPool.java:44)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-41" prio=10 tid=0x00007fc75ca74800 nid=0x47e waiting on condition [0x00007fc7b0bc8000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba9c0ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:342)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:526)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(QueuedThreadPool.java:44)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-40" prio=10 tid=0x00007fc75ca73000 nid=0x47d waiting on condition [0x00007fc7b0bf9000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba9c0ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:342)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:526)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(QueuedThreadPool.java:44)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-39" prio=10 tid=0x00007fc75ca72000 nid=0x47c waiting on condition [0x00007fc7b0c2a000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba9c0ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:342)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:526)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(QueuedThreadPool.java:44)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-38 Acceptor0 SelectChannelConnector@0.0.0.0:8161" prio=10 tid=0x00007fc75ca64800 nid=0x47b runnable [0x00007fc7b0c5b000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
>         at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)
>         - locked <0x00007fc7ba9c1510> (a java.lang.Object)
>         at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:109)
>         at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:938)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Thread.java:619)
> "qtp1649900638-37 Selector0" prio=10 tid=0x00007fc75ca64000 nid=0x47a runnable [0x00007fc7b0c8c000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
>         at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:215)
>         at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
>         at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
>         - locked <0x00007fc7ba9c1e38> (a sun.nio.ch.Util$1)
>         - locked <0x00007fc7ba9c1e20> (a java.util.Collections$UnmodifiableSet)
>         - locked <0x00007fc7ba9c1a78> (a sun.nio.ch.EPollSelectorImpl)
>         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>         at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:569)
>         at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Thread.java:619)
> "HashSessionScavenger-3" daemon prio=10 tid=0x00007fc75ca4d000 nid=0x479 in Object.wait() [0x00007fc7b0cbd000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7baa22728> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "HashSessionScavenger-2" daemon prio=10 tid=0x00007fc75ca4c000 nid=0x478 in Object.wait() [0x00007fc7b0cee000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7baaafe38> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "HashSessionScavenger-1" daemon prio=10 tid=0x00007fc75c9b4800 nid=0x477 in Object.wait() [0x00007fc7b0d3d000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7bac11d38> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "HashSessionScavenger-0" daemon prio=10 tid=0x00007fc75c8e4000 nid=0x476 in Object.wait() [0x00007fc7b0d6e000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7baceab20> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "ActiveMQ Transport Server: nio://0.0.0.0:61616?wireFormat.maxInactivityDuration=45000" daemon prio=10 tid=0x00007fc75c80b000 nid=0x469 runnable [0x00007fc7b0dc0000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
>         at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:215)
>         at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
>         at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
>         - locked <0x00007fc7bad58570> (a sun.nio.ch.Util$1)
>         - locked <0x00007fc7bad58588> (a java.util.Collections$UnmodifiableSet)
>         - locked <0x00007fc7bad584f8> (a sun.nio.ch.EPollSelectorImpl)
>         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>         at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:105)
>         - locked <0x00007fc7bad585a0> (a java.lang.Object)
>         at org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:299)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ Transport Server Thread Handler: nio://0.0.0.0:61616?wireFormat.maxInactivityDuration=45000" daemon prio=10 tid=0x00007fc75c6c7800 nid=0x468 waiting on condition [0x00007fc7b0df1000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7bad59360> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:395)
>         at org.apache.activemq.transport.tcp.TcpTransportServer$1.run(TcpTransportServer.java:373)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ JDBC PA Scheduled Task" daemon prio=10 tid=0x00007fc75c801800 nid=0x467 waiting on condition [0x00007fc7b0f2a000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba8cd978> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ JDBC PA Scheduled Task" daemon prio=10 tid=0x00007fc75c801000 nid=0x466 waiting on condition [0x00007fc7b14b6000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7ba8cd978> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
>         at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ Broker[ActiveMQ-HCE-Playpen-partition-3-ndmhce-amq402] Scheduler" daemon prio=10 tid=0x00007fc75c7c9000 nid=0x465 in Object.wait() [0x00007fc7b1518000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7ba903448> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#5" daemon prio=10 tid=0x00007fc75c7c5000 nid=0x464 in Object.wait() [0x00007fc7b0f65000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
>         - locked <0x00007fc7ba870a98> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
> "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#4" daemon prio=10 tid=0x00007fc75c705800 nid=0x463 in Object.wait() [0x00007fc7b0f96000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
>         - locked <0x00007fc7ba870a98> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
> "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3" daemon prio=10 tid=0x00007fc75c71f800 nid=0x462 in Object.wait() [0x00007fc7b0fc7000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
>         - locked <0x00007fc7ba870a98> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
> "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" daemon prio=10 tid=0x00007fc75c702800 nid=0x461 in Object.wait() [0x00007fc7b0ff8000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
>         - locked <0x00007fc7ba870a98> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
> "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" daemon prio=10 tid=0x00007fc75c731000 nid=0x460 in Object.wait() [0x00007fc7b1029000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
>         - locked <0x00007fc7ba870a98> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
> "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" daemon prio=10 tid=0x00007fc75c704800 nid=0x45f in Object.wait() [0x00007fc7b105a000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
>         - locked <0x00007fc7ba870a98> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
> "Timer-0" daemon prio=10 tid=0x00007fc75c7bc000 nid=0x45e in Object.wait() [0x00007fc7b108b000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.util.TimerThread.mainLoop(Timer.java:509)
>         - locked <0x00007fc7ba885b40> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:462)
> "WrapperSimpleAppMain" prio=10 tid=0x00007fc768001000 nid=0x45d waiting on condition [0x00007fc7b1484000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00007fc7bac8e818> (a java.util.concurrent.CountDownLatch$Sync)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
>         at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
>         at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:118)
>         at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>         at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:150)
>         at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>         at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.activemq.console.Main.runTaskClass(Main.java:262)
>         at org.apache.activemq.console.Main.main(Main.java:115)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
>         at java.lang.Thread.run(Thread.java:619)
> "DestroyJavaVM" prio=10 tid=0x00007fc928009000 nid=0x449 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
> "Wrapper-Connection" daemon prio=10 tid=0x00007fc928159000 nid=0x45b runnable [0x00007fc7b14e7000]
>    java.lang.Thread.State: RUNNABLE
>         at java.net.SocketInputStream.socketRead0(Native Method)
>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>         at java.net.SocketInputStream.read(SocketInputStream.java:182)
>         at java.io.DataInputStream.readByte(DataInputStream.java:248)
>         at org.tanukisoftware.wrapper.WrapperManager.handleSocket(WrapperManager.java:3737)
>         at org.tanukisoftware.wrapper.WrapperManager.run(WrapperManager.java:4084)
>         at java.lang.Thread.run(Thread.java:619)
> "Wrapper-Control-Event-Monitor" daemon prio=10 tid=0x00007fc9281b4000 nid=0x459 waiting on condition [0x00007fc7b1549000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>         at java.lang.Thread.sleep(Native Method)
>         at org.tanukisoftware.wrapper.WrapperManager$3.run(WrapperManager.java:731)
> "RMI TCP Accept-0" daemon prio=10 tid=0x00007fc928145800 nid=0x457 runnable [0x00007fc7b177e000]
>    java.lang.Thread.State: RUNNABLE
>         at java.net.PlainSocketImpl.socketAccept(Native Method)
>         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
>         - locked <0x00007fc7bab32bc8> (a java.net.SocksSocketImpl)
>         at java.net.ServerSocket.implAccept(ServerSocket.java:453)
>         at java.net.ServerSocket.accept(ServerSocket.java:421)
>         at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
>         at java.lang.Thread.run(Thread.java:619)
> "RMI TCP Accept-1099" daemon prio=10 tid=0x00007fc928140000 nid=0x456 runnable [0x00007fc7b17af000]
>    java.lang.Thread.State: RUNNABLE
>         at java.net.PlainSocketImpl.socketAccept(Native Method)
>         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
>         - locked <0x00007fc7bab32f50> (a java.net.SocksSocketImpl)
>         at java.net.ServerSocket.implAccept(ServerSocket.java:453)
>         at java.net.ServerSocket.accept(ServerSocket.java:421)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
>         at java.lang.Thread.run(Thread.java:619)
> "RMI TCP Accept-0" daemon prio=10 tid=0x00007fc92812f000 nid=0x455 runnable [0x00007fc7b17e0000]
>    java.lang.Thread.State: RUNNABLE
>         at java.net.PlainSocketImpl.socketAccept(Native Method)
>         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
>         - locked <0x00007fc7bad7df40> (a java.net.SocksSocketImpl)
>         at java.net.ServerSocket.implAccept(ServerSocket.java:453)
>         at java.net.ServerSocket.accept(ServerSocket.java:421)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
>         at java.lang.Thread.run(Thread.java:619)
> "Low Memory Detector" daemon prio=10 tid=0x00007fc928091000 nid=0x454 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
> "CompilerThread1" daemon prio=10 tid=0x00007fc92808e000 nid=0x453 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
> "CompilerThread0" daemon prio=10 tid=0x00007fc92808b800 nid=0x452 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
> "Signal Dispatcher" daemon prio=10 tid=0x00007fc928089800 nid=0x451 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
> "Finalizer" daemon prio=10 tid=0x00007fc92806d000 nid=0x450 in Object.wait() [0x00007fc7b1cd0000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>         - locked <0x00007fc7bad7e630> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> "Reference Handler" daemon prio=10 tid=0x00007fc92806b800 nid=0x44f in Object.wait() [0x00007fc7b1d01000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.lang.Object.wait(Object.java:485)
>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>         - locked <0x00007fc7ba821d08> (a java.lang.ref.Reference$Lock)
> "VM Thread" prio=10 tid=0x00007fc928064800 nid=0x44e runnable
> "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fc928013000 nid=0x44a runnable
> "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fc928014800 nid=0x44b runnable
> "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fc928016800 nid=0x44c runnable
> "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fc928018800 nid=0x44d runnable
> "VM Periodic Task Thread" prio=10 tid=0x00007fc928148000 nid=0x458 waiting on condition
> JNI global references: 703
> {noformat}
> h4. activemq.xml
> {noformat}
> <beans
>   xmlns="http://www.springframework.org/schema/beans"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
>   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
>         <!-- Allows us to use system properties as variables in this configuration file -->
>         <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>                 <property name="locations">
>                         <value>file:${activemq.conf}/credentials.properties</value>
>                 </property>
>         </bean>
>         <broker useJmx="true" brokerName="ActiveMQ-HCE-Playpen-partition-3-ndmhce-amq402" xmlns="http://activemq.apache.org/schema/core" schedulerSupport="false" advisorySupport="false">
>                 <plugins>
>                         <!-- enable logging of connection, session, and dispatch events -->
>                         <loggingBrokerPlugin logConsumerEvents="true" logProducerEvents="true"/>
>                 </plugins>
>                 <managementContext>
>                         <managementContext createConnector="false"/>
>                 </managementContext>
>                 <destinationPolicy>
>                         <policyMap>
>                                 <policyEntries>
>                                         <policyEntry topic=">" producerFlowControl="false" memoryLimit="100kb">
>                                                 <pendingSubscriberPolicy>
>                                                         <vmCursor />
>                                                 </pendingSubscriberPolicy>
>                                         </policyEntry>
>                                         <policyEntry queue=">" optimizedDispatch="true" producerFlowControl="false" enableAudit="true" memoryLimit="64mb" maxPageSize="1000"  expireMessagesPeriod="7200000" cursorMemoryHighWaterMark="100" prioritizedMessages="true" />
>                                         <policyEntry queue="documentConversionService" optimizedDispatch="true" producerFlowControl="false" enableAudit="true" memoryLimit="1665mb" maxPageSize="1000" expireMessagesPeriod="7200000" cursorMemoryHighWaterMark="100" prioritizedMessages="true" />
>                                         <policyEntry queue="ActiveMQ.DLQ" optimizedDispatch="true" producerFlowControl="false" enableAudit="true" memoryLimit="200mb" maxPageSize="1000"  cursorMemoryHighWaterMark="100"/>
>                                 </policyEntries>
>                         </policyMap>
>                 </destinationPolicy>
>                 <!--
>         See more database locker options at http://activemq.apache.org/pluggable-storage-lockers.html
>     -->
>                 <persistenceAdapter>
>                         <jdbcPersistenceAdapter createTablesOnStartup="false" useDatabaseLock="true" dataSource="#mssql-ds" lockAcquireSleepInterval="10000" lockKeepAlivePeriod="5000" maxRows="10">
>                                 <databaseLocker>
>                                         <lease-database-locker/>
>                                 </databaseLocker>
>                         </jdbcPersistenceAdapter>
>                 </persistenceAdapter>
>                 <systemUsage>
>                         <systemUsage sendFailIfNoSpaceAfterTimeout="5000">
>                                 <memoryUsage>
>                                         <memoryUsage limit="3700mb"/>
>                                 </memoryUsage>
>                                 <tempUsage>
>                                         <tempUsage limit="2700mb"/>
>                                 </tempUsage>
>                         </systemUsage>
>                 </systemUsage>
>                 <transportConnectors>
>                         <transportConnector name="nio" uri="nio://0.0.0.0:61616?wireFormat.maxInactivityDuration=45000"/>
>                 </transportConnectors>
>         </broker>
>         <bean id="mssql-ds" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
>                 <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
>                 <property name="jdbcUrl" value="jdbc:sqlserver://10.56.27.166:1433;databaseName=amq_test_performance1;sendStringParametersAsUnicode=false"/>
>                 <property name="user" value="********"/>
>                 <property name="password" value="*********"/>
>                 <property name="minPoolSize" value="5" />
>                 <property name="maxPoolSize" value="-1" />
>                 <property name="acquireIncrement" value="20" />
>                 <property name="acquireRetryAttempts" value="100"/>
>                 <property name="acquireRetryDelay" value="5000"/>
>                 <property name="maxIdleTime" value="3600" />
>                 <property name="numHelperThreads" value="6" />
>         </bean>
>         <import resource="jetty.xml"/>
> </beans>
> {noformat}
> h4. wrapper.conf
> {noformat}
> #********************************************************************
> # Wrapper Properties
> #********************************************************************
> #wrapper.debug=TRUE
> set.default.ACTIVEMQ_HOME=../..
> set.default.ACTIVEMQ_BASE=../..
> set.default.ACTIVEMQ_CONF=%ACTIVEMQ_BASE%/conf
> set.default.ACTIVEMQ_DATA=%ACTIVEMQ_BASE%/data
> wrapper.working.dir=.
> # Java Application
> wrapper.java.command=java
> # Java Main class.  This class must implement the WrapperListener interface
> #  or guarantee that the WrapperManager class is initialized.  Helper
> #  classes are provided to do this for you.  See the Integration section
> #  of the documentation for details.
> wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
> # Java Classpath (include wrapper.jar)  Add class path elements as
> #  needed starting from 1
> wrapper.java.classpath.1=%ACTIVEMQ_HOME%/bin/wrapper.jar
> wrapper.java.classpath.2=%ACTIVEMQ_HOME%/bin/activemq.jar
> # Java Library Path (location of Wrapper.DLL or libwrapper.so)
> wrapper.java.library.path.1=%ACTIVEMQ_HOME%/bin/linux-x86-64/
> # Java Additional Parameters
> # note that n is the parameter number starting from 1.
> wrapper.java.additional.1=-Dactivemq.home=%ACTIVEMQ_HOME%
> wrapper.java.additional.2=-Dactivemq.base=%ACTIVEMQ_BASE%
> wrapper.java.additional.3=-Djavax.net.ssl.keyStorePassword=password
> wrapper.java.additional.4=-Djavax.net.ssl.trustStorePassword=password
> wrapper.java.additional.5=-Djavax.net.ssl.keyStore=%ACTIVEMQ_CONF%/broker.ks
> wrapper.java.additional.6=-Djavax.net.ssl.trustStore=%ACTIVEMQ_CONF%/broker.ts
> wrapper.java.additional.7=-Dcom.sun.management.jmxremote
> wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=false
> wrapper.java.additional.9=-Djava.util.logging.config.file=logging.properties
> wrapper.java.additional.10=-Dactivemq.conf=%ACTIVEMQ_CONF%
> wrapper.java.additional.11=-Dactivemq.data=%ACTIVEMQ_DATA%
> # Uncomment to enable jmx
> wrapper.java.additional.12=-Dcom.sun.management.jmxremote.port=1099
> wrapper.java.additional.13=-Dcom.sun.management.jmxremote.authenticate=false
> wrapper.java.additional.14=-Dcom.sun.management.jmxremote.ssl=false
> wrapper.java.additional.15=-Xms1024m
> wrapper.java.additional.16=-Xmx5800m
> wrapper.java.additional.17=-Xss192k
> wrapper.java.additional.18=-XX:MaxPermSize=128m
> wrapper.java.additional.19=-XX:MaxGCPauseMillis=2000
> wrapper.java.additional.20=-XX:GCTimeRatio=19
> wrapper.java.additional.21=-XX:+HeapDumpOnOutOfMemoryError
> # hawtio configuration
> wrapper.java.additional.22=-Dhawtio.realm=activemq
> wrapper.java.additional.23=-Dhawtio.role=admins
> wrapper.java.additional.24=-Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal
> wrapper.java.additional.25=-Djava.security.auth.login.config=%ACTIVEMQ_CONF%/login.config
> #wrapper.java.additional.22=-Xrunyjpagent=
> #wrapper.java.additional.23=-agentpath:/export/data/centos-activemq-distribution/yourkit/yjp-11.0.10/bin/linux-x86-64/libyjpagent.so
> # Uncomment to enable remote debugging
> #wrapper.java.additional.24=-Xdebug -Xnoagent -Djava.compiler=NONE
> #wrapper.java.additional.25=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
> # Initial Java Heap Size (in MB)
> #wrapper.java.initmemory=2048
> # Maximum Java Heap Size (in MB)
> #wrapper.java.maxmemory=4600
> # Application parameters.  Add parameters as needed starting from 1
> wrapper.app.parameter.1=org.apache.activemq.console.Main
> wrapper.app.parameter.2=start
> #********************************************************************
> # Wrapper Logging Properties
> #********************************************************************
> # Format of output for the console.  (See docs for formats)
> wrapper.console.format=PM
> # Log Level for console output.  (See docs for log levels)
> wrapper.console.loglevel=INFO
> # Log file to use for wrapper output logging.
> wrapper.logfile=%ACTIVEMQ_DATA%/wrapper.log
> # Format of output for the log file.  (See docs for formats)
> wrapper.logfile.format=LPTM
> # Log Level for log file output.  (See docs for log levels)
> wrapper.logfile.loglevel=INFO
> # Maximum size that the log file will be allowed to grow to before
> #  the log is rolled. Size is specified in bytes.  The default value
> #  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
> #  'm' (mb) suffix.  For example: 10m = 10 megabytes.
> wrapper.logfile.maxsize=100m
> # Maximum number of rolled log files which will be allowed before old
> #  files are deleted.  The default value of 0 implies no limit.
> wrapper.logfile.maxfiles=5
> # Log Level for sys/event log output.  (See docs for log levels)
> wrapper.syslog.loglevel=INFO
> #********************************************************************
> # Wrapper Windows Properties
> #********************************************************************
> # Title to use when running as a console
> wrapper.console.title=ActiveMQ
> #********************************************************************
> # Wrapper Windows NT/2000/XP Service Properties
> #********************************************************************
> # WARNING - Do not modify any of these properties when an application
> #  using this configuration file has been installed as a service.
> #  Please uninstall the service before modifying this section.  The
> #  service can then be reinstalled.
> # Name of the service
> wrapper.ntservice.name=ActiveMQ
> # Display name of the service
> wrapper.ntservice.displayname=ActiveMQ
> # Description of the service
> wrapper.ntservice.description=ActiveMQ Broker
> # Service dependencies.  Add dependencies as needed starting from 1
> wrapper.ntservice.dependency.1=
> # Mode in which the service is installed.  AUTO_START or DEMAND_START
> wrapper.ntservice.starttype=AUTO_START
> # Allow the service to interact with the desktop.
> wrapper.ntservice.interactive=false
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)