ChannelBusyException: JBREM000207: Failed to send a message (channel is busy) in JBoss EAP 6.0.x
Issue
- We have applied the the patch to improve remote EJB performance "one-byte-at-a-time" issue (AS7-6013), and it improved the performance.
Now we are seeing ChannelBusyExceptions after running a test for a few minutes with 1000 threads calling the EJB every 4 seconds. It doesn't seem to depend on how loaded the remoting connection is; every client thread will eventually throw this exception:
java.lang.reflect.UndeclaredThrowableException
at $Proxy0.execute(Unknown Source)
at se.redhat.supportcase.netent.client.RemoteClient.execute(RemoteClient.java:60)
at main.Main$1.run(Main.java:44)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.jboss.remoting3.ChannelBusyException: JBREM000207: Failed to send a message (channel is busy)
at org.jboss.remoting3.remote.RemoteConnectionChannel.writeMessage(RemoteConnectionChannel.java:313)
at org.jboss.ejb.client.remoting.ChannelAssociation.acquireChannelMessageOutputStream(ChannelAssociation.java:249)
at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.processInvocation(RemotingConnectionEJBReceiver.java:196)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:42)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:125)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
... 4 more
Environment
- JBoss Enterprise Application Platform (EAP)
- 6.0.x
- One off patch applied: bz-903990 - EAP 6.0.1 - Remote EJB invocations are read/written out one byte at a time
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
