|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Compute node esql problems |
« View previous topic :: View next topic » |
Author |
Message
|
shassey |
Posted: Mon Jan 21, 2002 1:49 pm Post subject: |
|
|
Apprentice
Joined: 25 Dec 2001 Posts: 25 Location: shassey
|
I have a couple of insidious problems... I am running MQSI 2.02 on NT with CSD01 applied. The database is db2 v 7.1.0 with level id 02010105. - all on NT
I have a compute node where I am reading in an MRM message set and doing processing on it. One field is defined as a string and length of 1. It can have values of A, 0 (zero), C, and other numeric values though I only want to keep C, A or 0. The data is coming from the mainframe and I do change the following at the beginning of the compute node.
SET OutputRoot.MQMD.Encoding = MQENC_NATIVE;
SET OutputRoot.MQMD.CodedCharSetId = MQCCSI_Q_MGR;
SET OutputRoot.MQMD.Format = MQFMT_STRING;
IF ((CAST(InputBody.ST_LINE_ITEM[LINE_CTR].ST_DEPT_CODE AS CHAR) > ' ') AND
CAST(InputBody.ST_LINE_ITEM[LINE_CTR].ST_ITEM_PROCESS_TYPE AS CHAR) IN ('C', 'A', '0'))
do something
END IF
If the data coming in has a 0 (one of the valid values), the flow will fail. If I send a message back through after the fail with the 0 changed to an A, for example, the flow fails again. I have to boot the mqsi server to make the value of A to work properly as it did before I sent data through which had the 0 - that is numeric 0. (I also could just stop and start services) What is up with this?
I have the compute node set up to send message and exception with a trace off the failure terminal looking for Root and exception list and OutputExceptionList and it shows nothing for exception list and output exception list.
I have also tried
IF ((CAST(InputBody.ST_LINE_ITEM[LINE_CTR].ST_DEPT_CODE AS CHAR) > ' ') AND
CAST(InputBody.ST_LINE_ITEM[LINE_CTR].ST_ITEM_PROCESS_TYPE AS CHAR) IN ('C', 'A')) OR
(InputBody.ST_LINE_ITEM[LINE_CTR].ST_ITEM_PROCESS_TYPE = 0
I have tried to CAST(0 AS CHAR)
I don't understand why I can't look at a number with quotes, why the flow continues to fail after I send a 0 through and why the flow will start working again if I wait a few minutes or if I restart the machine.
Thank you very much in advance for any help.
|
|
Back to top |
|
 |
mpuetz |
Posted: Tue Jan 22, 2002 2:13 am Post subject: |
|
|
Centurion
Joined: 05 Jul 2001 Posts: 149 Location: IBM/Central WebSphere Services
|
Hi,
your code doesn't look bad here, but I strongly suggest that you
set your flow to debug mode and create a trace file from your
runs (use mqsireadlog and mqsiformatlog, check the Admin Guide
for the syntax of these commands). The debug trace should give
the exact location where your statements fail. If you can't figure
it out then, post again with the relevant portions of the debug
trace included.
But one thing: I'm not sure that a comparison of a non-empty string
with an empty string will give what you expect (I remember I had
problems doing something similar in SQL+ on Oracle and failed.
Try LENGTH(TRIM(string)) > 0 instead of string > ''.
_________________ Mathias Puetz
IBM/Central WebSphere Services
WebSphere Business Integration Specialist |
|
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
|
|
|
|