|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Strange message vanishing |
« View previous topic :: View next topic » |
Author |
Message
|
guezeg |
Posted: Tue Jan 03, 2006 2:28 am Post subject: Strange message vanishing |
|
|
Newbie
Joined: 31 Aug 2005 Posts: 2
|
Hello everyone,
my environnement :
- WMQI 2.1 CSD03
- WMQSeries 5.2.1 CSD04
I lose messages when the execution reaches a compute node supposed to insert theses messages and execute a procedure.
The problem is that the procedure should return a error message and the trycatch node should catch it, but it does not behave this way.
Here is my compute node ESQL script :
Quote: |
SET OutputRoot = InputRoot;
-- Entrez le code SQL sous cette ligne. Le SQL au-dessus de cette ligne pourrait être régénéré, ce qui entraînerait la perte des modifications.
----------------------------
-- Declaration de variables
----------------------------
DECLARE extrait BLOB;
DECLARE chaine CHARACTER;
DECLARE nPosition1 INTEGER;
DECLARE nPosition2 INTEGER;
DECLARE nPosition3 INTEGER;
DECLARE sContent CHARACTER;
DECLARE nIdMessage INTEGER;
---------------------------------------
-- Transformation du message en string
---------------------------------------
SET extrait = BITSTREAM(InputBody);
SET chaine = CAST( extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId);
SET nPosition1 = POSITION('<Content>' IN chaine);
SET nPosition2 = POSITION('</Content>' IN chaine);
SET nPosition3 = nPosition2 - 9 - nPosition1;
SET sContent = SUBSTRING (chaine FROM nPosition1+9 FOR nPosition3);
SET OutputRoot.XML.Siprog.MsgEntry.Header.IdMessage[] = PASSTHRU ('SELECT COUNT(*) AS RESULT FROM ALL_TAB_PRIVS WHERE TABLE_NAME = ''EAI_BUFFER_F_CONT_ORDERID'' and PRIVILEGE=''SELECT''');
SET nIdMessage = CAST(OutputRoot.XML.Siprog.MsgEntry.Header.IdMessage.RESULT AS DECIMAL);
IF nIdMessage = 0 THEN
THROW USER EXCEPTION SEVERITY 3 MESSAGE 02289 VALUES('ORA-02289: la séquence EAI_BUFFER_F_CONT_ORDERID n''existe pas ou les droits donnés au user EAI ne sont pas corrects');
END IF;
SET OutputRoot.XML.Siprog.MsgEntry.Header.IdMessage = NULL;
SET OutputRoot.XML.Siprog.MsgEntry.Header.IdMessage[] = PASSTHRU ('SELECT EAI_BUFFER_F_CONT_ORDERID.NEXTVAL from dual');
SET nIdMessage = CAST(OutputRoot.XML.Siprog.MsgEntry.Header.IdMessage.NEXTVAL AS DECIMAL);
PASSTHRU ('INSERT INTO EAI_TABLE_BUFFER_F_CONT(ORDERID, BUFFERXML) values(?, ?)', nIdMessage, sContent);
PASSTHRU('{call EAI_ORACLE_CreationCdeMarche(?)}', nIdMessage);
PASSTHRU('DELETE FROM EAI_TABLE_BUFFER_F_CONT');
|
And here is the trace generate with this message.
Quote: |
2005-12-02 16:44:45.878612 3342 UserTrace BIP2544I: Node 'FL_F_CONT_Root.Sub_FL_F_CONT_3.C_PS_EAI_Oracle': Executing database SQL statement 'INSERT INTO EAI_TABLE_BUFFER_F_CONT(ORDERID, BUFFERXML) values(?, ?)' derived from (46, 1); expressions 'nIdMessage, sContent'; resulting parameter values '970, '<Entete><Id_Commande>038201200-9</Id_Commande><DateNotification> .... </Description></Entete>''.
2005-12-02 16:44:45.881904 3342 UserTrace BIP2537I: Node 'FL_F_CONT_Root.Sub_FL_F_CONT_3.C_PS_EAI_Oracle': Executing statement 'PASSTHRU(nIdMessage)' at (52, 1).
2005-12-02 16:44:45.881969 3342 UserTrace BIP2538I: Node 'FL_F_CONT_Root.Sub_FL_F_CONT_3.C_PS_EAI_Oracle': Evaluating expression 'nIdMessage' at (52, 52).
2005-12-02 16:44:45.882034 3342 UserTrace BIP2544I: Node 'FL_F_CONT_Root.Sub_FL_F_CONT_3.C_PS_EAI_Oracle': Executing database SQL statement '{call EAI_ORACLE_CreationCdeMarche(?)}' derived from (52, 1); expressions 'nIdMessage'; resulting parameter values '970'.
2005-12-02 16:45:05.017708 3856 UserTrace BIP7082I: Node '': Publishing to destination QM_CFG_MGR:SYSTEM.BROKER.ADMIN.REPLY:4366674d677253756233 for user admin.
A publication destination is being added to the list of destinations to QM_CFG_MGR:SYSTEM.BROKER.ADMIN.REPLY:4366674d677253756233 for user admin.
No user action required.
Threads encountered in this trace:
3342 3856
|
Then a file core is generated and the message vanishes.
Somes other messages work in that flow without any crash. If I execute the procedure manually, it returns the expected normal message. We thouht there might be a problem with the broker, so we rebuilt it, but the behaviour has not changed.
An other interesting fact is that an other environnement lets the flow run correctly : an exception is raised an caught. These environnements are supposed to be copies of each other.
Would anyone have an explaination of this issue ? |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Jan 03, 2006 4:17 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
It has nothing to do with your problem (likely), but you should definitely upgrade the MQ to version 5.3, at least. WMQI 2.1 does work with MQ 5.3 - and should work with the latest CSD/FixPack level of 5.3.
You should also upgrade your MQSI to at least FixPack 5.
And I don't see why you're using PASSTHRU for the INSERT or DELETE. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|