[
https://issues.jboss.org/browse/WFLY-3438?page=com.atlassian.jira.plugin....
]
Richard Achmatowicz edited comment on WFLY-3438 at 6/3/14 6:22 PM:
-------------------------------------------------------------------
If the Remoting Endpoint and the EJBRemoteConnectorService are indeed optional, and may be
excluded from the server profile, a better way to handle this would be to check the state
of the models for the Remoting and EJB subsystems at start up, see if the elements are
present, and if they are both present, add them in as REQUIRED dependencies; otherwise
leave them out. Also, if one of them is added in via the management interface, set the
handler to force a reload so the check at start up may be performed anew.
The use cases where both are left out could correspond to a single node accepting HTTP
based servlet requests which accessed a local stateful session bean or a cluster of such
nodes.
was (Author: rachmato):
If the Remoting Endpoint and the EJBRemotingConnectorService are indeed optional, and may
be excluded from the server profile, a better way to handle this would be to check the
state of the models for the Remoting and EJB subsystems at start up, see if the elements
are present, and if they are both present, add them in as REQUIRED dependencies; otherwise
leave them out. Also, if one of them is added in via the management interface, set the
handler to force a reload so the check at start up may be performed anew.
The use cases where both are left out could correspond to a single node accepting HTTP
based servlet requests which accessed a local stateful session bean or a cluster of such
nodes.
Eliminate use of optional dependencies for LocalEJBReceiver
-----------------------------------------------------------
Key: WFLY-3438
URL:
https://issues.jboss.org/browse/WFLY-3438
Project: WildFly
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: EJB
Affects Versions: 8.0.0.Final, 9.0.0.Alpha1
Reporter: Richard Achmatowicz
Assignee: Richard Achmatowicz
Fix For: 9.0.0.CR1
This issue was initially raised on stackoverflow (see below).
When the EJB subsystem starts, it starts instances of LocalEJBReceiver which have
optional dependencies on the Remoting Endpoint as well as the EJBRemoteConnectorService. I
assume that these were marked as optional as remote invocations on EJBs is not required by
the spec for the web profile.
As stated in the forum post, the issue is that the LocalEJBReceiver gets started before
its dependency EJBRemoteConnectorService and so the optional dependency does not get
resolved correctly - effectively turning off the LocalEJBReceiver's ability to add
cluster nodes to cluster contexts for the clusters it belongs to.
This results in the exception
.java.lang.IllegalStateException: EJBCLIENT000029: No cluster context available for
cluster named ejb
The solution described in the forum post works to ensure that the dependencies are
established correctly, but we need to factor into this what the spec says about the web
profile and the possibility that some components (e.g. the EJBRemoteConnector) may be
optionally removed.
--
This message was sent by Atlassian JIRA
(v6.2.3#6260)