-
Support Patch
-
Resolution: Done
-
Major
-
None
-
EAP_EWP 5.1.2
-
None
This patch applies the fix for https://issues.jboss.org/browse/JBREM-1316 to the EAP 5.1.2 version of remoting.
Description of JBREM-1316:
There is now a new configuration parameter, "idempotent", which, when set to false (default value is true), configures MicroSocketClientInvoker to retry an invocation only when the writing of the invocation payload has not completed.
Once the payload has been written, there will be no retries, and, if there is a subsequent failure while trying to read the response, an org.jboss.remoting.InvocationFailureException will be thrown, which is the current behavior after all retries have been exhausted.
To set the flag the files to alter are -
- JBossMessaging: $JBOSS_HOME/server/$PROFILE/deploy/messaging/remoting-bisocket-service.xml
You could add the parameter here:
<server>
<mbean code="org.jboss.remoting.transport.Connector"
name="jboss.messaging:service=Connector,transport=bisocket"
display-name="Bisocket Transport Connector">
<attribute name="Configuration">
<config>
<invoker transport="bisocket">
...
<attribute name="idempotent" isParam="true">true</attribute>
...
</invoker>
- EJB2: $JBOSS_HOME/server/$PROFILE/deploy/remoting-jboss-beans.xml
You could add the parameter here:
<deployment xmlns="urn:jboss:bean-deployer:2.0">
...
<!-- Remoting server configuration -->
<bean name="UnifiedInvokerConfiguration" class="org.jboss.remoting.ServerConfiguration">
...
<!-- Parameters visible to both client and server -->
<property name="invokerLocatorParameters">
<map keyClass="java.lang.String" valueClass="java.lang.String">
...
<entry>
<key>idempotent</key>
<value>true</value>
</entry>
...
- EJB3: $JBOSS_HOME/server/$PROFILE/deploy/ejb3-connectors-jboss-beans.xml
You could add the parameter here:
<deployment xmlns="urn:jboss:bean-deployer:2.0">
...
<bean name="org.jboss.ejb3.RemotingConnector"
class="org.jboss.remoting.transport.Connector">
<property name="invokerLocator">
<value-factory bean="ServiceBindingManager"
method="getStringBinding">
<parameter>
jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3
</parameter>
<parameter>
<null />
</parameter>
<parameter>socket://${jboss.bind.address}:${port}?timeout=300000&invokerDestructionDelay=5000&idempotent=true</parameter>
<parameter>
<null />
</parameter>
<parameter>3873</parameter>
</value-factory>
...