First of all:
- I am using Weblogic 11g with 3 managed servers and 3 JMS servers with a distributed queue and 3 saf agents (for sending the messages). The persistent store of all the JMS servers is stored in a network path - 3 files for 3 servers.
- I need an application who sends a message to a queue (lets say
output.jms.q
) and then waits about 20 seconds to get the message from another queue (lets sayinput.jms.q
) - Currently, the application sends the message to its destination and when it receiving the message, the message falls to one of the 3 queues inside the distributed queue.
In my code, If I send the message from Managed-Server-1, it will try to get the response in Managed-Server-1. (Using the InitialContext()
constructor). that makes 66% of the messages unreachable!
I am aware of the Forward Delay
option and I set it to like, 2 seconds. When I was in the development, it worked like charm! now, when I have a lot of clients testing it, It feels like the Forward Delay
is not picking the right server.
When I shut down 2 of my Managed Servers - It works amazingly fast. but I am using just one machine instead of 3.
Could it be my setup?
For each Managed server there is a JMS server, and one Distributed Queue. I believe that for this thing, I only need one queue, that every JMS Server could connect to. something like a shared queue instead of distributed.
Is it possible?