Years ago we had one app that needed to listen on one queue only (don't ask), but had to deal with 2 types of messages - plain character data replies from the mainframe, and PDF files from a .NET app. The mainframe messages needed conversion, the PDFs needed to be ingested without "MQ messing them up".
The ingesting app specified MQGMO_CONVERT for all its MQGETs.
The mainframe did what it always did, sending the messages with the MQMD.Format set to "MQSTR ". These messages were successfully converted by the QM and the app was happy.
The .NET app sending the PDF files set the MQMD.Format to none. The consuming app got a warning on these MQGETs of the PDF file that no conversion took place. The logic forked over to the PDF path, where the app checked if it was a valid PDF, and if yes continued down the path in the app to process the PDF file. And the app was happy.
Over the years we've seen the craziest things for exits the queue manager was looking for, because vendor code would think they're all that and a bag of chips by coding some weird value in the MQMD.Format to identify their oh so special messages.
-Peter Potkay
________________________________________
From: MQSeries List [MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] on behalf of Costa, D. (Damian) [DamianC-3zJjxGF14/***@public.gmane.org]
Sent: Tuesday, February 11, 2014 1:19 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: qmgr looking for exits file that does not exist
HI Nile,
Well its all useful info youre supplying here. At least youre giving me the developers perspective. I am still trying to resolve this with an MQ admin hat on.
I think the solution lies in the code of the application itself which is why Im making no headway here with the MQ admin hat on.
There is so much inconsistency here its crazy. The timing of the errors in the log are at a time when the queue itself does not show a connection from that same application.
So there are only two possibilities: there are other queues that are being written to in BIN format and ARE/ARENT being processed. Or the qmgr is in a knot and isnt showing the connections to the queue that has all the unprocessed BIN format messages.
Anyway well have a good long talk with the SAP team when they come online in the next conf call.
And worst of all in QA a similar test shows a normally processing system with no errors regarding a missing userexit even though the MQ format value is BIN.
I might even consider running a trace on prod but when we ran it on the Test bed there was a real slow down in performance.
<Now pulling my hair out
.>
From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of Neil Casey
Sent: 11 February 2014 08:00 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: qmgr looking for exits file that does not exist
Hi Damian,
that does indeed sound very strange. Perhaps the application is able to determine that it should not use convert, but only if the message which fails conversion is available when the application starts? I certainly cant think of any reason that MQ would stop trying to do conversion.
According the my reading of the manuals, when the conversion fails (due to the missing module) the message should be returned to the application with MQCC_WARNING and MQRC_NOT_CONVERTED. Perhaps your applications are just saying Well, this is not an error, so everything must be OK and are just continuing with the message they receive. Alternatively, if they are looking at the MQCC or MQRC being non-zero, and they cause a rollback, then you would expect to get an infinite loop unless they are doing poison message processing.
I dont know why MQ would keep reporting the error in the log until the application is bounced though.
Regards,
Neil
--
Neil Casey
Senior Consultant | Syntegrity Solutions
[cid:image001.jpg-***@public.gmane.org] +61 414 615 334<tel:+61%20414%20615%20334>[cid:image002.jpg-***@public.gmane.org] neil.casey-VLLIzlmz+***@public.gmane.org <mailto:neil.casey-VLLIzlmz+***@public.gmane.org>
Syntegrity Solutions Pty Ltd<http://www.syntegrity.com.au/> | Level 23 | 40 City Road | Southgate | VIC 3006
Analyse >> Integrate >> Secure >> Educate
[cid:image003.png-***@public.gmane.org]
On 11 Feb 2014, at 4:45 pm, Costa, D. (Damian) <DamianC-3zJjxGF14/***@public.gmane.org<mailto:DamianC-3zJjxGF14/***@public.gmane.org>> wrote:
Hi thanks Niel,
So we are seeing the application get bounced, then the BIN format messages arrive on the queue .
The qmgr then tries to find the user exit for BIN continuously. This appears to halt processing of the data off the queue as there is no BIN user exit converter.
The error logs get flooded by the failure to find the userexit.
Then by some weird miracle the app is bounced again and the application and MQ merrily start to process the messages.
So what is MQ actually doing? Does it have a retry limit on the convert and them just after a so many unsuccessful retires passes the message over without converting?
Would it help if the FORMAT value is set to MQFMT_NONE? It would then imply no conversion and the message would be processed as it is with the BIN format value.
We saw 108 messages on the queue all in BIN format. I expect all messages are written to the queue with this FORMAT value. But its not the only queue that is used in this system. So theyd have to confirm if all the queues are written to all queues in BIN format.
From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of Neil Casey
Sent: 11 February 2014 06:20 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/***@public.gmane.orgAC.AT>
Subject: Re: qmgr looking for exits file that does not exist
Hi Damian,
if the application is expecting binary data, then it should not set MQGMO_CONVERT in the get message options.
If this is set, and the CCSID/encoding of the QM or app doesnt match the message, then MQ wants to convert, and will look for the exit unless the format indicates a standard conversion (like for MQSTR or MQPCF or various other formats that the software knows how to convert without needing help from an exit).
Regards,
Neil
--
Neil Casey
Senior Consultant | Syntegrity Solutions
<image001.jpg> +61 414 615 334<tel:+61%20414%20615%20334><image002.jpg> neil.casey-VLLIzlmz+***@public.gmane.org <mailto:neil.casey-VLLIzlmz+***@public.gmane.org>
Syntegrity Solutions Pty Ltd<http://www.syntegrity.com.au/> | Level 23 | 40 City Road | Southgate | VIC 3006
Analyse >> Integrate >> Secure >> Educate
<image003.png>
On 11 Feb 2014, at 3:12 pm, Costa, D. (Damian) <DamianC-3zJjxGF14/***@public.gmane.org<mailto:DamianC-3zJjxGF14/***@public.gmane.org>> wrote:
HI so it's confirmed that the format field has a value of BIN. To indicate binary value data. What is the proper way for this application to indicate that the data is in binary? I thought MQ was able to handle a binary format without having to look for userexits.
-----Original Message-----
From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On
Behalf Of Zimmermann, Kurt (IT/IPD)
Sent: 10 February 2014 09:37 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/***@public.gmane.orgAC.AT>
Subject: AW: qmgr looking for exits file that does not exist
Hi,
we had the same problem some time ago. The reason was an application that
misused the format field in the message descriptor. They filled this field with
information for a SAP-application and MQ searched for a converion-exit on
/var/mqm/exit which did not exist.
Hope this information can help.
Mit freundlichen Grüßen
W&W Informatik GmbH
IP Produktion 5 Datenbanken, Middleware
Kurt Zimmermann
Postanschrift: 71630 Ludwigsburg
Büroanschrift: Im Tambour 6, 71638 Ludwigsburg
Büro: K6 0542
Wüstenrot & Württembergische - Der Vorsorge-Spezialist
Telefon: 07141 16-755391
Telefax: 07141 16-855391
E-Mail: mailto:kurt.zimmermann-***@public.gmane.org
Internet: http://www.ww-informatik.de<http://www.ww-informatik.de/>
W&W Informatik GmbH
Geschäftsführer: Jens Wieland, Ralph Wildermuth
Aufsichtsratsvorsitzender: Dr. Michael Gutjahr
Sitz: Ludwigsburg, Registergericht: Amtsgericht Stuttgart HRB 204709, USt-IdNr.
DE 176036989
Bitte denken Sie an die Umwelt, bevor Sie diese E-Mail drucken.
-----Ursprüngliche Nachricht-----
Von: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] Im
Auftrag von Costa, D. (Damian)
Gesendet: Montag, 10. Februar 2014 07:56
An: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/***@public.gmane.orgAC.AT>
Betreff: qmgr looking for exits file that does not exist
HI all,
I have a new wrinkle in our story from last week:
The very same qmgr that had the disconnecting APP is now reporting on a
missing userexits file that we've never been requested to create or install at all.
all the apps connect via server conn channels, none of which have any
send/rcv/security exits at all.
In the std error log it has this repeatedly:
02/10/14 06:32:48 - Process(12622.305) User(mqm) Program(amqrmppa)
Host(xxxxxxx)
AMQ6174: The dynamically loadable shared library '/var/mqm/exits64/BIN' was
not found. The system returned error number '2' and error message 'No such file
or directory'. The queue manager will continue without this module.
EXPLANATION:
This message applies to UNIX systems. The shared library
'/var/mqm/exits64/BIN'
was not found.
ACTION:
Check that the file exists, and is either fully qualified or is in the appropriate
director, also check the file access permissions.
So what could be requesting a userexit ? From a file called "BIN"?????
Can anything connected to MQ just call/request a userexit??? Isn't it internal to
MQ processes?
********************
Nedbank Limited Reg No 1951/000009/06. The following link displays the names
of the Nedbank Board of Directors and Company Secretary.
[ http://www.nedbank.co.za/terms/DirectorsNedbank.htm ] This email is
confidential and is intended for the addressee only.
The following link will take you to Nedbank's legal notice.
[ http://www.nedbank.co.za/terms/EmailDisclaimer.htm ]
********************
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and, in the
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv General
Users Guide available at http://www.lsoft.com<http://www.lsoft.com/>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
*****************************************************************
**************
Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte
Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten
haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser E-Mail ist nicht
gestattet.
This email may contain confidential and/or privileged information.
If you are not the intended recipient (or have received this email in error) please
notify the sender immediately and destroy this email.
Any unauthorized copying, disclosure or distribution of the material in this email
is strictly forbidden.
*****************************************************************
**************
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and, in the
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv General
Users Guide available at http://www.lsoft.com<http://www.lsoft.com/>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
********************
Nedbank Limited Reg No 1951/000009/06. The following link displays
the names of the Nedbank Board of Directors and Company Secretary.
[ http://www.nedbank.co.za/terms/DirectorsNedbank.htm ]
This email is confidential and is intended for the addressee only.
The following link will take you to Nedbank's legal notice.
[ http://www.nedbank.co.za/terms/EmailDisclaimer.htm ]
********************
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
********************
Nedbank Limited Reg No 1951/000009/06. The following link displays
the names of the Nedbank Board of Directors and Company Secretary.
[ http://www.nedbank.co.za/terms/DirectorsNedbank.htm ]
This email is confidential and is intended for the addressee only.
The following link will take you to Nedbank's legal notice.
[ http://www.nedbank.co.za/terms/EmailDisclaimer.htm ]
********************
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
********************
Nedbank Limited Reg No 1951/000009/06. The following link displays
the names of the Nedbank Board of Directors and Company Secretary.
[ http://www.nedbank.co.za/terms/DirectorsNedbank.htm ]
This email is confidential and is intended for the addressee only.
The following link will take you to Nedbank's legal notice.
[ http://www.nedbank.co.za/terms/EmailDisclaimer.htm ]
********************
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html