[ 
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)

Reply via email to