[jboss-jira] [JBoss JIRA] (WFLY-3438) Eliminate use of optional dependencies for LocalEJBReceiver
Richard Achmatowicz (JIRA)
issues at jboss.org
Tue Jun 3 18:34:15 EDT 2014
[ https://issues.jboss.org/browse/WFLY-3438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12973054#comment-12973054 ]
Richard Achmatowicz edited comment on WFLY-3438 at 6/3/14 6:34 PM:
-------------------------------------------------------------------
I've reviewed this approach and have decided to assume that the Remoting Endpoint (the so-called SYSTEM_ENDPOINT which is started up as part of the Remoting subsystem initialization) will always be present. Remoting is so fundamental, its hard to imagine the Remoting subsystem not being started in a configuration.
So the solution will be to check for the existence of the EJBRemoteConnectorService, represented by the element:
{noformat}
<subsystem xmlns="urn:jboss:domain:ejb3:2.0">
...
<remote connector-ref="..." thread-pool-name="..."/>
...
</subsystem>
{noformat}
and if it is present in the model, add in the two REQUIRED dependencies above; otherwise don't include them.
This setup would allow a sysadmin to disable the remote connector and so effectively "turn off" remote invovations on EJBs on the node in question..
was (Author: rachmato):
I've reviewed this approach and have decided to assume that the Remoting Endpoint (the so-called SYSTEM_ENDPOINT which is started up as part of the Remoting subsystem initialization) will always be present. Remoting is so fundamental, its hard to imagine the Remoting subsystem not being started in a configuration.
So the solution will be to check for the existence of the EJBRemoteConnectorService, represented by the element:
{noformat}
<subsystem xmlns="urn:jboss:domain:ejb3:2.0">
...
<remote connector-ref="..." thread-pool-name="..."/>
...
</subsystem>
{noformat}
and if it is present in the model, add in the two REQUIRED dependencies above; otherwise don't include them.
> 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