Many LiveCycle ES components use the open-source JGroups group communication software for inter-component communication. For JBoss 4.0.3 SP1 and 4.2, JGroups is the default group communication mechanism. JGroups use IP multicasting (as opposed to the regular IP unicasting where one host directly communicates with another host on the network). JGroups members send messages to other group members via an ip_mcast_address which is essentially a group identifier for the broadcast of messages. This ip_mcast_address is an IP address that belongs to a range of IP addresses once called “Class D” addresses.
There can be multiple JGroups in a single product, such as JBoss or LiveCycle. In fact, at least five separate JGroups are involved in a single instance of LiveCycle ES on JBoss. For more details, please see Red Hat’s JBoss EAP documentation here. Look under JBoss EAP 4.3
LiveCycle ES Update 1 (8.2.1) has a new cache from Gemstone called Gemfire which is separate from JGroups. See this for more details on Gemfire.
Different JGroups need to use different multicast IP addresses and they need to be unique to the network. Defaults are used. In network environments where more than one JBoss instance is running, these default ip_mcast_addr values can conflict and cause unintended behaviour. Also, the server logs will fill up with WARNING messages such as these (“JJK-LIVECYCLE” is the name I gave to my partition in run.sh):
WARN [org.jgroups.protocols.UDP] discarded message from different group “Tomcat-adobeLIVECYCLE” (our group is “Tomcat-AdobeLiveCycle”). Sender was 10.45.231.213:32770
WARN [org.jgroups.protocols.UDP] discarded message from different group “DefaultPartition” (our group is “JJK-LIVECYCLE”). Sender was 2001:1890:110b:2526:51f7:a810:4589:e8b5:54356
WARN [org.jgroups.protocols.UDP] discarded message from different group “DefaultPartition-SFSBCache” (our group is “JJK-LIVECYCLE-SFSBCache”). Sender was 2001:1890:110b:2526:51f7:a810:4589:e8b5:54359
WARN [org.jgroups.protocols.UDP] discarded message from different group “DefaultPartition-EntityCache” (our group is “JJK-LIVECYCLE-EntityCache”). Sender was 2001:1890:110b:2526:51f7:a810:4589:e8b5:54362
If yours is the only JBoss instance in your local network, you probably will not hit this issue and do NOT need to do anything. But if you do hit conflicts, you need to change one or more of the hard-coded ip_multicast_addresses in multiple locations.
For guidelines from Cisco about allocating IP Multicast addresses, see here. The most restrictive (“Site-Local Scope”) is the range 220.127.116.11 to 18.104.22.168
Apache Tomcat Cluster Service (JBoss only)
This Tomcat service provides HTTP session replication. Change mcast_addr. You might also want to change num_initial_members and jgroups.udp.ip.ttl to 1.
LiveCycle Workspace (WebSphere, WebLogic and JBoss)
Login to the LiveCycle Admin Console (http://server:port/adminui) and navigate to:
Services > LiveCycle Workspace ES > Global Administration
Export global settings to your local disk, edit the file AdminGlobalSetting.xml, and import it back.
LiveCycle Content Services ES (WebSphere, WebLogic and JBoss)
JBoss Cluster Service (JBoss only)
This service provides clustering capability for the JBoss Naming Registry (JNDI) as well as the JBoss EJB Container. $JBOSS_HOME/server/all/deploy/cluster-service.xml is the configuration file.
JBoss Stateful Sessions Beans Cache(JBoss 4.2 only)
$JBOSS_HOME/server/all/deploy/ejb3-clustered-sfsbcache-service.xml is the configuration file. (sfsb = stateful session beans, a type of EJB)
JBoss Entity Beans Cache (JBoss 4.2 only)
$JBOSS_HOME/server/all/deploy/ejb3-entity-cache-service.xml is the configuration file. (entity beans, a type of EJB)