Author |
Message
|
j1 |
Posted: Wed Apr 12, 2006 7:33 am Post subject: IBM Supplied API Exit not working |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Hi All,
Im trying to get the IBM supplied API exit amqsaxe located in /opt/mqm/samp/bin to work. But no trace files are generated. here is what I have done: Updated the qm.ini with the appropriate entries. Here is what my qm.ini looks like :
Quote: |
#*******************************************************************#
#* Module Name: qm.ini *#
#* Type : WebSphere MQ queue manager configuration file *#
# Function : Define the configuration of a single queue manager *#
#* *#
#*******************************************************************#
#* Notes : *#
#* 1) This file defines the configuration of the queue manager *#
#* *#
#*******************************************************************#
ExitPath:
# ExitsDefaultPath=/var/mqm/exits/
# ExitsDefaultPath64=/var/mqm/exits64/
#* *#
#* *#
Log:
LogPrimaryFiles=3
LogSecondaryFiles=2
LogFilePages=1024
LogType=CIRCULAR
LogBufferPages=0
LogPath=/var/mqm/log/QMTEST/
LogWriteIntegrity=TripleWrite
Service:
Name=AuthorizationService
EntryPoints=13
ServiceComponent:
Service=AuthorizationService
Name=MQSeries.UNIX.auth.service
Module=/opt/mqm/lib64/amqzfu
ComponentDataSize=0
ApiExitLocal:
Sequence=100
Function=EntryPoint
Module=/opt/mqm/samp/bin/amqsaxe
Name=SampleApiExit
|
I have also set MQS_TRACE_LOGFILE to '/tmp/MqiTrace'
I am trying to do a local amqput... |
|
Back to top |
|
 |
wschutz |
Posted: Wed Apr 12, 2006 8:04 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
What did you set for MQAPI_TRACE_OPTIONS and MQAPI_TRACE_LOGFILE in the environment?
btw, mine are set to:
MQAPI_TRACE_LOGFILE=/tmp/mqapi.trace
MQAPI_TRACE_OPTIONS=18 _________________ -wayne |
|
Back to top |
|
 |
RogerLacroix |
Posted: Wed Apr 12, 2006 8:14 am Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
|
Back to top |
|
 |
j1 |
Posted: Wed Apr 12, 2006 10:07 am Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Thansk wschutz,
Hi Roger,
Quote: |
First off, don't double post: |
First off, if u look carefully, my other post refers to an ERROR which I am not referring to here..I am not getting any errors any more in this case. just no output.
As you may have noticed in my previous post, I have been trying to get this to Work for two days now and have ample amounts of attempting to test and searchhing not only in google and mqseries.net but also the v6 infocenter. Also, this is not a custom written exit but a simple matter of getting the IBM supplied exit to work...
With reference to ur third post, that posting you mention is also referenced in the earlier posting where I posted and both these postings basically talk about compiling and linking options. |
|
Back to top |
|
 |
wschutz |
Posted: Wed Apr 12, 2006 10:59 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
so, any joy with the environment variables? _________________ -wayne |
|
Back to top |
|
 |
j1 |
Posted: Wed Apr 12, 2006 11:35 am Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Yup, while the exit is now loading, and generating trace files the MQCONN calls are failing with an MQRC 2374 ' MQRC_API_EXIT_ERROR'. could it be an issue with the LD_LIBRARY_PATH, where the exit is not finding oneof the libmqm files ? I have set it to include /opt/mqm/lib , /usr/lib/usr/local/lib etc .. |
|
Back to top |
|
 |
wschutz |
Posted: Wed Apr 12, 2006 11:44 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Quote: |
Programmer Response:
Consult the FFST record to obtain more detail about the problem. |
?? _________________ -wayne |
|
Back to top |
|
 |
j1 |
Posted: Wed Apr 12, 2006 12:10 pm Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Apparently it is failing in the 'zutCallApiExitsAfterConn' part. The only thing I see in the Trace History is :
Quote: |
-----{ xcsGetEnvironmentString
-----} xcsGetEnvironmentString rc=xecE_E_ENV_VAR_NOT_FOUND
|
Does that mean that the trace file currently being generated is for the CallApiExitsBEFOREConn part. How do i find out which env var is beng referred to ... |
|
Back to top |
|
 |
j1 |
Posted: Wed Apr 12, 2006 12:39 pm Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Could it be a shared memory issue. I see the 'Comment1' at the bottom of the FFST header says 'SIGBUS'. The last time i saw 'SIGBUS' errors it was diagnosed as a shared memory issue. the first pata of the FFST is below :
Quote: |
+-----------------------------------------------------------------------------+
| |
| WebSphere MQ First Failure Symptom Report |
| ========================================= |
| |
| Date/Time :- Wednesday April 12 16:35:02 EDT 2006 |
| Host Name :- xxxxx22 (SunOS 5.9) |
| PIDS :- 5724H7203 |
| LVLS :- 6.0.1.0 |
| Product Long Name :- WebSphere MQ for Solaris (SPARC platform) |
| Vendor :- IBM |
| Probe Id :- XC130004 |
| Application Name :- MQM |
| Component :- xehExceptionHandler |
| SCCS Info :- lib/cs/unix/amqxerrx.c, 1.214.1.3 |
| Line Number :- 1323 |
| Build Date :- Oct 21 2005 |
| CMVC level :- p600-100-051021 |
| Build Type :- IKAP - (Production) |
| UserID :- 00001002 (mqm) |
| Program Name :- amqsput |
| Addressing mode :- 64-bit |
| Process :- 3160 |
| Thread :- 1 |
| QueueManager :- NEW |
| ConnId(1) IPCC :- 78 |
| Major Errorcode :- STOP |
| Minor Errorcode :- OK |
| Probe Type :- HALT6109 |
| Probe Severity :- 1 |
| Probe Description :- AMQ6109: An internal WebSphere MQ error has occurred. |
| FDCSequenceNumber :- 0 |
| Arith1 :- 10 a |
| Comment1 :- SIGBUS |
| |
+-----------------------------------------------------------------------------+
|
|
|
Back to top |
|
 |
wschutz |
Posted: Wed Apr 12, 2006 3:38 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Well, I see now why you originally set: MQS_TRACE_LOGFILE
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzal.doc/saxe0.htm
I've sent feedback to the ID folks about that error....
can you try specifying amqsaxe_r ? (since, at least on my aix system, amqsput is linked with the _r libraries). Maybe it doesn't make a difference, but its worth a shot.
UPDATE: First, i see there is no amqsaxe_r in the samp/bin directory, so obviously that will not work. Second, I can reproduce your error on my test Solaris machine (I get SIGBUS as well)... I think its time for you to open a problem report with IBM.
btw...have you applied FP1 yet? _________________ -wayne |
|
Back to top |
|
 |
j1 |
Posted: Thu Apr 13, 2006 5:24 am Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Quote: |
$ dspmqver
Name: WebSphere MQ
Version: 6.0.1.0
CMVC level: p600-100-051021
BuildType: IKAP - (Production)
|
Raised PMR with IBM. |
|
Back to top |
|
 |
j1 |
Posted: Thu Apr 13, 2006 9:06 am Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Looks like the culprit may be that the IBM supplied exit is 32-bit, but MQ is looking for 64 bit libraries.
Quote: |
----- amqzxmpa.c : 420 --------------------------------------------------------
04/13/06 12:57:07 - Process(6583.1) User(mqm) Program(amqzxma0_nd)
AMQ6256: The system could not dynamically load the shared library
'/opt/mqm/samp/amqsaxe'. The queue manager will continue without this module.
EXPLANATION:
This message applies to UNIX systems. The shared library
'/opt/mqm/samp/amqsaxe' failed to load as it is probably a 32-bit library, a 64-bit library is required. Note that MQ tried to find a 64-bit library named '/opt/mqm/samp64/amqsaxe', but failed. The following message gives details of the original failure.
ACTION:
Supply the name of a 64-bit library.
----- amqxufnx.c : 2054 -------------------------------------------------------
|
I compiled and linked using the below options:
Quote: |
/opt/SUNWspro/bin/cc -I/opt/mqm/inc -KPIC -mt -L/opt/mqm/lib64 -R/opt/mqm/lib64 -hEntryPoint -dy -G -lmqmzf -lmqm -lmqmcs -lmqmzse amqsaxe0.c -o amqsaxe
|
It still gives the same error. Is there anything I am doing wrong here. Also, can Mq be forced to use the 32-bit exit instead
update : Pls ignore this reply. This was the copy of the exit I compiled in /opt/mqm/samp. The one in bin is still throwing errors after the conn call. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Apr 13, 2006 9:25 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You have to have an exit in both the 64 bit and the 32 bit locations, as I understand it.
So you need to compile a 32 bit exit and put it in /opt/mqm/samp, and a 64bit exit and put it in /opt/mqm/samp64. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
wschutz |
Posted: Thu Apr 13, 2006 10:13 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Jeff's correct, you'll need both the 32 and 64 bit libraries. I would suggest compiling fresh copies into /var/mqm/exits and /var/mqm/exits64.
I think the link for doing the compile was previously given.
The doc seems to be wrong, it suggests that if you run a 64 bit executale (as amqsput is), you only need the 64 bit libraries, when in fact, you do need both (I got it working).
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzao.doc/wmqm1410.htm _________________ -wayne |
|
Back to top |
|
 |
j1 |
Posted: Thu Apr 13, 2006 12:24 pm Post subject: |
|
|
 Centurion
Joined: 23 Jun 2003 Posts: 139
|
Ok, I still cant seem to get it to work . IBM suggests to put the exit in /var/mqm/exits64, so heres the Compile statement :
Quote: |
/opt/SUNWspro/bin/cc -xarch=v9 -xcode=pic32 -mt -G -hEntryPoint -o /var/mqm/exits64/amqsaxe amqsaxe0.c -I/opt/mqm/inc -L/opt/mqm/lib64 -R/opt/mqm/lib64 -R/usr/lib/64 -lmqm -lmqmcs -lmqmzse -lmqmzf -lsocket -lnsl -ldl
and
/opt/SUNWspro/bin/cc -xarch=v8plus -xcode=pic32 -mt -G -hEntryPoint -o /var/mqm/exits/amqsaxe amqsaxe0.c -I/opt/mqm/inc -L/opt/mqm/lib -R/opt/mqm/lib -R/usr/lib/32 -lmqm -lmqmcs -lmqmzse -lmqmzf -lsocket -lnsl -ldl |
LD_LIBRARY_PATH includes /opt/mqm/lib:/opt/mqm/lib64
wschutz, what else did you do different. I put the exits in /var/mqm/exits64 and /var/mqm/exits since thats what the Documentation suggests and the samp64 drectory dosent exist on solaris. |
|
Back to top |
|
 |
|