|  | 
 
  
    | 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 2001Posts: 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 2001Posts: 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
 
 |  |  |  |