Search code examples
javagwterrai

QueueUnavailableException: no queue available to send. (queue or session may have expired)


When simultaneous call to the Errai service is made

The error below is thrown, from what I've learned this is due to a disconnected Errai bus? If so, does it mean that Errai bus cannot handle simultaneous calls?

ERROR] org.jboss.errai.bus.server.QueueUnavailableException: no queue available to send. (queue or session may have expired): (session id: e9f949d0d11da18f88adb8a2ccd357b7a23456dfb3b732f7fec963e9bdfddfb)
ERROR at org.jboss.errai.bus.server.ServerMessageBusImpl.getQueueByMessage(ServerMessageBusImpl.java:1251)
ERROR at org.jboss.errai.bus.server.ServerMessageBusImpl.send(ServerMessageBusImpl.java:675)
ERROR at org.jboss.errai.bus.client.api.base.ConversationMessageWrapper.sendNowWith(ConversationMessageWrapper.java:228)
ERROR at org.jboss.errai.bus.client.api.base.DefaultMessageBuilder$1.sendNowWith(DefaultMessageBuilder.java:78)
ERROR at org.jboss.errai.bus.client.util.ErrorHelper.sendClientError(ErrorHelper.java:107)
ERROR at org.jboss.errai.bus.client.util.ErrorHelper.sendClientError(ErrorHelper.java:77)
ERROR at org.jboss.errai.bus.client.util.ErrorHelper.handleMessageDeliveryFailure(ErrorHelper.java:170)
ERROR at org.jboss.errai.bus.server.SimpleDispatcher.dispatchGlobal(SimpleDispatcher.java:53)
ERROR at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:93)
ERROR at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:107)
ERROR at org.jboss.errai.bus.server.servlet.DefaultBlockingServlet.doPost(DefaultBlockingServlet.java:117)
ERROR at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
ERROR at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
ERROR at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
ERROR at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
ERROR at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:63)
ERROR at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
ERROR at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
ERROR at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
ERROR at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
ERROR at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
ERROR at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
ERROR at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
ERROR at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
ERROR at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
ERROR at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
ERROR at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
ERROR at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
ERROR at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
ERROR at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
ERROR at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
ERROR at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
ERROR at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
ERROR at org.mortbay.jetty.Server.handle(Server.java:324)
ERROR at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
ERROR at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
ERROR at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
ERROR at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
ERROR at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
ERROR at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
ERROR at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Solution

  • This maybe because you are using errai.dispatcher_implementation=org.jboss.errai.bus.server.SimpleDispatcher

    You may have better luck with the AsyncDispatcher

    You may also listen to the bus state on https://github.com/errai/errai/blob/master/errai-bus/src/main/java/org/jboss/errai/bus/client/api/BusLifecycleListener.java