| Author | 
		  Message
		 | 
		
		  | Sabapathi | 
		  
		    
			  
				 Posted: Mon Aug 04, 2008 8:38 pm    Post subject: Getting error code 2033 | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 04 Aug 2008 Posts: 3
  
  | 
		  
		    
			  
				Hi,
 
 
I am facing one issue when testing with huge mass of transactions.
 
The problem is as per below.
 
 
I have two seperate programs to put and get messages from request Queue and Response Queue respectively....
 
 
In development it is working fine.....but users did strees test means my get program fails some times  i am getting return code 2033.
 
 
for getq i am using msgid 
 
 
In GetQ Program, I set following options
 
 
MOVE  MSG-Q-GETID       TO  MQMD-MSGID.             
 
MOVE  MQCI-NONE         TO  MQMD-CORRELID           
 
COMPUTE  MQGMO-OPTIONS   =  MQGMO-WAIT +   
 
                                                 MQGMO-ACCEPT-TRUNCATED-MSG +  
 
                                                 MQGMO-SYNCPOINT +             
 
                                                 MQGMO-CONVERT      +          
 
                                                 MQGMO-FAIL-IF-QUIESCING.      
 
 
MOVE  90000             TO  MQGMO-WAITINTERVAL.           
 
MOVE  MQFMT-STRING      TO  MQMD-FORMAT                   
 
                                                          
 
CALL  'MQGET'  USING        QMGR-CON-HANDLE               
 
                                         RES-Q-HANDLE                  
 
                                         MQMD                          
 
                                         MQGMO                         
 
                                         INPUT-BUFFER-LENGTH           
 
                                         WS-OUTPUT-BUFFER              
 
                                         RETURNED-LENGTH               
 
                                         COMP-CODE                     
 
                                         REASON-CODE.                  
 
 
 
In PutQ Program, I set following options
 
 
 COMPUTE MQPMO-OPTIONS  =  MQPMO-SYNCPOINT +              
 
                           MQPMO-FAIL-IF-QUIESCING.       
 
 MOVE MQMI-NONE        TO MQMD-MSGID.                     
 
 MOVE MQCI-NONE        TO MQMD-CORRELID.                  
 
 MOVE MQMT-DATAGRAM    TO MQMD-MSGTYPE                    
 
 
CALL 'MQPUT' USING  QMGR-CON-HANDLE       
 
                    REQ-Q-HANDLE          
 
                    MQMD                  
 
                    MQPMO                 
 
                    MSG-LENGTH            
 
                    MSG-DATA              
 
                    COMP-CODE             
 
                    REASON-CODE. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Mr Butcher | 
		  
		    
			  
				 Posted: Mon Aug 04, 2008 9:07 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Padawan
 
 Joined: 23 May 2005 Posts: 1716
  
  | 
		  
		    
			  
				and what is your question? when you get with a specific msgid, and get a 2033 returned (no msg available) then this means, that there is no message with that specific msgid on the queue. _________________ Regards, Butcher | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Sabapathi | 
		  
		    
			  
				 Posted: Mon Aug 04, 2008 9:15 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 04 Aug 2008 Posts: 3
  
  | 
		  
		    
			  
				
   
	| Mr Butcher wrote: | 
   
  
	| and what is your question? when you get with a specific msgid, and get a 2033 returned (no msg available) then this means, that there is no message with that specific msgid on the queue. | 
   
 
 
 
 
after i put the message i will get the msgid from MQMD-MSGID and stored into one variable and use that variable when i do the MQget.
 
 
    CALL 'MQPUT' USING  QMGR-CON-HANDLE                          
 
                        REQ-Q-HANDLE                             
 
                        MQMD                                     
 
                        MQPMO                                    
 
                        MSG-LENGTH                               
 
                        MSG-DATA                                 
 
                        COMP-CODE                                
 
                        REASON-CODE.                             
 
    IF  COMP-CODE  EQUAL  MQCC-OK                                
 
        MOVE  MQMD-MSGID           TO   MQMD-CORRELID            
 
        MOVE  MQMD-MSGID           TO   MSG-PUT-MID              
 
        MOVE  MQMD-CORRELID        TO   MSG-PUT-CID              
 
        MOVE  COMP-CODE            TO   MSG-PUT-RSP              
 
        DISPLAY '    MQMD-MSGID          : ' MQMD-MSGID          
 
        DISPLAY '    MQMD-CORRELID       : ' MQMD-CORRELID | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | zpat | 
		  
		    
			  
				 Posted: Mon Aug 04, 2008 11:28 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 19 May 2001 Posts: 5867 Location: UK 
  | 
		  
		    
			  
				I assume this is meant to be a client end request-reply design and some other program is the server end?
 
 
The client end would normally get the response message by correlid, have saved the value from the put message msgid. 
 
 
The server end would normally copy the msg id of the request to the correlid of the reply message.
 
 
Incidentally set the MQMD.format before the put, not before the get.
 
 
Also you must COMMIT the put if you expect the message to be available for a get! | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Sabapathi | 
		  
		    
			  
				 Posted: Tue Aug 05, 2008 1:34 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 04 Aug 2008 Posts: 3
  
  | 
		  
		    
			  
				
   
	| zpat wrote: | 
   
  
	I assume this is meant to be a client end request-reply design and some other program is the server end?
 
 
The client end would normally get the response message by correlid, have saved the value from the put message msgid. 
 
 
The server end would normally copy the msg id of the request to the correlid of the reply message.
 
 
Incidentally set the MQMD.format before the put, not before the get.
 
 
Also you must COMMIT the put if you expect the message to be available for a get! | 
   
 
 
 
 
Dear Zpat,
 
 
Thanks for u r reply...
 
 
I have 2 cics region let say CICSUIBS AND CICSEAI
 
 
MQ Is in CICSEAI and my PutQ program and Getq program are in CICSEAI
 
 
I triger the transaction in CICSUIBS  then my PutQ progame put the message into the ReqQ from there broker get the message and send to other application. This one is always succesful....
 
 
then the responce message  also  come from that application and broker also put the response message in to the ResponseQ ,
 
 
But my get program not able to get that response message. In Response Queue message depth is there.
 
 
pls let me know where how to commit my put message. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | zpat | 
		  
		    
			  
				 Posted: Tue Aug 05, 2008 4:25 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 19 May 2001 Posts: 5867 Location: UK 
  | 
		  
		    
			  
				I really can't debug your code remotely.
 
 
The correct logic (basic MQI only shown) is like this
 
 
Client app:
 
 
Set format MQSTR etc
 
PUT request message (NO_SYNCPOINT) on REQUESTQ
 
save the msgid as correlid
 
GET reply message by CORRELID (NO_SYNCPOINT, CONVERT, WAIT) on REPLYQ
 
 
Server app:
 
 
GET request message (SYNCPOINT, CONVERT, WAIT) on REQUESTQ
 
Check MQMD.backout count and if > 3 COMMIT (discard request) and loop
 
set format MQSTR etc
 
set CORRELID from MSGID
 
PUT reply message (SYNCPOINT) on REPLYQ
 
COMMIT
 
loop | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kevinf2349 | 
		  
		    
			  
				 Posted: Tue Aug 12, 2008 7:03 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand Master
 
 Joined: 28 Feb 2003 Posts: 1311 Location: USA 
  | 
		  
		    
			  
				| Can we assume you have either a commit or a close after your MQPUT? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |