Uploaded image for project: 'EJB Client Library (AS7+)'
  1. EJB Client Library (AS7+)
  2. EJBCLIENT-542

Close open channels when EJBRemoteConnectorService stops

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • None

      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".

              rachmato@redhat.com Richard Achmatowicz
              rachmato@redhat.com Richard Achmatowicz
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: