powered by Jive Software

[3.8.2] route.all-resources doesn't work?


I have upgraded to 3.8.2 and it seems that now multi client doesn’t work like expected any more.

With 3.7 I have configured it like here http://community.igniterealtime.org/thread/45842 and the property does exist.

With 3.8.2 I have two clients with different resources but same jid connected. Both have the same priority (1), but only the first session receives the messages.

Is there any additional step required in 3.8.2?

Works fine for me. Just logged with user@server and same resource “test” on Spark and Exodus clients and then logged with another user on third client and send a message to user@server. Both Spark and Exodus got a message. Both have priority 1.

Hello wroot,

I have tried it with two instances of Spark on the same machine.

Only the last active instance received the messages. Is there any additional I can enable?

Well, i have just tested it with 3 Sparks and it works (2 in virtual machines and one local). Are you sending the message from a client (Spark?) or some other way? It should send a message to bare JID without a resource. Try removing the property and creating it again, rebooting the server.

Yes I was using Spark too. (The daily build version )

So if I enable the debug log I should see such details?

I will do it as soon as possible (Monday).

Not sure if you’ll see anything useful in the debug log, but as you send a message to a contact in your roster in Spark, then you are doing the same thing as i did and it should work. So there should be something wrong with the server. Try recreating the property and rebooting.

It doesn’t change anything. Did you started Spark two times on the same machine?

Perhaps this could be the issue.

No. One is in one virtual machine, another is in another virtual machine. So they are isolated. And i send a message to a contact in my Spark on my local machine.

I have tried it again and the message is only received by the spark instance which has sent at last a message.

Is it possible to activate a routing log to see which messages are routed to which resources?

I thought there was a switch to see the internal xml format about a message and who is the receiver.

Maybe you misunderstand route all behavior. If you received a message from one of the clients (one of those with same username and different resources) and you reply to this message, then it won’t send a message to both resources. This is how it works. Only the first message send to bare jid goes to all resources. When you do a reply, a client (Spark in this case) sends it to the resource it gave the message from, so it sends it to user@server/first and second one doesn’t receive anything. Unless you modify client’s behavior to always send messages to bare JIDs, even on replies, then it should work.

Oh yes, it seems that I missunderstood the idea of routing.

I thought the messages are always routed, not only if the conversation is started.

It is too bad that it is the client behavior.

Well, routing in this case is not intended for messaging syncing (like iMessage or Skype does), but for some single purpose notification of all resources about event or new chat.

Another way would be to modify Openfire’s routing behavior, to route all messages, not only for bare JIDs. Though this is probably against some XEP standard and won’t be implemented in the official version. Can’t say what exactly to change in the code.

It isn’t necessary to do that, but I thought the last time I have tried it all incoming messages are routed to all ressources. That is why I was asking for support.