Getting "[client] java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling" after the network connection is refreshed
yanayujp Apr 30, 2013 1:22 PMhi, we are having a issue with EJB client. When everytime the client machine refreshe the network connection, we get this error on the EJB client side.
11:01:02,761 ERROR [connection] JBREM000200: Remote connection failed: java.io.IOException: An existing connection was forcibly closed by the remote host
11:01:02,761 ERROR [connection] JBREM000200: Remote connection failed: java.io.IOException: An existing connection was forcibly closed by the remote host
11:01:02,772 INFO [remoting] EJBCLIENT000016: Channel Channel ID 88df4ae6 (outbound) of Remoting connection 01389eed to null can no longer process messages
11:01:02,773 INFO [remoting] EJBCLIENT000016: Channel Channel ID 84985246 (outbound) of Remoting connection 01608d63 to null can no longer process messages
11:01:02,773 ERROR [RemoteNamingStoreV1] Channel end notification received, closing channel Channel ID af9d9336 (outbound) of Remoting connection 01389eed to nu
ll
11:01:27,254 ERROR [RemotingConnectionEJBReceiver] Failed to open channel for context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@139
2df5, receiver=Remoting connection EJB receiver [connection=Remoting connection <13bf2f6>,channel=jboss.ejb,nodename=nodename]}
org.jboss.remoting3.NotOpenException: Cannot open new channel because close was initiated
at org.jboss.remoting3.remote.RemoteConnectionHandler.handleOutboundChannelOpen(RemoteConnectionHandler.java:181)
at org.jboss.remoting3.remote.RemoteConnectionHandler.open(RemoteConnectionHandler.java:307)
at org.jboss.remoting3.ConnectionImpl.openChannel(ConnectionImpl.java:75)
at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.associate(RemotingConnectionEJBReceiver.java:128)
at org.jboss.ejb.client.EJBClientContext.registerEJBReceiver(EJBClientContext.java:302)
at org.jboss.ejb.client.EJBClientContext.registerEJBReceiver(EJBClientContext.java:257)
at org.jboss.ejb.client.EJBClientContext.registerConnection(EJBClientContext.java:347)
at org.jboss.naming.remote.client.ejb.RemoteNamingEjbClientContextSelector.getContext(RemoteNamingEjbClientContextSelector.java:60)
at org.jboss.naming.remote.client.ejb.RemoteNamingEjbClientContextSelector.getCurrent(RemoteNamingEjbClientContextSelector.java:46)
at org.jboss.naming.remote.client.ejb.RemoteNamingEjbClientContextSelector.getCurrent(RemoteNamingEjbClientContextSelector.java:15)
at org.jboss.ejb.client.EJBClientContext.getCurrent(EJBClientContext.java:228)
at org.jboss.ejb.client.EJBClientContext.requireCurrent(EJBClientContext.java:238)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:120)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at com.sun.proxy.$Proxy7.exitTicket(Unknown Source)
11:01:32,253 INFO [remoting] EJBCLIENT000014: Version handshake not completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBCli
entContext@1392df5, receiver=Remoting connection EJB receiver [connection=Remoting connection <13bf2f6>,channel=jboss.ejb,nodename=hostnam]}. Closing receiver cont
ext
11:01:32,254 ERROR [client] java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:appname, moduleName:modulename, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@28500a
java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:appname, moduleName:modulename, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@28500a
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:588)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116)
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)
at com.sun.proxy.$Proxy7.exitTicket(Unknown Source)
so, what we did is, we get InitialContext everytime when we do jndi look up. If looks fine.
However, the client is establishing a lots connections like below.. is there any better way to fix this issue??
09:02:00,504 INFO [remoting] EJBCLIENT000017: Received server version 1 and marshalling strategies [river]
09:02:00,504 INFO [remoting] EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client
.EJBClientContext@431c56, receiver=Remoting connection EJB receiver [connection=Remoting connection <7a010b>,channel=jboss.ejb,nodename=hostname]} on channel Channe
l ID 8b8b6222 (outbound) of Remoting connection 00f35ab0 to hostname/IPaddress:port
09:02:00,585 INFO [remoting] EJBCLIENT000017: Received server version 1 and marshalling strategies [river]
09:02:00,586 INFO [remoting] EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client
.EJBClientContext@1681f52, receiver=Remoting connection EJB receiver [connection=Remoting connection <1a319a7>,channel=jboss.ejb,nodename=hostname]} on channel Chan
nel ID a7b6f299 (outbound) of Remoting connection 006994b4 to hostname/IPaddress:port