ChannelBusyException: JBREM000207: Failed to send a message (channel is busy) in JBoss EAP 6.0.x

Solution Unverified - Updated -

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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content