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 IndexGeneral IBM MQ Supportmirrorq Exit

Post new topicReply to topic
mirrorq Exit View previous topic :: View next topic
Author Message
Rahul sonkar
PostPosted: Tue Oct 22, 2013 10:21 am Post subject: mirrorq Exit Reply with quote

Newbie

Joined: 24 Sep 2013
Posts: 8

Hi
I am trying to implement the mirrorq Exit for some application in MQ. but i am facing some issues like.

1. when i am restarting QMgr then i am getting this error

strmqm TESTQMGR
WebSphere MQ queue manager 'TESTQMGR' starting.
AMQ7214: The module for API Exit 'mirrorq' could not be loaded.

2. when i am trying to build it getting this error.

mqm@usilkrx035:/var/mqm/exits
# make -f mirrorq.mak
xlc -c -c mirrorq.c
xlc: not found

make: 1254-004 The error code from the last command is 1.


Stop.


i have followed the below steps mentioned in the mirrorq Exit upto 3 correctly but could not able to perform step 4 & 5.


Steps given in guide are as following:

Prereqs: This sample program requires WebSphere MQ 5.3 */
/* */
/* */
/* Setup: 1. Copy the API Exit to the WebSphere MQ exits directory */
/* Copy mirrorq and mirror_r to /var/mqm/exits or the */
/* directory indicated by ExitsDefaultPath in the Queue */
/* Manager's qm.ini if not this default location. */
/* */
/* 2. Create a Namelist */
/* mirrorq.mqsc contains definitions for a Namelist */
/* and 4 queues used in testing mirrorq. Edit this file */
/* to define your own queues or just edit the Queues */
/* included in the Namelist to indicate one or more of */
/* your Queues to be mirrored. The Namelist can be any */
/* valid WebSphere MQ object name up to to 32 characters. */
/* NOTE: Although a name up to 48 characters is allowed for */
/* a Namelist, only 32 characters is allowed to configure */
/* this name in the exitdata field. */
/* In the names field, enter the source Queue to be */
/* copied, followed by the target Queue to copy messages */
/* to followed by the Queue Manager name of the target */
/* Queue. The Queue Manager name is required even if it */
/* is the local Queue Manager. If there is a second Queue */
/* to be mirrored, then enter the next source queue, target */
/* Queue, target Queue Manager. For example: */
/* TEST_IN,TEST_IN_COPY,VENUS.QMGR,TEST_OUT, */
/* TEST_OUT_COPY,PLUTO.QMGR */
/* Save the changes to mirrorq.mqsc and import the objects */
/* into WebSphere MQ using the command: */
/* */
/* runmqsc "YourQueueManagerName" < mirrorq.mqsc */
/* */
/* 3. Configue the API EXIT */
/* Edit the file /var/mqm/qmgr/<yourqmname>/qm.ini. */
/* Create an APIExitLocal stanza if one does not exit. */
/* For example: */
/* ApiExitLocal: */
/* Name=mirrorq */
/* Function=EntryPoint */
/* Module=/var/mqm/exits/mirrorq */
/* Data=mirrorq */
/* Sequence=100 */
/* */
/* where */
/* Name is a name of your choice for the exit. */
/* Function must be EntryPoint. */
/* Module must be mirrorq although the complete path may */
/* be different. */
/* Data is the name of the Namelist created in step 2. */
/* If you have other API Exits configured, select a */
/* Sequence Number for this exit that is higher if you */
/* want it called following the other exit(s) or lower if */
/* you want it call prior to the other exit(s). Otherwise, */
/* leave the default Sequence Number. */
/* Save the changes to qm.ini. */
/* */
/* */
/* 4. Stop / Start the Queue Manager */
/* To activitate the API Exit, stop and restart the */
/* Queue Manager. */
/* */
/* */
/* 5. Test the API Exit */
/* Put a message on a source Queue using amqsput. */
/* ./usr/lpp/mqm/samp/bin/amqsput sourceQueue <qmgr> */
/* Type a string of text and hit enter. */
/* Check for a copy of the message on the target Queue */
/* using amqsget. */
/* ./usr/lpp/mqm/samp/amqsget targetQueue <qmgr> */
/* */
/* You should see the text string you entered. If not, */
/* double check the configuration steps above and the */
/* MQ log error log files. */
/* */
/* */
/* Build: This program has been tested with WebSphere MQ 5.3.0.5 */
/* on AIX 5L using the IBM VisualAge C compiler. */
/* Build using the supplied make file with the command: */
/* */
/* make -f mirrorq.mak */
/* */
/* */
/* */
/* NOTES: Alias Queues are supported. Either the source or target */
/* Queue name in the Namelist may be an Alias Queue. If the */
/* source is an Alias, the MQPUT must be done to the Alias */
/* name to invoke mirroring. */
/* */
/* A source Queue may appear in the list multiple times. The */
/* MQPUT is then done using a distribution list. */
/* */
/* By default, mirrorq is not enabled for WebSphere MQ */
/* internal programs. This behavior may be changed by */
/* setting an environment variable MIRRORQ_ALLOW_INTERNAL. */
/* This environment variable must be set for queues to be */
/* mirrored when the message is sent from a remote Queue */
/* Manager. In this case the MCA is the putting application. */
/* */
/* */
/* To debug the API Exit, log statements may be enabled. */
/* To enable tracing, export the environment variable */
/* MIRRORQ_LOG_PATH to any path desired, for example: */
/* MIRRORQ_LOG_PATH=/tmp */
/* Default tracing is errors only. To increase the level of */
/* tracing, export MIRRORQ_LOG_OPTIONS=x where x is a */
/* combination of: */
/* */
/* 1 Trace entry and exit to/from functions */
/* 2 Log errors */
/* 4 Trace detail debug information */
/* */
/* for example: export MIRRORQ_LOG_OPTIONS=6 */
/* */
/* If the Queue Manager of the target Queue is remote, */
/* channels, xmitq, etc must be created to support remote */
/* puts. */
/* */
/* */
/* History: */
/* 8/29/04 - use CloseBefore rather than CloseAfter */
/* */
/* 4/13/04 - register this exit also for internal MQ */
/* processes. This can be overridden by setting */
/* environment var MIRRORQ_NO_INTERNAL. */
/* */
/* */
/* 3/13/04 - enable NameList to include a source queue */
/* multiple times. All target queues are put in */
/* a distribution list. */
/* */
/* 8/04/03 - original release



can anyone help me in this?

Thanks in advance
Rahul
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Oct 22, 2013 10:34 am Post subject: Re: mirrorq Exit Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 24648
Location: Ohio, USA

Rahul sonkar wrote:
I am trying to implement the mirrorq Exit for some application in MQ.


Is this your next attempt to implement the logging solution you describe here?

Not only are API exits an advanced topic, the mirrorq exit is a sample and is not production strength (proper memory use, etc). If you don't know how to fix the build (and the problem is your make file) you shouldn't be using an exit, especially an unsupported sample.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Rahul sonkar
PostPosted: Tue Oct 22, 2013 11:31 am Post subject: Reply with quote

Newbie

Joined: 24 Sep 2013
Posts: 8

Hi Vitor,
Yes you are right i am looking for all possible options to track my messages while passing through MQ queues without changing the existing applications.

thanks,
Rahul
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Oct 22, 2013 12:10 pm Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6077
Location: Somewhere over the Rainbow this side of Never-never land.

Rahul sonkar wrote:
track my messages


Are you working for the NSA by any chance?

Seriously, you have been offered a number of solutions that work OOTB. Those solutions satisfy a good number of systems all over the world without issue.

Just because you may have a requirement NOT to change anything there are times when some sort of compromise is needed.
Do you want a maintainable solution with some limitations or do you want a possibly unmaintanable and limited solution?

If I were doing your work I'd have no hesitation in presenting my bosses with the more maintainable option.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Oct 22, 2013 12:25 pm Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 24648
Location: Ohio, USA

Rahul sonkar wrote:
Yes you are right i am looking for all possible options to track my messages while passing through MQ queues without changing the existing applications.


As discussed in the previous thread, what exactly is the requirement here?

Moving back to the point, if you've selected an API exit as your chosen method for doing this (which will lead to more fun and laughter if you get it working; I can think of 3 things about this method I'd hate to deal with) then it's incumbent on you to get it working. If this is your chosen method, and you can't even compile it without assistance from a bunch of random, anonymous and unaccountable strangers on the Internet, what are you going to do when it crashes your queue manager? Usually at 3am or at the busiest point of the business day?

(That's not an exageration. Like all exits, mirrorq runs as part of the queue manager. A poorly written exit will reduce queue manager throughput to a slow crawl. A badly written exit will crash it. That's what I meant about mirrorq being a sample - it's not intended for production use. It's not even a support pac)
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Tue Oct 22, 2013 2:10 pm Post subject: Re: mirrorq Exit Reply with quote

Padawan

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

Rahul sonkar wrote:
2. when i am trying to build it getting this error.
mqm@usilkrx035:/var/mqm/exits
# make -f mirrorq.mak
xlc -c -c mirrorq.c
xlc: not found
make: 1254-004 The error code from the last command is 1.

Rahul, have you worked out what xlc is? (Don't any body else tell him )
_________________
Glenn
Back to top
View user's profile Send private message
Cressida
PostPosted: Wed Oct 23, 2013 1:48 am Post subject: Reply with quote

Centurion

Joined: 13 Jul 2007
Posts: 128

Vitor wrote:
'............

A poorly written exit will reduce queue manager throughput to a slow crawl. A badly written exit will crash it. That's what I meant about mirrorq being a sample - it's not intended for production use. It's not even a support pac)'


How about this :

We are going to do something about this not supported nor production strength mirrorq thing:

The first 99 people who genuinely register to download SynQuest (no fake names, with a valid company email not gmail or hotmail .), we will supply a SynQuest download URL for a fully functional, multi platform, production ready, integrated with MQ Explorer mirroring and synchornization tool with email support thrown in through end of 2013 to help the 99 folks get it going. Organizations wanting on-going maintenance and support, can request support under an annual maintenance and support arrangement with Cressida.

This is the Registration link if youd like to be one of the 99
http://www.cressidatechnology.com/downloads_registrationform_cressida.php

Thanks
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Oct 23, 2013 5:36 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 24648
Location: Ohio, USA

Cressida wrote:
How about this :

We are going to do something about this not supported nor production strength mirrorq thing:


That's an answer. While I always hesitate to recommend that other people spend their money, a valid solution to any problem building a solution is to buy one (where "buy" in this context is shorthand for "obtain a solution built by someone else who knows how to overcome the problems you're having").
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexGeneral IBM MQ Supportmirrorq Exit
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.