LiveCycle ES2 – Unicast based Workspace Clustering

Adobe LiveCycle Workspace is based on client-server application model. It has Flex based client and Java based server component. All clients connected to different servers in a cluster, should be in sync all the time. This is achieved using event distribution through JGroups message communication in a cluster. In this way, any event triggered in a server, based on user action or time driven, is communicated to other servers in the cluster also. Other servers in the cluster receive these event notifications, hence clients connected to these servers also get updated. In this article, the focus is on server side clustering. The server side component is clustered using JGroups toolkit. By default, LiveCycle Workspace uses multicast based JGroups configuration. This kind of configuration is problematic for the network environments where multicasting is disabled. For such environment, the unicast configuration is suitable. This post is intended to provide unicast configuration for Workspace clustering.

The following are steps to configure unicast clustering:

  1. Navigate to Home>Services>LiveCycle Workspace ES2>Global Administration.
  2. Under Export global settings section, click Export.
  3. Save the exported file AdminGlobalSetting.xml on the file system.
  4. Edit the xml file. Replace <server_remoteevents_JChannelConnectionProperties>UDP(mcast_addr=;mcast_port=42040;ip_ttl=8):PING(timeout=3000;num_initial_members=6):FD(timeout=3000):VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK(gc_lag=10;retransmit_timeout=600,1200,2400,4800):UNICAST(timeout=600,1200,2400,4800):pbcast.STABLE(desired_avg_gossip=10000):FRAG:pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=true;print_local_addr=true):VIEW_ENFORCER</server_remoteevents_JChannelConnectionProperties> by <server_remoteevents_JChannelConnectionProperties>TCP(start_port=7800;loopback=true):TCPPING(initial_hosts=node1[7800],node2[7800];timeout=3000;num_initial_members=3;port_range=3):FD(timeout=10000):VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK(gc_lag=10;retransmit_timeout=300,600,1200,2400,4800):pbcast.STABLE(desired_avg_gossip=50000):FRAG:pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=true;print_local_addr=true):VIEW_ENFORCER</server_remoteevents_JChannelConnectionProperties> Note: The property start_port in TCP means that each member should try to assign port 7800 for itself. If this is not possible it will try the next higher port ( 7801 ) and so on, until it finds an unused port. The property initial_hosts contains a comma separated list of all cluster members with tcp start port in square bracket.
  5. Save the xml file.
  6. On the Global Administration UI, under Import global settings section, Browse the modified AdminGlobalSetting.xml file and click Import.
  7. Above mentioned steps need to be performed once, on any node of the cluster.
  8. Restart the cluster.


About Pankaj Parashar

Pankaj Parashar is a Lead Software Engineer at Adobe Systems. He is working for Adobe LiveCycle Enterprise Suite. He looks after cluster deployments and LiveCycle SDK testing. His interests include programming, cloud, big data and analytics. He is based out of Noida, India.
This entry was posted in Adobe LiveCycle ES2 (9.0.x) and tagged , , . Bookmark the permalink.

Comments are closed.