3 Replies Latest reply on Apr 29, 2003 9:17 PM by Adrian Brock

    Point to Point Messaging Design Issues

    schoeto Newbie

      I am evaluating JBossMQ for a telecom application. Part of the requirement calls for the ability to direct a message to one of up to 1000 client apps or have one of the clients send a message back to a central server.

      The way I read the JBoss documentation there are two ways to do this. I could set up a queue destination for each of the 1000 clients and simply send a directed message. Since the number of clients at any given time will be fluid, this seems like an admin nightmare. Or, I can set up 1 queue and use message selectors to direct messages.

      Is the multiple queue approach feasible? Also, does JBoss do client-side or server-side filtering when using a message selector?

      Server:
      Running JBoss-3.2.0
      RedHat Linux 7.3
      Intel PIII 850mhz
      512M mem

      Client App:
      Swing app running on Win2k machines

      Regards,
      Tony Schoenbachler
      eOn Communications

        • 1. Re: Point to Point Messaging Design Issues
          Adrian Brock Master

          The message selectors are run by the server
          on each receive operation. The messages are
          only indexed in JMSPriority order.

          This can have bad performance if there
          are large numbers of messages in the queue
          that do not match the selector, especially
          if the messages have been pushed out onto disk.

          But like you say, configuring 1000 queues would
          be a nightmare. This could be done programatically
          using the MBean interface of the destination manager.

          Maybe you can make use of temporary queues and
          the JMSReplyTo property?

          Regards,
          Adrian

          • 2. Re: Point to Point Messaging Design Issues
            schoeto Newbie

            I light of your reply. I was thinking that I could set up a fixed number of queues - say maybe 10 - and assign client id's to queues using a round robin algorithm.

            This way the server would never have to sloth thru any more than 100 selectors in any one queue. Does this sound like a feasible idea from your perspective?

            The way I envision this, the message sender would know which queue to publish to based on the range in which the client ID fell. Also, I would need a service to dole out client ID's.

            If this does not seem practical. I would try to use a temporary message to solve this problem. However, I'm unclear on how to implement this. If the queue is temporary how will the message receivers know about the destination. If I could see an example of temporary queues it would be helpful.

            Regards,
            Tony Schoenbachler