-
-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Newly created MUC chat service(while creating MUC room) is not clustering. #30
Comments
How is this related to Rest Api? Maybe you should close this and post in Hazelcast clustering plugin repo or in the forums, if the issue is with Openfire itself rather than with the plugin. Btw, telling that this is critical to you won't do anything. There are only a few volunteers with limited time here. If this is really critical to you, pay someone to create a patch. |
Hi @wrooot Please let me know if i am going in another direction. |
You can actually call just
as it's a null event for non-clustered setups. However, it's not a ServiceEvent you want - that just simply tells the other nodes that a service has been added, not that a room has been created. I'm not sure exactly what the cluster task you need is, you may have to dig a bit deeper in the code for that. Greg |
@GregDThomas , Thanks for your input. Let me explore more in code of rest api and openfire. |
Hi @GregDThomas |
I've not spent much time in this area of code, so am not entirely confident of my next statement, but ... I would expect that there is only one chat service that serves all rooms - so there is no need to create a new one on the other nodes in the cluster. I note that there is no code that references a ServiceAddedEvent in the core Openfire code; so whatever code creates a MUC room via the normal method manages to get it shared across the cluster without using ServiceAddedEvent. For example, MultiUserChatServiceImpl, c. line 728, does so by calling a cluster task for the new room and each of the new rooms occupants. https://github.com/igniterealtime/Openfire/blob/master/xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/MultiUserChatServiceImpl.java#L728 Aside; if you running Openfire 4.4.0 then clustering is broken, which may explain the problem you're seeing. |
@GregDThomas thanks for your inputs. |
Ah, OK in which case you may well be right in your original use of ServiceAddedEvent() - but your best bet is to try and fix your proble, and if it works, submit a PR! |
This has also arised over at igniterealtime/openfire-hazelcast-plugin#30 It's essentially the same issue (I think) so it looks to me like a bug in core Openfire, not any of the plugins. |
I believe this if fixed in I believe this is now fixed in igniterealtime/Openfire#1479 |
@GregDThomas hello, |
I'm seeing something similar. When I'm in a cluster and I create a room, the room exists properly in the database, but is incorrect in the cache. When I look at it in the cache, the settings are wrong, the ID is -1, and the savedToDB value is False. I've opened PR #111 that duplicates the same code that the Admin interface uses, to explicitly sync the cache when creating or updating a MUC. |
Hey, how did you finally solve the muc cluster problem? Is the MultiUserChatServiceImpl class modified? Or is it more wiretapping? |
Hi team,
I am working in openfire cluster environment. I have 2 node of openfire say as node_1 and node_2. When i create new MUC room(as chat_room1) with new chat service(as service_1). It creates MUC room as chat_room1 and service as service_1 on node_1 but not on node_2 because the chat service(service_1) is not clustering(sync) on another node(node_2).
As i see in createRoom method, call of ServiceAddedEvent is not there to cluster the chat service.
Please fix this issue, it very critical for me.
Thanks
The text was updated successfully, but these errors were encountered: