[
https://issues.apache.org/jira/browse/AMQ-1780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017299#comment-13017299
]
Oleg Kiorsak commented on AMQ-1780:
-----------------------------------
Hi Gary
interestingly, on some of the attempts I did today all transport connectors do
stop all at same time (when DB conn is lost)...but in either case however they
are not been restarted automatically when DB restored...
I tried to produce a thread dump - this is what could fit on shell screen:
---
"qtp768129156-32" prio=3 tid=0x0000000101885800 nid=0x23 waiting on condition
[0xfffffffd6bafe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xfffffffedce04c38> (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:320)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:465)
at java.lang.Thread.run(Thread.java:619)
"qtp768129156-31" prio=3 tid=0x00000001010dc000 nid=0x22 waiting on condition
[0xfffffffd6bcfe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xfffffffedce04c38> (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:320)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:465)
at java.lang.Thread.run(Thread.java:619)
"qtp768129156-30" prio=3 tid=0x00000001013fe000 nid=0x21 waiting on condition
[0xfffffffd6befe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xfffffffedce04c38> (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:320)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:465)
at java.lang.Thread.run(Thread.java:619)
"qtp768129156-29" prio=3 tid=0x00000001013fd800 nid=0x20 waiting on condition
[0xfffffffd6c0fe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xfffffffedce04c38> (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:320)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:465)
at java.lang.Thread.run(Thread.java:619)
"qtp768129156-28 - Acceptor0 [email protected]:8161" prio=3
tid=0x0000000100e89000 nid=0x1f runnable [0xfffffffd6c2fe000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)
at sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:170)
at sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0xffffffff03259268> (a sun.nio.ch.Util$1)
- locked <0xffffffff03259250> (a java.util.Collections$UnmodifiableSet)
- locked <0xffffffff03258ef0> (a sun.nio.ch.DevPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at
org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:480)
at
org.eclipse.jetty.io.nio.SelectorManager.doSelect(SelectorManager.java:193)
at
org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:134)
at
org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:793)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Thread.java:619)
"ActiveMQ Broker[MobTechTest1] Scheduler" daemon prio=3 tid=0x000000010109d000
nid=0x18 in Object.wait() [0xfffffffd6d6ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffedc814190> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:509)
- locked <0xfffffffedc814190> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"ActiveMQ Cleanup Timer" daemon prio=3 tid=0x0000000100e35000 nid=0x17 waiting
on condition [0xfffffffd6e8fe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xfffffffedc766668> (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)
"RMI TCP Connection(5)-10.38.58.172" daemon prio=3 tid=0x0000000100f54800
nid=0x16 runnable [0xfffffffd6d8fe000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0xfffffffed9747f10> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
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)
"RMI RenewClean-[10.66.179.1:50344]" daemon prio=3 tid=0x0000000100efd800
nid=0x15 in Object.wait() [0xfffffffd6dafe000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffed7bf5598> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0xfffffffed7bf5598> (a java.lang.ref.ReferenceQueue$Lock)
at
sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
at java.lang.Thread.run(Thread.java:619)
"RMI Scheduler(0)" daemon prio=3 tid=0x0000000100dc9800 nid=0x14 waiting on
condition [0xfffffffd6defe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xfffffffd780eb878> (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)
"GC Daemon" daemon prio=3 tid=0x000000010126f800 nid=0x12 in Object.wait()
[0xfffffffd6e2ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffd780001d8> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:100)
- locked <0xfffffffd780001d8> (a sun.misc.GC$LatencyLock)
"RMI Reaper" prio=3 tid=0x00000001010f9000 nid=0x11 in Object.wait()
[0xfffffffd6e4ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffd78000290> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0xfffffffd78000290> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:333)
at java.lang.Thread.run(Thread.java:619)
"RMI TCP Accept-0" daemon prio=3 tid=0x0000000101009800 nid=0x10 runnable
[0xfffffffd6e6fe000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
- locked <0xfffffffd782d55d0> (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-2011" daemon prio=3 tid=0x0000000101139800 nid=0xe runnable
[0xfffffffd6eafe000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
- locked <0xfffffffd780007b0> (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=3 tid=0x00000001007ba800 nid=0xc runnable
[0xfffffffd6eefe000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
- locked <0xfffffffd7807dcc8> (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)
"Low Memory Detector" daemon prio=3 tid=0x00000001004fe000 nid=0xb runnable
[0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=3 tid=0x00000001004f7800 nid=0xa waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=3 tid=0x00000001004f4800 nid=0x9 waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=3 tid=0x00000001004f2800 nid=0x8 waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=3 tid=0x00000001004d2800 nid=0x7 in Object.wait()
[0xfffffffd704ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffd7807e7d0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0xfffffffd7807e7d0> (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=3 tid=0x00000001004cb800 nid=0x6 in
Object.wait() [0xfffffffd706ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffd780001b8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0xfffffffd780001b8> (a java.lang.ref.Reference$Lock)
"main" prio=3 tid=0x0000000100114800 nid=0x2 in Object.wait()
[0xffffffff7c4fd000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xffffffff03266308> (a [Z)
at java.lang.Object.wait(Object.java:485)
at
org.apache.activemq.console.command.StartCommand.waitForShutdown(StartCommand.java:161)
- locked <0xffffffff03266308> (a [Z)
at
org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:104)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85)
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:251)
at org.apache.activemq.console.Main.main(Main.java:107)
"VM Thread" prio=3 tid=0x00000001004c7800 nid=0x5 runnable
"GC task thread#0 (ParallelGC)" prio=3 tid=0x000000010011c000 nid=0x3 runnable
"GC task thread#1 (ParallelGC)" prio=3 tid=0x0000000100128000 nid=0x4 runnable
"VM Periodic Task Thread" prio=3 tid=0x000000010066c000 nid=0xd waiting on
condition
JNI global references: 767
Heap
PSYoungGen total 2447872K, used 1608619K [0xfffffffecd800000,
0xffffffff78400000, 0xffffffff78400000)
eden space 2098176K, 76% used
[0xfffffffecd800000,0xffffffff2faeaca0,0xffffffff4d900000)
from space 349696K, 0% used
[0xffffffff4d900000,0xffffffff4d900000,0xffffffff62e80000)
to space 349696K, 0% used
[0xffffffff62e80000,0xffffffff62e80000,0xffffffff78400000)
PSOldGen total 5595136K, used 4074K [0xfffffffd78000000,
0xfffffffecd800000, 0xfffffffecd800000)
object space 5595136K, 0% used
[0xfffffffd78000000,0xfffffffd783fa8a8,0xfffffffecd800000)
PSPermGen total 45056K, used 44664K [0xfffffffd72c00000,
0xfffffffd75800000, 0xfffffffd78000000)
object space 45056K, 99% used
[0xfffffffd72c00000,0xfffffffd7579e1b8,0xfffffffd75800000)
[mdtapdot01]#
[mdtapdot01]# INFO | waiting for broker persistence adapter checkpoint to
succeed before restarting transports
INFO | waiting for broker persistence adapter checkpoint to succeed before
restarting transports
INFO | waiting for broker persistence adapter checkpoint to succeed before
restarting transports
> ActiveMQ broker does not automatically reconnect if the connection to the
> database is lost
> ------------------------------------------------------------------------------------------
>
> Key: AMQ-1780
> URL: https://issues.apache.org/jira/browse/AMQ-1780
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.0.0
> Environment: Windows 2003 Server
> Reporter: Jaya Srinivasan
> Assignee: Gary Tully
> Fix For: 5.5.0
>
>
> hi
> We are noticing that after any SQL Server restart or network blip between
> ActiveMQ and the database, after the connection or the database comes back
> online activeMQ broker needs to be restarted as well i.e it doesn't
> automatically re-establish connection to the database as result any message
> send fails because the broker is still using the stale connection to the
> database.
> Is this designed behaviour or a bug? we are using ActiveMQ 5.0.0 and the
> latest version of the JSQLConnect database driver: version 5.7. The database
> we are using is MS SQL Server 2005
> Right now, in our production environment any time we have network maintenance
> or database restart we also have to restart the ActiveMQ broker which is not
> a good option for us.
> Also, We are using a single ActiveMQ broker and not the JDBC(Master/Slave)
> set up.
> Issue details in
> http://www.nabble.com/Database-connection-between-ActiveMQ-and-broker-td17321330s2354.html
> Please let me know if I need to give more information
> thanks
> jaya
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira