Project

General

Profile

Changing from LB external MUC to Clustered internal MUC

Geena Rollins
Added about 5 years ago

I've been successfully using Tigase 5.2 with Load-Balanced External MUC 2.2 components. I saw tigase-acs-muc.jar was available and saw threads on this forum. So, I tried converting this project to Clustered internal MUC without success. Users connected to different Tigase servers create duplicate rooms when they try to join, just like internal MUCs have always done.

What is the proper way to use Clustered MUC instead of Load-Balanced MUC?

I took a copy of the working 5.2 directory and converted it from External MUC to Internal MUC.

I added the acs.jar files to the jars directory and changed the etc/init.properties file as below.

When I restarted the tigases, the log files did not appear. And, users created duplicate rooms of the same name.

I tested all this using the PSI client.

Load Balanced MUC:

config-type=--gen-config-def

--admins=admin@di

--virt-hosts = di

--debug=server

--user-db=mysql

--user-db-uri=jdbc:mysql://t02:3306/tigasedb?user=root&password=ppp&useUnicode=true&characterEncoding=UTF-8&autoCreateUser=true

muc/history-db=mysql

--cluster-mode=true

--cluster-nodes=t02,t03,t08

--comp-name-1=ext

--comp-class-1=tigase.server.ext.ComponentProtocol

--external=muc.di:muc:listen:5270:t02:accept:ReceiverBareJidLB

Clustered MUC:

config-type=--gen-config-def

--admins=admin@di

--virt-hosts = di

--debug=server

--user-db=mysql

--user-db-uri=jdbc:mysql://t02:3306/tigasedb?user=root&password=ppp&useUnicode=true&characterEncoding=UTF-8&autoCreateUser=true

muc/history-db=mysql

--cluster-mode=true

--cluster-nodes=t02,t03,t08

--cluster-connect-all=true

--cl-conn-repo-class=tigase.cluster.repo.ClConConfigRepository

--comp-name-1=muc

--comp-class-1=tigase.muc.MUCComponent


Replies (21)

(1)

Added by Wojciech Kapcia TigaseTeam about 5 years ago

Clustered MUC component uses different class, as per guide :

--comp-class-1 = tigase.muc.cluster.MUCComponentClustered

Added by Justin Posey about 5 years ago

Upon running with this configuration, I see the following stack with the latest tigase server 5.2.0 rc distribution. This appears to be a Tigase MUC bug, as I do not see tigase/muc/Room$RoomOccupantListener in the MUC 2.2.0-tigase-server-5.2.0-rc1 jar or MUC ACS 1.0.0-SNAPSHOT jar:

2014-01-08 12:02:42.571 [main]             ThreadExceptionHandler.uncaughtException()  SEVERE: Uncaught thread: "main" exception
java.lang.NoClassDefFoundError: tigase/muc/Room$RoomOccupantListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at tigase.muc.cluster.MUCComponentClustered.<clinit>(SourceFile:30)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at tigase.server.MessageRouterConfig.getMsgRcvInstance(MessageRouterConfig.java:418)
        at tigase.server.MessageRouter.setProperties(MessageRouter.java:787)
        at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:550)
        at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:182)
        at tigase.conf.Configurator.componentAdded(Configurator.java:50)
        at tigase.conf.Configurator.componentAdded(Configurator.java:33)
        at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:115)
        at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:141)
        at tigase.server.MessageRouter.setConfig(MessageRouter.java:696)
        at tigase.server.XMPPServer.start(XMPPServer.java:142)
        at tigase.server.XMPPServer.main(XMPPServer.java:112)
Caused by: java.lang.ClassNotFoundException: tigase.muc.Room$RoomOccupantListener
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at tigase.muc.cluster.MUCComponentClustered.<clinit>(SourceFile:30)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at tigase.server.MessageRouterConfig.getMsgRcvInstance(MessageRouterConfig.java:418)
        at tigase.server.MessageRouter.setProperties(MessageRouter.java:787)
        at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:550)
        at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:182)
        at tigase.conf.Configurator.componentAdded(Configurator.java:50)
        at tigase.conf.Configurator.componentAdded(Configurator.java:33)
        at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:115)
        at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:141)
        at tigase.server.MessageRouter.setConfig(MessageRouter.java:696)
        at tigase.server.XMPPServer.start(XMPPServer.java:142)
        at tigase.server.XMPPServer.main(XMPPServer.java:112)

Added by Geena Rollins about 5 years ago

Thanks for the info, WK. Still working on trying to get it to work.

JP-- Yes, RoomOccupantListener does not appear in the muc-2.2.0 jar. But, when I compiled/built from sources, the resulting muc jar does have RoomOccupantListener.

See http://www.tigase.org/content/tigase-xmpp-server-520-and-later-compilation-and-generating-distribution-packages

(1)

Added by Geena Rollins about 5 years ago

After changes, I still get duplicate rooms as if there is no dispatching to MUCs. I changed init.properties:

--comp-name-1=muc

--comp-class-1=tigase.muc.cluster.MUCComponentClustered

This is how I installed:

git clone git://repository.tigase.org/git/tigase-server.git

cd tigase-server

mvn -f modules/master/pom.xml clean install

I copied all the resulting jars to all tigase-servers

No exceptions were written to tigase-console.log

Added by Justin Posey about 5 years ago

Thanks, Geena. The problem is that the RC release has SNAPSHOT dependencies, like this:

<artifactItem>
    <groupId>tigase</groupId>
    <artifactId>tigase-muc</artifactId>
    <version>2.2.0-SNAPSHOT</version>
    <scope>runtime</scope>
</artifactItem>

This means that each time you build the Tigase distribution from source, you run the risk of ending up with a different distribution (a moving target, so to speak), because one of the SNAPSHOT dependencies may get updated. All those SNAPSHOT artifacts should have been released in preparation for the Tigase RC release to ensure the RC remains static when built from source. In this case, tigase:tigase-acs-muc:1.0.0-SNAPSHOT was updated to reference a class that was placed in tigase:tigase-muc:2.2.0-SNAPSHOT. My tigase-muc SNAPSHOT jar was out of date.

Tigase team: in the future, I think it would be wise to not rely on SNAPSHOT dependencies for RC releases.

Added by Wojciech Kapcia TigaseTeam about 5 years ago

Hi Justin,

thank you for the finding - as you probably noticed, for the sake of having repeatable builds we both release all beta/rc artifacts as well as tag them in the repositories. However - those components weren't part of RC1 release thus neither they were tagged nor RC1 artifacts were deployed.

As for the issues above - use latest snapshot versions of MUC/ACS packages - this should resolve the exceptions.

Afterwards, with the latest versions and correct configuration please verify whether duplication of rooms persists.

(1)

Added by Justin Posey about 5 years ago

Hi Wojciech, the following distribution pom.xml was tagged as part of the RC1 release but it contains multiple SNAPSHOTs:

https://projects.tigase.org/projects/tigase-server/repository/revisions/tigase-server-5.2.0-rc1/entry/modules/distribution/pom.xml

So if I were to sync to the tag and build today and then do the same build a month from now, I will likely have a different distribution because the SNAPSHOT dependencies may have changed. That's not good. :)

With regard to the clustered MUC, I'll try with all the latest SNAPSHOTs. Thanks!

(1)

Added by Geena Rollins about 5 years ago

I still get duplicate rooms with what seems to be the latest jars.

The published tigase-muc-2.2.0-SNAPSHOT.jar is old and doesn't have Room$RoomOccupantListener

This is how I installed:

git clone git://repository.tigase.org/git/tigase-server.git

cd tigase-server

mvn -f modules/master/pom.xml clean install

On the 3 tigase servers, I deleted all files in the jars directories and copied the jars resulting from the above mvn call to the jars directories.

Added by Wojciech Kapcia TigaseTeam about 5 years ago

@Justin

Ah, those - a human error; they are for resources (mostly scripts and db schemas) so while you may end up with different build it is less likely to cause problems due to missing binary dependencies. We will be more strict in the future to avoid such problems :)

@Geena

To clarify - this happens if you switch from using externally LB regular MUC to internally running ACS version of MUC - correct?

Added by Justin Posey about 5 years ago

Thanks, Wojciech!

Seeing this stack in clustering mode now. Is it safe to ignore since it is at INFO level? We have two nodes clustered like so:

--cluster-mode=true
--cluster-nodes=10.190.113.169,10.190.113.170
# Manual cluster configuration; don't use MySQL or NFS
--cl-conn-repo-class=tigase.cluster.repo.ClConConfigRepository
--sm-cluster-strategy-class=tigase.cluster.strategy.OnlineUsersCachingStrategy
muc/muc-max-history-size[I]=0
muc/history-db=memory
--comp-name-1=muc
--comp-class-1=tigase.muc.cluster.MUCComponentClustered
muc/muc-strategy-class[S]=tigase.muc.cluster.DefaultStrategy

Note that 10.190.113.169 maps to n7vgd1socextig02.general.disney.private.

Stack below is from 10.190.113.170.

2014-01-10 15:02:49,233 INFO                 tigase.xmpp.XMPPIOService [pool-14-thread-3] - null, type: connect, Socket: nullSocket[addr=/10.190.113.169,port=5277,localport=60887], jid: null, Incorrect XML data: <stream:stream xmlns='tigase:cluster' xmlns:stream='http://etherx.jabber.org/streams' from='n7vgd1socextig02.general.disney.private' to='n7vgd1socextig02.general.disney.private' id='67a82aee-5f14-4bb5-9437-72703fd84cbd'>, stopping connection: null, exception:
java.lang.NullPointerException: null
        at tigase.cluster.ClusterConnectionManager.xmppStreamOpened(ClusterConnectionManager.java:685) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xmpp.XMPPIOService.xmppStreamOpened(XMPPIOService.java:769) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xmpp.XMPPDomBuilderHandler.startElement(XMPPDomBuilderHandler.java:316) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xml.SimpleParser.parse(SimpleParser.java:314) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xmpp.XMPPIOService.processSocketData(XMPPIOService.java:649) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.net.IOService.call(IOService.java:262) [tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.net.IOService.call(IOService.java:103) [tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un
(1)

Added by Geena Rollins about 5 years ago

Correct.

(1)
Avatar?id=6023&size=32x32

Added by Artur Hefczyc TigaseTeam about 5 years ago

Justin Posey wrote:

Thanks, Wojciech!

Seeing this stack in clustering mode now. Is it safe to ignore since it is at INFO level? We have two nodes clustered like so:

--cluster-nodes=10.190.113.169,10.190.113.170

You must not use IP addresses in your configuration file. You have to use hostnames. I think in your case one host would be" n7vgd1socextig02.general.disney.private and the other I do not know. It looks like you have some other misconfiguration on your installation as the cluster node tries to connect to itself. The NPE exception should not happen anyway but you should really fix the configuration problem.

(1)

Added by Justin Posey about 5 years ago

Thanks, Artur. I've switched to hostnames by changing the config as follows. Is it okay for the cluster config to be identical across all machines in the cluster, or must each machine exclude its own host from the cluster-nodes list, as I've done below?

On n7vgd1socextig02.general.disney.private:

--cluster-nodes=n7vgd1socextig03.general.disney.private

On n7vgd1socextig03.general.disney.private:

--cluster-nodes=n7vgd1socextig02.general.disney.private

However, I am still seeing the following NPE. Here's an example on "n7vgd1socextig03.general.disney.private" tigase log:

2014-01-10 17:07:53,135 INFO                 tigase.xmpp.XMPPIOService [pool-14-thread-8] - null, type: connect, Socket: nullSocket[addr=n7vgd1socextig02.general.disney.private/10.190.113.169,port=5277,localport=25795], jid: null, Incorrect XML data: <stream:stream xmlns='tigase:cluster' xmlns:stream='http://etherx.jabber.org/streams' from='n7vgd1socextig02.general.disney.private' to='n7vgd1socextig03.general.disney.private' id='7f98e1e4-3d28-4ecd-a010-6812f8bb711a'>, stopping connection: null, exception:
java.lang.NullPointerException: null
        at tigase.cluster.ClusterConnectionManager.xmppStreamOpened(ClusterConnectionManager.java:685) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xmpp.XMPPIOService.xmppStreamOpened(XMPPIOService.java:769) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xmpp.XMPPDomBuilderHandler.startElement(XMPPDomBuilderHandler.java:316) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xml.SimpleParser.parse(SimpleParser.java:314) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.xmpp.XMPPIOService.processSocketData(XMPPIOService.java:649) ~[tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.net.IOService.call(IOService.java:262) [tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at tigase.net.IOService.call(IOService.java:103) [tigase-friends-plugin-3.0.0-SNAPSHOT-jar-with-dependencies.jar:na]
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_06]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_06]
        at java.lang.Thread.run(Unknown Source) [na:1.7.0_06]

My understanding is that this type of configuration (ClConConfigRepository) does not require a handshake. Is that not the case?

Avatar?id=6023&size=32x32

Added by Artur Hefczyc TigaseTeam about 5 years ago

Justin Posey wrote:

Thanks, Artur. I've switched to hostnames by changing the config as follows. Is it okay for the cluster config to be identical across all machines in the cluster, or must each machine exclude its own host from the cluster-nodes list, as I've done below?

Yes, you can have identical configuration on all machines in the cluster.

However, I am still seeing the following NPE. Here's an example on "n7vgd1socextig03.general.disney.private" tigase log:

Looks like the host attempts to connect to itself which usually means configuration problem. Most common is the network configuration issue. Please note, you have to use a canonical hostname which resolves to a correct IP address and this IP resolution must work on all machines across the cluster. Can you copy/paste the whole init.properties file?

My understanding is that this type of configuration (ClConConfigRepository) does not require a handshake. Is that not the case?

You always need a handshake. The connections between cluster nodes must be authenticated and authorized to avoid intruder connections on the cluster communication port.

The best option to make sure you have a correct configuration for cluster nodes is to use the default cluster repository with cluster auto configuration.

(1)

Added by kellogs . about 5 years ago

Hello, are the MUCComponentClustered and MUC ACS available for download anywhere ?

Thanks

(1)

Added by Justin Posey about 5 years ago

I've addressed the NPE by using the result of 'hostname' instead of 'hostname -f' in the init.properites cluster config. Clustering for normal chat appears to work fine. MUC chatting doesn't seem to work, because the invite triggered by user a in room a on node a is not received user b on node b. Here is the full init.properties:

#save no history for muc
muc/muc-max-history-size[I]=0
muc/history-db=memory
--comp-name-1=muc
--comp-class-1=tigase.muc.cluster.MUCComponentClustered
muc/muc-strategy-class[S]=tigase.muc.cluster.DefaultStrategy


--auth-db=com.CustomAuthRepository
--user-db=tigase.db.DummyRepository

--ssl-certs-location=/opt/tigase/server/etc/

# Load balancing is accomplished outside the scope of Tigase, so disable Tigase load balancing
--cm-see-other-host=none

basic-conf/logging/java.util.logging.FileHandler.pattern = /var/log/tigase/tigase.log

# Auth SASL integration
sess-man/plugins-conf/urn\:ietf\:params\:xml\:ns\:xmpp-sasl/factory=tigase.auth.mechanisms.CustomSaslServerFactory
sess-man/plugins-conf/urn\:ietf\:params\:xml\:ns\:xmpp-sasl/callbackhandler=com.CustomAuthCallbackHandler
sess-man/plugins-conf/urn\:ietf\:params\:xml\:ns\:xmpp-sasl/mechanism-selector=tigase.auth.mechanisms.CustomAuthMechanismSelector

# Put stats counters on bosh incoming (e.g. web)
# and c2s (e.g. PSI client)
bosh/incoming-filters=tigase.server.filters.PacketCounter
c2s/incoming-filters=tigase.server.filters.PacketCounter

# Disable compression as the ZLib library is broken when under high load
cl-comp/compress-stream[B]=false

config-type=--gen-config-def

# Disable federation
message-router/components/msg-receivers/s2s.active[B]=false

# JMX Monitoring
--monitoring=jmx:9050:9051

# BOSH new users connection per second limit. Connections established within the limit are processed normally; all others are simply disconnected
--new-connections-throttling=5280:3500

--roster-implementation=com.CustomRoster

# Manual cluster configuration; don't use MySQL or NFS
--cl-conn-repo-class=tigase.cluster.repo.ClConConfigRepository

--sm-cluster-strategy-class=tigase.cluster.strategy.OnlineUsersCachingStrategy

# Tigase stats: stats-history-size,stats-update-interval
--stats-history=2160,10
## Concatenated entries to init.properties deployed in the friends package
--admins=admin@di

# Increase the inactivity timeout for slow computers / connections
bosh/max-wait[L]=120
bosh/max-inactivity[L]=30

--cluster-mode=true
--cluster-nodes=n7vgd1socextig02:abc123:5277,n7vgd1socextig03:abc123:5277
--sm-plugins=+friends:security,\
+dce:friends-preprocessor,\
+chat:message:process,\
+chat:message:offline,\
+friends:metamessage,\
+friends:names,\
+friends:roster-limit,\
+friends:search,\
+friends:setting,\
+muc:message:process,\
+muc:room:process,\
+muc:message:offline,\
+ordering,\
+http://jabber.org/protocol/commands,\
+presence=20,\
+urn:ietf:params:xml:ns:xmpp-sasl,\
+urn:xmpp:ping,\
-amp,\
-domain-filter,\
-http://jabber.org/protocol/stats,\
-jabber:iq:auth,\
-jabber:iq:private,\
-jabber:iq:privacy,\
-message,\
-msgoffline,\
-vcard-temp

--trusted=admin@di
--virt-hosts=d,di
(1)

Added by Wojciech Kapcia TigaseTeam about 5 years ago

@ kellogs

For the moment you can grab complete ACS package from our nightlies page for example: tigase-acs-2.0.1-SNAPSHOT-b90.tar.gz

@ Justin

Can you confirm that regular MUC chats (when joining regularly without invite) works and doesn't cause duplicated rooms and the issue is only related to lack of invites getting through?

@ Geena

I've tried to replicate the issue (using nightly tigase-server-5.2.0-SNAPSHOT-b3412-dist-max.tar.gz) and I wasn't able to. Could you try above package? A log excerpt from both nodes with --debug=server,muc from the moment you try to create and join room would be helpful.

(1)

Added by Justin Posey about 5 years ago

Hi Wojciech,

After some more configuration tweaks, I've got clustering working just fine with internal MUC/Tigase ACS. We will verify the existence of the room creation bug now. Thanks!

Added by Geena Rollins about 5 years ago

I was able to get MUC ACS to work. The cluster-nodes syntax changed since 5.1.0. Thank you for your help.

--cluster-nodes=t02,t03,t08

--cluster-nodes=t02:abc123:5277,t03:abc123:5277,t08:abc123:5277

Added by Justin Posey about 5 years ago

I'm not seeing the room creation bug manifest with this configuration. Thanks, guys!

Added by Wojciech Kapcia TigaseTeam about 5 years ago

@Geena

With the new version we recommend using automatic node discovery instead of manual configuration.

    (1-21/21)