[jboss-jira] [JBoss JIRA] (WFLY-3438) Eliminate use of optional dependencies for LocalEJBReceiver
Richard Achmatowicz (JIRA)
issues at jboss.org
Tue Jun 3 18:24:15 EDT 2014
[ https://issues.jboss.org/browse/WFLY-3438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12972875#comment-12972875 ]
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)
More information about the jboss-jira
mailing list