ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General Discussion » WMQ Server/Client Applications

Post new topic  Reply to topic Goto page 1, 2  Next
 WMQ Server/Client Applications « View previous topic :: View next topic » 
Author Message
guogangli
PostPosted: Mon Mar 02, 2009 3:47 pm    Post subject: WMQ Server/Client Applications Reply with quote

Novice

Joined: 02 Mar 2009
Posts: 15

Hi,

As I remember, a WMQ program can be either a server application or a client application, but can't be both.

Does anyone know how to find this in IBM's books? I need to convince my co-workers for an application design.

Thank you for your help.

Grant Li
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Mar 02, 2009 4:20 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

It depends on what you mean.

An application can only create "bindings" connections to local queue managers, or "client" connections to queue managers over the network.

You can't mix and match these two connections within the same application, even in Java.

But an application making "client" connections can be acting as a server application processing requests from client applications (which can be using "bindings" connections).
Back to top
View user's profile Send private message
bruce2359
PostPosted: Mon Mar 02, 2009 4:29 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9403
Location: US: west coast, almost. Otherwise, enroute.

More specifically, client bindings means that the connection will take place across an MQ SVRCONN channel, while the non-client bindings means that the connection will take place cross-memory - the application executing in the same o/s instance.

A client-bindings application can run in the same o/s instance, but the connection will not be cross-memory.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Mon Mar 02, 2009 5:43 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2495
Location: Melbourne, Australia

bruce2359 and mqjeff referred to the methods of connecting a MQ application to a Queue Manager. Maybe guogangli was asking about Client vs Server as a general middleware paradigm.

An MQ application can be either or both, it all depends on how the messages are designed to flow. A Client would typically put a request message in MQ to be consumed by a Server. The Server may then respond back to the Client by putting a response mesage in MQ.
_________________
Glenn
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Mar 02, 2009 6:50 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

And here I thought I'd referred to both.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Tue Mar 03, 2009 7:52 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9403
Location: US: west coast, almost. Otherwise, enroute.

Quote:
As I remember, a WMQ program can be either a server application or a client application, but can't be both.

MQ imposes absolutely no restrictions on what kind of application you write.

So, your app can be the client kind, the server kind, or both client and server, or neither client nor server.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
guogangli
PostPosted: Tue Mar 03, 2009 9:54 am    Post subject: Reply with quote

Novice

Joined: 02 Mar 2009
Posts: 15

Thank you very much for your replies.

This is a C++ application with WMQ server binding. The application is linked in with WMQ server libraries. The application is running on multiple Solaris boxes, each connects to its local queue manger.

A new portion that added into the same application requires to send messages to a remote queue manager. Currently we are using sender/receiver channels.

The concern is the message orders. If one the channels goes down, the orders may break .

The thought is to change sender/receiver channels to client/server channels.

My impression is the two WMQ bingings, server and client, can not be mixed into one application (or executable).

Thanks again.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Tue Mar 03, 2009 9:58 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You're correct, you can't mix and match the two connection types in the same app, because you have to compile and link your C++ app against one of two different libraries.

You're correct that message ordering causes a lot of infrastructure concerns.

You're incorrect that the right way to solve the problem is to do anything other than eliminate the message ordering requirements.
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Tue Mar 03, 2009 6:39 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2495
Location: Melbourne, Australia

mqjeff wrote:
And here I thought I'd referred to both.


You did. I just thought I'd reinforce the concept without relating to connection sytle.
_________________
Glenn
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Tue Mar 03, 2009 6:42 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2495
Location: Melbourne, Australia

guogangli wrote:
...
The concern is the message orders. If one the channels goes down, the orders may break ...


MQ does not guarantee message order, so applications should never be designed to rely on order of delivery.

The applications should have some form of message marshalling, eg. temporary storage in a database with sorting on a key that indicates the processing order.

Quote:
...The thought is to change sender/receiver channels to client/server channels...


That raises more issues than it solves.
_________________
Glenn
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Mar 03, 2009 9:27 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

mqjeff wrote:

You're correct that message ordering causes a lot of infrastructure concerns.

You're incorrect that the right way to solve the problem is to do anything other than eliminate the message ordering requirements.



_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
gunter
PostPosted: Wed Mar 04, 2009 12:46 am    Post subject: Reply with quote

Partisan

Joined: 21 Jan 2004
Posts: 307
Location: Germany, Frankfurt

gbaddeley wrote:
MQ does not guarantee message order, so applications should never be designed to rely on order of delivery.


Than it's not really a queuing system. It's a definition of a queue, first in - first out. Maybe there a a few exceptions in MQ, FAST channel and nonpersistence messages. Please point me to the disclaimer in the doc.
_________________
Gunter Jeschawitz
IBM Certified System Administrator - Websphere MQ, 5.3
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Mar 04, 2009 1:00 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

gunter wrote:
Than it's not really a queuing system. It's a definition of a queue, first in - first out.


So all the LIFO (Last in, First Out) systems are not really queues then? How would you describe them?

As to the link, any part of the docs describing priority will describe how messages may not be presented to a reading application in delivery sequence. Likewise the description of channels, and any part of the clustering manual.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
exerk
PostPosted: Wed Mar 04, 2009 1:22 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

gunter wrote:
Than it's not really a queuing system...


A queue, by the Oxford English Dictionary definition, is:

Quote:
• noun 1 a line of people or vehicles awaiting their turn to be attended to or to proceed. 2 Computing a list of data items, commands, etc., [b]stored so as to be retrievable in a definite order.


So WMQ is a queuing system, and more flexible than the above definition allows for.
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Wed Mar 04, 2009 7:33 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9403
Location: US: west coast, almost. Otherwise, enroute.

Quote:
MQ does not guarantee message order...

Not quite accurate. MQ preserves message order under some conditions, but not all. This is well documented in the APG.

This is actually a discussion of message-affinity, where; somehow one message is related to the next - in this post, by time order.

Ignoring for a moment MessageGroups...

Message order will be preserved (for a local queue) if only one application is MQPUTting messages to a queue AND only one application is MQGETting messages from the same queue. If two applications are MQPUTting, then it is possible that messages will be interspersed. If two applications are MQGETting messages, then it is possible that one app may get a message belonging to the other app.

MQ cannot preserve message order where some messages are MQPUT or MQGET in syncpoint and some outside syncpoint.

MQ cannot preserve message order when messages flow across networks where one message may take an alternate path or end up in a dead-letter queue.

Message Groups (and GroupId in the MQMD) allow an application to preserve message order.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » General Discussion » WMQ Server/Client Applications
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.