Link to home
Start Free TrialLog in
Avatar of alcksang
alcksangFlag for Singapore

asked on

Newbie in Websphere MQ and C#

Hi Experts,

I'm really new in IBM Websphere MQ. May I know basically what does this IBM Websphere MQ does? I have search throught IBM websites and also codeproject, all they shows me is basically some kind of Middleware where using Message to integrate applications with applications. But yet, I still can't really get a clearer concept of what it does.
How does these applications actually been integrate with the IBM Websphere MQ? (Message sent -> Message received -> then?)
Is there any short and sharp kind of samples that I can understand what does the IBM Websphere MQ do and how does it work?
Besides this, what else it can do?

My company wish to go on with a project which uses Visual C# 2003 (MS-SQL) with this IBM Websphere MQ. I found some examples in codeproject. However, I do not seem to make it work. Is there any step by step kind of guide on the net that I can refer to (throught out the Administration and settings to Visual C# 2003 programming).


Regards,
alcksang
Avatar of alcksang
alcksang
Flag of Singapore image

ASKER

Hi Experts,

Anyone?? Please Help..... T_T


Regards,
alcksang
Avatar of giltjr
MQ is a message deliver product.  There are a couple of ways to use it.

MQ Server "local" mode.  A program writes to a queue.  MQ can then be setup to trigger another program on the same box, or another program can be scheduled and check the queue and read the queue.

MQ Server to MQ Server.  A program writes a message on a local queue, this is then forwarded to a remote queue on another server.  On the other server MQ can either trigger a process or program can be scheduled to check for messages and read then off of the queue.

MQ Server to MQ Client.  A program on the sever side writes a message to a queue.  The client must check to see if there are any messages on the queue and reads them and processes them as needed.  Or the client can write a message to a queue on the sever.  This can trigger a process or a scheduled process can check for messages.

How is MQ different from say e-mail.  MQ guarantees delivery (although it does not guarantee when, could be 1 second from now or 100 days) and guarantees integrity.
Hi giltjr,

Thanks for the reply, giltjr. Your reply really explains something. However, I've downloaded the IBM Websphere MQ Trial and installed into one of my testing server (Windows 2003 Standard). I do not seem to know how does this MQ Server works. Is there any good/short/sharp kind of tutorial or references that I can refer to? I would like to at least setup a testing ground for the MQ for a better understanding. Really meeting lots of problem with MQ even just the setting up.

What I see in the MQ Explorer are as below:
- IBM Websphere MQ
  -> QM_Test_Alcks
      -> Queues
      -> Advanced
          -> Channels
          -> Client Connections
          -> Listeners
          -> Services
          -> Process Definitions
          -> Namelists
          -> Authentication Information
  -> Queue Manager Clusters
      -> Default_Cluster
          -> Full Repositories
              -> QM_Test_Alcks
          -> Partial Respositories

I seriously do not understand what does each and every items in the MQ Explorer does. Will be really appreciate if you can help me to understand them more.

Besides, for MQ Clients, I believe there are a few of them. Mind to introduce a little more about all these clients?

Thanks in advance. Will really appreciate that.

Regards,
alcksang
I have never used the MQ Explorer, I have only use MQ on z/OS (one of IBM's mainframe OS's).

You may want to try:

      http://www.redbooks.ibm.com/redpapers/pdfs/redp0021.pdf

There are really not that many clients, it just seems that way.  MQ Client can run on 35 or so different OS's/Platforms.  There is a MQ Client for Solaris, Linux on Intel, Linux on PowerPC, Linux on z/Series, OS/400, Windows, xxxBSD, MCP, and so on.  Each client is basically the same.  I think there is one unqiue client that is targeted to process information to and from handheld devices like cell phones and PDA's, which does have some restrictions that the other clients don't.

Example: MQ's maximum message size is 100MB.  Well you really don't want to send/receive 100MB of data to your cell phone, so I think that version is limited to about 32K.
Avatar of krynnalex
krynnalex

Hi alcksang,

Since MQ is a big stuff and I am not the one work with C#, so may be we can discuss conceptually and start from a basic beginner setting of MQ and the see what area you want to know more.

Now, I would like to start with a basic MQ server configuration and some coding concept.

In general, in a basic beginner MQ Model, there should be involving a MQ server and a MQ Client, the Server side basically with one Q Manager, one listeners, one server connection channel and for sure with a local queue. after creating all the things (you can create 'em using MQ Explorer), then start the MQ QManager, start the listener and start the Server connection channel.

And the client (java) now can create a MQ factory with context that using MQ Client API which specifying the MQ Server IP/Host Name, listener port, Q Manager name and channel name, afterwards you can prepare to create a message and put it to one specific queue that you created, and then the client should able to read it back from that queue.

If you would like to use two clients approach, then two of the client also create factory and context with binding to the same Q Manager, one put message to the queue, and the other looping to pack message from that queue.

And If you want to move one more step forward, you can create one more queue, that requester client can put message to its REQ_Q and processor client can pack message from REQ_Q. Afterwards processor client can do something on top of the message then place a reply message to the RPY_Q and requester client can pack back the processed request from RPY_Q whatever in sync or async mode.

(A place can be enhanced by using co-relation ID that to map the reply and identify what request that this reply is reply to)





Hi Krynnalex,

Thanks for the reply and sorry for my delay as I have not been able to access to the internet for the past few days.

May I know why do ppls use MQ? Normally what does MQ helps these users to do? Is it integration, communication or etc etc???

Now I have a MQ Explorer installed in my server. So preferably what client I should be using? Any link for me to download that?

Is there any short and sweet guide that I can straight away configure my MQ Explorer and work with the client? So that I can have a quick try on that?


Regards,
alcksang

ASKER CERTIFIED SOLUTION
Avatar of giltjr
giltjr
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Hi giltjr,

Ops, sorry if I didn't explain well in my previous msg. My company have 2 senior engineers who is catering a Development project with some integration using IBM MQ. They they both resigned. And too fortunately that I been dump into this one without any knowledge about MQ. I only happen to find out this MQ server when I reach this site (I was in another department previously and it is at diff location and diff project). Also do not know why my boss choose me. Surely weird.

Okie, guess I will try out the MQ and see whether I can get myself familiar with it. Thanks all.


Regards,
alcksang

Ah.  That explains it.

If you have one application/system (I will call this the generator) that must get data to a second application/system (I will call this the receiver) you have two options.  

You have MQ sever on the generator side in both options.  

On the generator side you add code (either a new program or modify existing code) to write a message with the needed information to a queue.  

Now you can either have MQ client or MQ sever on the receiver side.

With MQ Client you have to write code that runs on/in the receiver that checks for messages every so often, that is the receiver is polling for data.  This can be used if the data is not time dependent.

With MQ sever on the receiver you can setup the queue on the generator side to be a remote queue, and as soon as the generator writes the message MQ will automatically send it to the MQ sever on the receiver.  You can then setup the queue on the receiver side to trigger a process that will read the message and process the data.  This should be used if the data is time dependent and needs to be processed as soon as possible.

If you have an environment where data must be passed back and forth between two applications/systems.  Then you will need MQ sever on both of them.  Each side having at least one queue that is a remote queue on the other sever.

I am sure that IBM has a few Red books at www.redbooks.ibm.com that may help you also.