]
Stefano Maestri reassigned WFLY-10540:
--------------------------------------
Assignee: Paul Ferraro
jboss-ejb-client.xml is unable to specify global cluster config
---------------------------------------------------------------
Key: WFLY-10540
URL:
https://issues.jboss.org/browse/WFLY-10540
Project: WildFly
Issue Type: Enhancement
Components: EJB
Affects Versions: 13.0.0.Final
Reporter: Brad Maxwell
Assignee: Paul Ferraro
Priority: Critical
When configuring an Wildfly instance with EJB Client applications to make remote EJB
calls to another Wildfly instance with clustering enabled using a server to server
connection configuration, the client Wildfly will specify remote-outbound-connection in
the remoting subsystem. The client Wildfly instance will create and maintain these 2
connections in this example below.
Client applications deployed on the client Wildfly instance will then package a
jboss-ejb-client.xml in the application which specifies the remote server aliases that it
wants to have access to.
For the application to use clustered ejb, it then specifies the cluster information in
the jboss-ejb-client.xml, where it has to specify connection information like username,
connection options as opposed to just an alias as in the case of remoting-ejb-receiver.
The cluster info should be configured in the JBoss profile xml so that client apps
jboss-ejb-client.xml can just reference aliases like the non clustered connections to
avoid applications creating their own connections to the same cluster nodes.
{code}
<subsystem xmlns="urn:jboss:domain:remoting:3.0">
<endpoint/>
<http-connector name="http-remoting-connector"
connector-ref="default" security-realm="ApplicationRealm"/>
<outbound-connections>
<remote-outbound-connection
name="remote-ejb-connection-1"
outbound-socket-binding-ref="remote-ejb-1" username="ejbuser"
security-realm="ApplicationRealm" protocol="http-remoting">
<properties>
<property name="SASL_POLICY_NOANONYMOUS"
value="false"/>
<property name="SASL_DISALLOWED_MECHANISMS"
value="JBOSS-LOCAL-USER"/>
<property name="SSL_ENABLED"
value="false"/>
</properties>
</remote-outbound-connection>
<remote-outbound-connection
name="remote-ejb-connection-2"
outbound-socket-binding-ref="remote-ejb-2" username="ejbuser"
security-realm="ApplicationRealm" protocol="http-remoting">
<properties>
<property name="SASL_POLICY_NOANONYMOUS"
value="false"/>
<property name="SASL_DISALLOWED_MECHANISMS"
value="JBOSS-LOCAL-USER"/>
<property name="SSL_ENABLED"
value="false"/>
</properties>
</remote-outbound-connection>
</outbound-connections>
</subsystem>
{code}
{code}
<jboss-ejb-client xmlns:xsi="urn:jboss:ejb-client:1.2"
xsi:noNamespaceSchemaLocation="jboss-ejb-client_1_2.xsd">
<client-context>
<ejb-receivers exclude-local-receiver="true">
<remoting-ejb-receiver
outbound-connection-ref="remote-ejb-connection-1" />
<remoting-ejb-receiver
outbound-connection-ref="remote-ejb-connection-2" />
</ejb-receivers>
<clusters>
<cluster name="ejb" security-realm="ApplicationRealm"
username="ejb-cluster-username">
<connection-creation-options>
<property name="org.xnio.Options.SSL_ENABLED"
value="false" />
<property name="org.xnio.Options.SASL_POLICY_NOANONYMOUS"
value="false" />
</connection-creation-options>
</cluster>
</clusters>
</client-context>
</jboss-ejb-client>
{code}