OK, stand back. I opened up JVisualVM. I connected it to the H2 server
that I had previously started with the following command line:
java -cp ~/.m2/repository/com/h2database/h2/1.3.160/h2-1.3.160.jar
org.h2.tools.Server -tcp
Then I ran a one-liner Java program that has the following call in it:
TcpServer.shutdown(String.format("tcp://%s:9092",
java.net.InetAddress.getLocalHost().getHostAddress()), null, true, false);
This program ran and exited normally. If it matters, I ran it as a JUnit
test, but I can't see how that would make a difference.
Then from the *Threads* tab in JVisualVM I pressed the *Thread Dump* button
and the results are below. Thanks for looking into this.
Best,
Laird
2011-10-28 16:24:56
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.1-b02-384 mixed
mode):
"RMI TCP Connection(3)-192.168.5.248" daemon prio=9 tid=10b92b800
nid=0x10d816000 runnable [10d815000]
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 <7f40a2040> (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:680)
Locked ownable synchronizers:
- <7f46a8650> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"JMX server connection timeout 22" daemon prio=9 tid=101801000
nid=0x10d713000 in Object.wait() [10d712000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f44e27c0> (a [I)
at
com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
- locked <7f44e27c0> (a [I)
at java.lang.Thread.run(Thread.java:680)
Locked ownable synchronizers:
- None
"RMI Scheduler(0)" daemon prio=9 tid=106813000 nid=0x10d610000 waiting on
condition [10d60f000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <7f44e2808> (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:2025)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
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:680)
Locked ownable synchronizers:
- None
"RMI TCP Connection(1)-192.168.5.248" daemon prio=9 tid=10681f800
nid=0x10d50d000 runnable [10d50c000]
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 <7f45e3148> (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:680)
Locked ownable synchronizers:
- <7f4540150> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"RMI TCP Accept-0" daemon prio=9 tid=107374800 nid=0x10d40a000 runnable
[10d409000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
- locked <7f44e4b40> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
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:680)
Locked ownable synchronizers:
- None
"Poller SunPKCS11-Darwin" daemon prio=1 tid=10b92c800 nid=0x10d307000
waiting on condition [10d306000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
at java.lang.Thread.run(Thread.java:680)
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=9 tid=10b92b000 nid=0x10d204000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"DestroyJavaVM" prio=5 tid=1068cb000 nid=0x100501000 waiting on condition
[00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"H2 TCP Server (tcp://192.168.5.248:9092)" prio=5 tid=107367800
nid=0x10d101000 runnable [10d100000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
- locked <7f44e4bb8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
at org.h2.server.TcpServer.listen(TcpServer.java:239)
at org.h2.tools.Server.run(Server.java:451)
at java.lang.Thread.run(Thread.java:680)
Locked ownable synchronizers:
- None
"Low Memory Detector" daemon prio=5 tid=1070d7800 nid=0x10c60d000 runnable
[00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread1" daemon prio=9 tid=1070d6800 nid=0x10c50a000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread0" daemon prio=9 tid=1070d6000 nid=0x10c407000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" daemon prio=9 tid=1070d5000 nid=0x10c304000 runnable
[00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Surrogate Locker Thread (Concurrent GC)" daemon prio=5 tid=1070d4800
nid=0x10c201000 waiting on condition [00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" daemon prio=8 tid=1070cf800 nid=0x10abf8000 in Object.wait()
[10abf7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f44e5308> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <7f44e5308> (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)
Locked ownable synchronizers:
- None
"Reference Handler" daemon prio=10 tid=1070cf000 nid=0x10aaf5000 in
Object.wait() [10aaf4000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f44e3908> (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 <7f44e3908> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"VM Thread" prio=9 tid=1070ca000 nid=0x10a9f2000 runnable
"Gang worker#0 (Parallel GC Threads)" prio=9 tid=106800000 nid=0x102501000
runnable
"Gang worker#1 (Parallel GC Threads)" prio=9 tid=107000000 nid=0x102604000
runnable
"Gang worker#2 (Parallel GC Threads)" prio=9 tid=107001000 nid=0x102707000
runnable
"Gang worker#3 (Parallel GC Threads)" prio=9 tid=107001800 nid=0x106102000
runnable
"Concurrent Mark-Sweep GC Thread" prio=9 tid=10707c800 nid=0x10a501000
runnable
"VM Periodic Task Thread" prio=10 tid=1070e9000 nid=0x10c710000 waiting on
condition
"Exception Catcher Thread" prio=10 tid=101802000 nid=0x1017f9000 runnable
JNI global references: 1282
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/h2-database/-/zn9qyNwjAcIJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.