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 IBM MQ Support » Migrating from MQ Server to MQ Client

Post new topic  Reply to topic
 Migrating from MQ Server to MQ Client « View previous topic :: View next topic » 
Author Message
Aragosta
PostPosted: Wed Aug 31, 2011 9:27 am    Post subject: Migrating from MQ Server to MQ Client Reply with quote

Newbie

Joined: 30 Aug 2011
Posts: 3

Hello all.

We have a 3rd party application that runs on a stack of servers, with that stack growing every month.
Each server is presently configured with a full MQ license... a local queue manager on each server.
The costs of MQ for these servers is getting to be a problem. They are app servers doing heavyweight transactions... lots of cores... lots of $$$... with very light traffic going across MQ.

I am considering moving these queue managers to a central server, using only MQ Client on the application servers.

My question is...
Are application coding changes needed to support a move from MQ Server to MQ Client?
As it is a 3rd party application having changes made to the app is something of a problem.

Thanks in advance for any advice or guidance you can lend on this topic.

Aragosta
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Aug 31, 2011 9:33 am    Post subject: Re: Migrating from MQ Server to MQ Client Reply with quote

Grand High Poobah

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

Aragosta wrote:
Are application coding changes needed to support a move from MQ Server to MQ Client?


Not code changes per se. The existing code will need to be relinked / retasked / pointed at / whatever the client api rather than the server side api.

The application code will need to be reviewed to see if it uses any server side only features (such as XA transactions) that the standard client doesn't support.

Where you may hit problems is if the application code makes the assumption that it's running server side and doesn't need to bother with such things as reconnection & retry logic in the event of network issues.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
zpat
PostPosted: Wed Aug 31, 2011 10:09 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

Bad MQ application behaviour can become more of an issue on a client connection.

Such as - over frequent mq connections to the QM, over frequent queue mqopens, or over frequent mqget attempts.

Retrying connection failures too frequently (e.g. when QM is down).

Not using FAIL_IF_QUIESCING options on MQI calls.

If your application uses two-phase commit (or MQBEGIN calls) you will need the extended transaction client (costs same as QM).

Plus as Vitor said, the logic to retry at all may be missing, and when the QM is separated - this scenario is much more common.

The other issue is any mis-match of SLA. Does the app need to store messages at a time the QM is down for maintenance?

Any centralised QM should be highly available, which brings a whole load of considerations (HA, MI, Auto-Reconn in client).

Try to get MQ client apps to use a CCDT. But this is not always supported by apps written in Java.

Use a DNS name for the MQ host -makes it a lot easier with DR etc.
Back to top
View user's profile Send private message
exerk
PostPosted: Wed Aug 31, 2011 11:09 am    Post subject: Re: Migrating from MQ Server to MQ Client Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

Vitor wrote:
...if the application code makes the assumption that it's running server side and doesn't need to bother with such things as reconnection & retry logic in the event of network issues.

zpat wrote:
...the logic to retry at all may be missing...

Not forgetting that V7.0, if the client application's written in a 'proper' language, or if your WMQ installation is at a certain level (7.0.1.3) for 'improper' languages, reconnection support is there
_________________
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
zpat
PostPosted: Wed Aug 31, 2011 11:15 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

Yes, but client auto-reconnect only works when the QM is quiesced with the -r option.

It does not work if the QM crashes or is closed any other way. Or if it is down more than the time limit set by the client set up.
Back to top
View user's profile Send private message
exerk
PostPosted: Wed Aug 31, 2011 11:38 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

zpat wrote:
Yes, but client auto-reconnect only works when the QM is quiesced with the -r option...

I do believe that is for bouncing a queue manager and signalling to reconnectable clients that "...I'll be back in a minute...". As I stated - support is there...

Quote:
* By default clients are not automatically reconnected. Enable the automatic client reconnection by setting the MQCONNX MQCNO Option MQCNO_RECONNECT or MQCNO_RECONNECT_Q_MGR.

* Many applications are written in such a way that they are able to take advantage of auto-reconnection with no additional coding. Enable automatic reconnection for existing programs, without making any coding changes, by setting the DefRecon attribute in the channels stanza of the mqclient.ini configuration file.

_________________
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
zpat
PostPosted: Wed Aug 31, 2011 12:05 pm    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

Auto-reconnect works by completely hiding the disconnection from the client app.

It only works when the reconnection information is saved during a controlled closedown with the -r option. This info can then be restored when the QM is started with the -r option (or -v something like that).

It does not make a brand new connection, this would totally baffle client applications that were in the middle of using QM and queue handles.

So it's not a complete substitute for reconnection logic in the application.
Back to top
View user's profile Send private message
exerk
PostPosted: Wed Aug 31, 2011 12:10 pm    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

zpat wrote:
...It only works when the reconnection information is saved during a controlled closedown with the -r option. This info can then be restored when the QM is started with the -r option (or -v something like that).

From the manual:

Quote:
Automatic client reconnection is triggered by one of the following occurrences:
* queue manager failure
* ending a queue manager and specifying the -r, reconnect, option on the endmqm command


Found HERE.
_________________
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
zpat
PostPosted: Thu Sep 01, 2011 1:07 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

OK, looks like some state information is stored client side. However there are a lot of caveats about the recovered connection
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.amqzag.doc/fa70156_.htm#fa70156___PredictableRecovery[/url]
Back to top
View user's profile Send private message
LouML
PostPosted: Mon Sep 26, 2011 6:48 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

We've started to go this route in Development, using Multi-instance Queue Manager.

As for auto-reconnect, I've found the most reliable apps have been using the AMQCLCHL.TAB file and MQ Client 7.0.1.3 or greater.

We still have some servers with older versions of MQ Client that need to be upgraded. These apps can connect but cannot take advantage of the auto-reconnect.

Apps using CPAN MQ Perl API's have worked well, using MQSERVER env variable with multiple hostnames.

Unfortunately, we have some other apps that do not support MQ Client 7.0 and Multi-Instance Queue Manager.

- 3rd party apps compiled with version 6.x libs
- Some JMS apps
- external channel connections that do not support multiple hostnames in a Sender Channel CONNAME

These issues still need to be worked out before we go to Production.
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
zpat
PostPosted: Mon Sep 26, 2011 10:00 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

The Perl API should work fine with a CCDT. I personally don't like use of MQSERVER variables.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Migrating from MQ Server to MQ Client
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.