Win a copy of AWS Security this week in the Cloud/Virtualization forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Paul Clapham
  • Jeanne Boyarsky
  • Junilu Lacar
  • Henry Wong
  • Ron McLeod
  • Devaka Cooray
  • Tim Cooke
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Frits Walraven
  • Tim Holloway
  • Carey Brown
  • Piet Souris
  • salvin francis
  • fred rosenberger

How to design MQ based system

Ranch Hand
Posts: 30
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi there!

I need to integrate 2 applications. There is an external system and it sends events to the target system. MQ Series is used as an interface between two systems. There will be a significant flow of events between 2 systems (thousands per hour). Should I use Queue Managers, remote queue and channel in this case, like this:

Option 1.
Source system Message Producer -> Source Q Manager1 (remote queue) --- channel --- Target Q Manager 2 (target local queue) <-- listener ---- > DB

Or there can be a more simple design, when source system just connects remotely to the target queue and put messages in it, e.g.:
Option 2.
Source system Message Producer --> Target Q Manager 2 (target local queue) <-- listener ---- > DB

What approach is better?

Ranch Hand
Posts: 624
BSD Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Depends on the security of the environment.
We had implemented 2 approaches previously.

1. "A" sends messages to "B" and vice versa. Both are in different networks.
So we had "C" in between. So "A" sent messages to "C"'s remote queue, then "C" puts it in "B"'s remote queue and my Java app reads it from "B".
Then I put message in "B"'s remote queue, "B" puts in in "C"'s remote queue and other party reads the message from "C".
(Here A, B and C are QMGRs)

2. Both parties are in same network.
So I put message in "X"'s local queue and other party reads message from that local queue only.
(Here X is a QMGR)

Interestingly in the 2nd option we had less traffic and in the 1st we had around 20,00,000 messages flowing per hour.

Personally I have never measured the difference in performance between the 2 setups, but I feel that there will not be much difference considering the fact that IBM Websphere MQ is one of the best in the market.

So I feel it is better to have a simple setup(just 1 QMGR, 1 local QUEUE) if both PRODUCER and CONSUMER are in same network.
If PRODUCER and CONSUMER are in different network, then you go for the more complex setup considering the security.
Every plan is a little cooler if you have a blimp. And a tiny ad.
Devious Experiments for a Truly Passive Greenhouse!
    Bookmark Topic Watch Topic
  • New Topic