1
votes

First of all:

  1. 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.
  2. 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 say input.jms.q)
  3. 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?

1

1 Answers

0
votes

The solution to my problem was using Distrubuted Topics. Weblogic 10.3.5+ supports replicating the messages between the servers. yeah, its pretty lame.. but that's what I found.