Hi Guys,
In our implementation, we have a gateway app that uses jsr websockets to
communication with our main application server. In a small system, we want to
run them both on a single Tomcat instance using the same Tomcat NIO connector,
but directing to different respective WS paths. This works fine if you deploy
the MAIN first, then the GW - so that MAIN is already up and running. If you
restart Tomcat when both webapps are deployed - and the GW (client) starts
first, it hangs indefinitely in the following code trying to establish a WS
connection:
Is this a bug or a known limitation when a client/server in the same webapp try
to connect at startup?
Thanks
"localhost-startStop-1" daemon prio=6 tid=0x000000000ef0f800 nid=0x1624 waiting
on condition [0x000000001046e000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007d6d98b18> (a
java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236)
at sun.nio.ch.PendingFuture.get(PendingFuture.java:180)
at
org.apache.tomcat.websocket.WsWebSocketContainer.processResponse(WsWebSocketContainer.java:568)
at
org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:317)
at
com.thingworx.core.communication.channels.jsr356.client.Jsr356ClientChannel.connect(Jsr356ClientChannel.java:57)
at
com.thingworx.core.communication.endpoints.CommunicationEndpoint.connect(CommunicationEndpoint.java:186)
at
com.thingworx.core.communication.CommunicationSubsystem.startSubsystem(CommunicationSubsystem.java:88)
at
com.thingworx.core.subsystems.SubsystemBase.start(SubsystemBase.java:48)
at
com.thingworx.apiserver.APIServerManager.startSubsystem(APIServerManager.java:92)
at
com.thingworx.core.subsystems.SubsystemBase.start(SubsystemBase.java:48)
at
com.thingworx.apiserver.Bootstrapper.contextInitialized(Bootstrapper.java:57)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
- locked <0x00000007da3e0308> (a
org.apache.catalina.core.StandardContext)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- locked <0x00000007da3e0308> (a
org.apache.catalina.core.StandardContext)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Locked ownable synchronizers:
- <0x00000007da3a7ab0> (a java.util.concurrent.ThreadPoolExecutor$Worker)
Bob DeRemer
Senior Director, Architecture and Development
[Description: Description: Description: Description:
cid:[email protected]]
http://www.thingworx.com<http://www.thingworx.com/>
Skype: bob.deremer.thingworx
O: 610.594.6200 x812
M: 717.881.3986