Legacy Knowledge Base
Published Sep. 10, 2025

Using singleton_name in tcp.xml, Liferay 7.2 (fix pack 1) TCPping cluster fails to start up

Written By

Adam Zsolnay

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

Legacy Article

You are viewing an article from our legacy "FastTrack" publication program, made available for informational purposes. Articles in this program were published without a requirement for independent editing or verification and are provided"as is" without guarantee.

Before using any information from this article, independently verify its suitability for your situation and project.

Issue

After installing fix pack 1 on our 7.2 TCPping cluster, the nodes fail to start up with numerous errors. It seems that Liferay cannot create JgroupsClusterChannels and singleton_name is not recognized:

ERROR [Start Level: Equinox Container: 90d5c7f8-322e-4ba1-96f6-e4c89fa83ec0][ClusterExecutorImpl:93] bundle com.liferay.portal.cluster.multiple:3.0.10 (644)[com.liferay.portal.cluster.multiple.internal.ClusterExecutorImpl(3382)] : The activate method has thrown an exception 
com.liferay.portal.kernel.exception.SystemException: Unable to create JGroupsClusterChannel

Caused by: java.lang.IllegalArgumentException: JGRP000001: configuration error: the following properties in TCP are not recognized: {singleton_name=liferay_tcp_cluster}

Environment

  • Liferay DXP 7.2 (fix pack 1+)

Resolution

If your DXP 7.2 GA1 TCPping cluster used 1 tcp.xml per Liferay node by using singleton_name in tcp.xml (shared port for control and transport), then starting from fix pack 1 of DXP 7.2, you need to adjust your configuration, either by switching to a '2 tcp.xml per node configuration' (this linked article) or by modifying the current '1 tcp.xml per node configuration' as below:

Use case 1: the initial hosts are specified via Java options

-Djgroups.tcpping.initial_hosts=hostA[7800],hostB[7800],hostN[7800] ...

then perform the following changes:
1) update

-Djgroups.tcpping.initial_hosts=hostA[7800],hostB[7800],hostN[7800] ...

to

-Djgroups.tcpping.initial_hosts=hostA[7800],hostA[7801],hostB[7800],hostB[7801],hostN[7800],hostN[7801] ...

for each Liferay node,

2) remove the singleton_name entry from each tcp.xml.


Use case 2:
the initial hosts are hardcoded in tcp.xml

initial_hosts="hostA[7800],hostB[7800],hostN[7800] ..."

1) update

initial_hosts="hostA[7800],hostB[7800],hostN[7800] ..."

to

initial_hosts="hostA[7800],hostA[7801],hostB[7800],hostB[7801],hostN[7800],hostN[7801] ..."

in the txp.xml of each Liferay node,

2) remove the singleton_name entry from each tcp.xml.

Additional Information

Did this article resolve your issue ?

Legacy Knowledge Base