powered by Jive Software

S2s for internal network with 2 server


I’'ve been trying to set up two servers in my own network and it is not working as I expected. This is still in a testing case.

Here is the scenario:

I want to set up two servers in my internal network (however I want to let user to access server from outside network via web interface.) The purpose of having two server is that we have a branch in another area and we want to have one server at that site so that even if the server on our side is down, they can still be online and can still communicate within their site or vice-versa.

I want to set up two servers. One is running on windows XP and the other is running from Debian Linux. let’'s say US is for US area and CA is for Canada area.

I use the same mySQL DB for both servers (which might be not good and i will use two separate mysql DB later, all advices are welcome.)

US and Canada users both share the same domain.

userUS1@mydomain.com,userUS2@mydomain.com, userUS3@mydomain.com are from US area using jive server on WindowsXP

userCA1@mydomain.com,userCA2@mydomain.com,userCA3@mydomain.com are from Canada area using jive server on Debian

I do not want any external client accessing our server directly or via other public jabber server. The only interface for outside user will be JWchat web interface.

US server and Canada servers will have MUC rooms and the users from both area will take part in MUC rooms from both server.

so, let’'s say

MUC_US has userCA1@mydomain.com,userUS1@mydomain.com,userUS2@mydomain.com

MUC_CA has userUS2@mydomain.com,userCA1@mydomain.com,userCA2@mydomain.com

Now our server in Canada(CA) is down without notice.

MUC_CA and all users from Canada using Debian servers are down along with the servers.

However MUC_US is still operational and userUS1@mydomain.com,userUS2@mydomain.com are still online but userCA1@mydomain.com from Canada is, of course, disconnected.

Please note, there is no subdomain. There is no user@CA.mydomain.com or user2@US.mydomain.com. They all use the same domain @mydomain.com.

(if there is a better use of the s2s for internal networks, I’'ll be glad to know.)


Now I have set up two test boxes and try to emulate this scenario. since I don’‘t want to mess things up, I don’'t use myDomain.com ( i mean our real domain) but the host name of my computer.

my windows host name is wmhtet-xpdt

my debian host name is entropy.

Since I have setup windows box first, all the users have @wmhtet-xpdt. After successful deployment and testing of single server, I set up another server on debian box. I try to test s2s setting.

MUC room is running on the windows server, wmhtet-xpdt and some users are also in it using the same windows server, wmhtet-xpdt.

Now,I try to login with the jabber ID of user@wmhtet(which is already registered in mySQL DB, I don’‘t let user create new account via client) using entropy (Jive server on Debian). It ends up as a user@entropy and cannot see other people who are online via windows box, wmhtet-xpdt and vice-versa. I try to change the domain name in the jive server of debian linux box to be wmhtet-xpdt, the user then become user@wmhtet-xpdt however they are still not seeing the user who is using the actual wmhtet-xpdt server. I know that this is not right but I don’'t know how to fix that.

Let me know where do I do wrong and how can I achieve the setting I have mentioned before. Thanks.

Please enlighten me.


Hey wmhtet,

Your post was large so there are many things to mention. JM currently supports s2s but not clustering. That means that you may have different servers using different hostnames that are able to exchange packets between them. We do not support clustering yet which will let you have many machines servicing the same hostname giving the impression to the “outside” world as if the server was a single machine.

When a user connects to a server, for example hostname=example.com, then his account will be user@example.com. That means that the user is using an account that resides in that server. Therefore, it is not valid to connect to a server using an account of a remote server. The way s2s works is the following, a user connects to a server (ie. the user is local to that server) and then he/she may send/receive messages from remote servers. The way to send a message to a remote server is by just specifying a remote JID (eg. user2@remoteserver.com). The message will be sent from the user to his server, then the server will analyze the JID and will find out that it belongs to a remote server so the server will establish a connection to the remote server. Once the connection was established the message will be sent to the remote server which in turn will deliver the message to the target local user.

The same explanation described above applies when connecting to remote services. If you need to connect to a remote MUC service (ie. you are using a user connected to a server that will need to connect to a remote server that is hosting the MUC service) then you will need to send packets to a JID of the form roomName@conferente.remoteserver.com. If you are using JM in your both server then just make sure that remoteserver.com can be resolved by your local server. Otherwise, you will need to be sure that conferente.remoteserver.com can be resolved by your local server.


– Gato

Hi Gato

Thanks for such a prompt reply. I have read your reply yesterday after you have posted (I guess). However I’'ve taken time to reply it until now. It would be great if Jive can support clustering. Is there a poll for that? I know that you guys have a website where you collect poll for the features to be put into future version of Jive. If Jive does not support clustering, What is the maximum limit of users Jive can handle?



Hey wmhtet,

The place to vote for issues is our bug tracking tool located here: http://www.jivesoftware.org/issues/secure/Dashboard.jspa. We haven’'t created an issue for clustering yet. Before we support clustering we are going to implement a routing architecture that will let the server scale to several hundred of thousands connections. We the current architecture the server will let you scale up to 5K simultaneous connections.


– Gato

Hi Gato

5k simulatenous connection is a big number number. Pretty impressive. Since I have been asking about how many clients Jive server can support, I also want to know how many users the built in Data base in Jive can support, even though I have decided to use an outside database.