0 Replies Latest reply: May 26, 2010 10:32 AM by aaron.winkler RSS

    Thread locked in DataServicesMessaging Gateway?

    aaron.winkler

      Hello, I'd love to hear any and all thoughts, comments, and/or suggestions.

       

      We are using the DataServicesMessaging Gateway to support some chat-like functionality from a Flex Frontend.  We are using polling, not long-polling, and poll the server every 3 to 5 seconds depending on the consumer.  Our server is configured to a max of 35 Jrun Threads and 50 Event Gateway threads.  Most of our requests last less than a second, but every so often we have requests that will last anywhere from 50 to 200 seconds.  (not Milliseconds).  Looking at that stacktrace on those always shows the following:

       

      Full thread dump Java HotSpot(TM) 64-Bit Server VM (10.0-b19):"jrpp-390" 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.read1(BufferedInputStream.java:258)      

      at java.io.BufferedInputStream.read(BufferedInputStream.java:317)      

      at jrun.servlet.jrpp.ProxyEndpoint.readFully(ProxyEndpoint.java:581)      

      at jrun.servlet.jrpp.ProxyEndpoint.readFully(ProxyEndpoint.java:573)      

      at jrun.servlet.jrpp.ProxyEndpoint.readInt(ProxyEndpoint.java:591)      

      at jrun.servlet.jrpp.JrppInputStream.read(JrppInputStream.java:79)      

      at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)      

      at java.io.BufferedInputStream.read(BufferedInputStream.java:237)      

      at jrun.servlet.ServletIn.read(ServletIn.java:42)      

      at java.io.FilterInputStream.read(FilterInputStream.java:66)      

      at java.io.FilterInputStream.read(FilterInputStream.java:66)      

      at java.io.DataInputStream.readByte(DataInputStream.java:248)      

      at flex.messaging.io.amf.Amf3Input.readUInt29(Amf3Input.java:634)      

      at flex.messaging.io.amf.Amf3Input.readString(Amf3Input.java:228)      

      at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:142)      

      at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:128)      

      at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:437)      

      at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:149)      

      at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:128)      

      at flex.messaging.io.amf.Amf0Input.readObjectValue(Amf0Input.java:128)      

      at flex.messaging.io.amf.Amf0Input.readArrayValue(Amf0Input.java:319)      

      at flex.messaging.io.amf.Amf0Input.readObjectValue(Amf0Input.java:132)      

      at flex.messaging.io.amf.Amf0Input.readObject(Amf0Input.java:88)      

      at flex.messaging.io.amf.AmfMessageDeserializer.readBody(AmfMessageDeserializer.java:206)       

      at flex.messaging.io.amf.AmfMessageDeserializer.readMessage(AmfMessageDeserializer.java:130)       

      at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:113)       

      at flex.messaging.endpoints.AMFEndpoint.service(AMFEndpoint.java:122)      

      at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:438)      

      at coldfusion.flex.ColdFusionMessageBrokerServlet.service(ColdFusionMessageBrokerServlet.jav a:50)      

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)      

      at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)      

      at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)      

      at coldfusion.filter.FlashRequestControlFilter.doFilter(FlashRequestControlFilter.java:71)       

      at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)      

      at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)      

      at com.seefusion.Filter.doFilter(Filter.java:49)      

      at com.seefusion.SeeFusion.doFilter(SeeFusion.java:1500)      

      at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)      

      at jrun.servlet.FilterChain.service(FilterChain.java:101)      

      at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)      

      at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)      

      at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)      

      at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)      

      at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)      

      at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)      

      at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

       

       

      it looks like I'm waiting to read a message coming in off the stream, but I am not sure why or how this happens.  I look forward to see what folks say on this one.

       

      Aaron