-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
None
-
The proposed pull request was reviewed, accepted and merged
The EJBRemoteConnectorService is used to allow the creation of Remoting channels on the service "jboss.ejb" to be created when an EJB client needs to send invocation requests to a server instance.
With the issue WFLY-21094 whose aim is to make key EJB services ON_DEMAND, this causes a problem: when the last EJB-based depoyment is undeployed, the ON_DEMAND service EJBRemoteConnectorService (as well as many others) is stopped, but any existing open channels created by EJBRemoteService are not closed.
When a new deployment is redeployed, this triggers the starting new instances of EJBRemoteConnectorService and other services (including AssociationService). The open channels from the previous deployment now contain stale references to AssociationService and invocations fail. If any open channels are closed when EJBRemoteConnectorSevice is stopped, this problem goes away.
However, there is a side effect from making such services ON_DEMAND:
now, if an EJB client sends an invocation request to the server (which now has no deployments available) , previously, it will receive an exception of the form:
org.jboss.ejb.client.RequestSendFailedException: org.jboss.remoting3.ServiceOpenException: Unknown service name jboss.ejb@remote+http://127.0.0.1:8080
at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.lambda$handleDone$0(RemoteEJBReceiver.java:87)
at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:856)
at org.xnio.IoUtils$2.execute(IoUtils.java:71)
whereas previously, it would receive a NoSuchEJBException, as EJBRemoteConnectorService was not stopped, the existing channels from connected clients were also not stopped, the AssociationService references are still valid, and invocations get processed "correctly".
- is depended on by
-
WFLY-21094 Transition EJB services to ON_DEMAND
-
- Pull Request Sent
-