The configuration of the RPCService should be added only in a cluster environment. See below an example of configuration:
<configuration>
....
<component>
<key>org.exoplatform.services.rpc.RPCService</key>
<type>org.exoplatform.services.rpc.impl.RPCServiceImpl</type>
<init-params>
<value-param>
<name>jgroups-configuration</name>
<value>classpath:/udp.xml</value>
</value-param>
<value-param>
<name>jgroups-cluster-name</name>
<value>RPCService-Cluster</value>
</value-param>
<value-param>
<name>jgroups-default-timeout</name>
<value>0</value>
</value-param>
<value-param>
<name>allow-failover</name>
<value>true</value>
</value-param>
<value-param>
<name>retry-timeout</name>
<value>20000</value>
</value-param>
</init-params>
</component>
...
</configuration>
See below an example of configuration in case you intend to use JGroups 3 (which is mandatory if you use Infinispan as underlying cache):
<configuration>
....
<component>
<key>org.exoplatform.services.rpc.RPCService</key>
<type>org.exoplatform.services.rpc.jgv3.RPCServiceImpl</type>
<init-params>
<value-param>
<name>jgroups-configuration</name>
<value>classpath:/udp.xml</value>
</value-param>
<value-param>
<name>jgroups-cluster-name</name>
<value>RPCService-Cluster</value>
</value-param>
<value-param>
<name>jgroups-default-timeout</name>
<value>0</value>
</value-param>
<value-param>
<name>allow-failover</name>
<value>true</value>
</value-param>
<value-param>
<name>retry-timeout</name>
<value>20000</value>
</value-param>
</init-params>
</component>
...
</configuration>
The implementation for JGroups 3 is available in the exo.kernel.component.ext.rpc.impl.jgroups.v3-X.Y.Z.jar library.
jgroups-configuration | The location of the configuration of jgroups. This parameter is mandatory. |
jgroups-cluster-name | The name of the cluster. This parameter is optional and its default value is RPCService-Cluster. Since we could have several instances of the RPCService, the final name will be "${jgroups-cluster-name}-${container-name}". |
jgroups-default-timeout | The default timeout to use if the timeout is not given. If no response could be get after this timeout, an exception will be thrown. This parameter is optional and its default value is 0 which means that we do not use any timeout by default. This parameter is expressed in milliseconds. |
allow-failover | Indicates whether a command on the coordinator needs to be relaunched or not if the coordinator seems to have left the cluster. This parameter only affects the behavior of the methods executeCommandOnCoordinator. This parameter is optional and its default value is true. |
retry-timeout | The maximum amount of time to wait until the new coordinator is elected. This parameter is linked to the allow-failover parameter, and thus used in the exact same conditions. This parameter is optional and its default value is 20000. This parameter is expressed in milliseconds. |