[
https://issues.jboss.org/browse/WFLY-3438?page=com.atlassian.jira.plugin....
]
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)