| Author | Message | 
		
		  | syangloo | 
			  
				|  Posted: Thu Jul 10, 2003 11:13 pm    Post subject: Message expirytime and puttime? |   |  | 
		
		  | Centurion
 
 
 Joined: 01 Oct 2002Posts: 120
 Location: Kuala Lumpur
 
 | 
			  
				| Dear All, 
 I have some question on the message expiry time and the message put time.
 
 If we put the request message from local queue manager into one remote queue, the put time is from the remote queue manager or from local queue manager?
 
 If i set the expiry time in the request message, the expiry time in the message header is in GMT format. How is this count? It count at the remote queue manager?
 
 
 put time (GMT format in message header) + expiry time (500) = GMT time at the expirytime???? 
 Below is some example trace and ESQL in our broker.
 
 
   
	| Code: |  
	| [b]Request in the message flow[/b]
 CreationTime=> GMTTIMESTAMP '2003-07-11 06:42:28.320'
 ExpirationTime=> GMTTIMESTAMP '2003-07-11 06:47:00.906192'
 Expiry=> GMTTIMESTAMP '2003-07-11 06:47:00.906192'
 Msg ID=> X'414d5120514d2e43434d2e4b4c2e30303ec8bdb1001de012'
 Corr ID=> X'000000000000000000000000000000000000000000000000'
 Txn ID=> 'ACL-001'
 RQUID=> '049459708626611072003144226'
 PutTime=> GMTTIME '06:42:28.320'
 CurrentTime=> 2003-07-11 14:46:11.506624
 --------------------------------------------------------------------------------------
 
 [b]ESQL in one of the compute node[/b]DECLARE S INTERVAl;
 DECLARE J INTEGER;
 
 SET S = (CAST(InputRoot.MQMD.Expiry AS GMTTIME) - CAST(InputRoot.MQMD.PutTime AS GMTTIME)) SECOND;
 SET OutputRoot.MQMD.Report = 14680064;
 
 -- EXPIRY TIME IS TENTH OF A SECOND & S IS A VALUE IN SECONDS
 
 SET J = cast(S as INTEGER) * cast(InputLocalEnvironment.Variables.Expiry_Multiplier as Integer) * 10;
 
 SET OutputRoot.MQMD.Expiry = J;
 
 SET OutputRoot.MQMD.ReplyToQ = 'Q.REVERSAL.REQUESTS.BROKERED';
 SET OutputRoot.MQMD.ReplyToQMgr = 'QM.BK.KL.001';
 
 -------------------------------------------------------------------------------------
 
 [b]Message for the request message after the compute node[/b]
 Root:
 (
 (0x1000000)Properties = (
 (0x3000000)MessageSet      = ''
 (0x3000000)MessageType     = ''
 (0x3000000)MessageFormat   = 'XML'
 (0x3000000)Encoding        = 273
 (0x3000000)CodedCharSetId  = 819
 (0x3000000)Transactional   = TRUE
 (0x3000000)Persistence     = FALSE
 (0x3000000)CreationTime    = GMTTIMESTAMP '2003-07-11 06:42:28.320'
 (0x3000000)ExpirationTime  = 5440
 (0x3000000)Priority        = 0
 (0x3000000)ReplyIdentifier = X'414d5120514d2e43434d2e4b4c2e30303ec8bdb1001de012'
 (0x3000000)ReplyProtocol   = 'MQ'
 (0x3000000)Topic           = NULL
 )
 (0x1000000)MQMD       = (
 |  
 Why the expiry time is more then 3 minute? (get from the request message expirytime in GMT format)
 
 5440=?second
 
 If i set the expiry time to 500 with MQ Java program (hard code in the program)
 
 One more question, any different for the expiry time from AMI and MQ Java?
 
 Thanks in advance
 
 Regards
 syangloo
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | syangloo | 
			  
				|  Posted: Thu Jul 10, 2003 11:19 pm    Post subject: |   |  | 
		
		  | Centurion
 
 
 Joined: 01 Oct 2002Posts: 120
 Location: Kuala Lumpur
 
 | 
			  
				| Sorry... one more question. 
 If both server (the client and broker server) time is not sync, will it effect the expiry time?
 
 Regards
 Syangloo
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pgorak | 
			  
				|  Posted: Fri Jul 11, 2003 12:32 am    Post subject: |   |  | 
		
		  |  Disciple
 
 
 Joined: 15 Jul 2002Posts: 158
 Location: Cracow, Poland
 
 | 
			  
				| Expiry is expressed in tenths of a second and has nothing to do with time synchronization or GMT. It is only decremented to reflect the time a messages spends in a local queue, transmission queue, etc. Have a look at MQMD structure documentation. 
 PutTime is part of Origin Context of a message which means that it describes the application which put the message to a queue in which the message is currently stored. So, answering your question, if a message is put to a transmission queue on QM1 and arrives at a local queue on QM2, its PutTime and PutDate attributes reflect the time it was put on the local queue on QM2.
 
 Piotr
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | EddieA | 
			  
				|  Posted: Fri Jul 11, 2003 6:17 am    Post subject: |   |  | 
		
		  |  Jedi
 
 
 Joined: 28 Jun 2001Posts: 2453
 Location: Los Angeles
 
 | 
			  
				| A couple of additional points. 
 The PutTime is always converted to UTC when the messaeg is put.  So this assumes that your machine have the correct Time Zone settings.
 
 Next, even though the Expiry is a duration, WMQI (internally) converts this to a 'real' time, based on (I assume) the message PutTime.
 
 Cheers,
 _________________
 Eddie Atherton
 IBM Certified Solution Developer - WebSphere Message Broker V6.1
 IBM Certified Solution Developer - WebSphere Message Broker V7.0
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | syangloo | 
			  
				|  Posted: Mon Jul 14, 2003 5:33 pm    Post subject: |   |  | 
		
		  | Centurion
 
 
 Joined: 01 Oct 2002Posts: 120
 Location: Kuala Lumpur
 
 | 
			  
				| Thanks Q for you explaination. 
 Let me confirm, put time and expiry is count from the QM2.
 
 What is the actual value for 5440? 5440/60sec or 5440/10=XXX then XXX/60?
 
 One question, if the expiry time set to 500 at the client program (MQ Java). Any possibility the expiry time time out after 7 sec (base on my ESQL)?
 
 Regards
 Syangloo
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | EddieA | 
			  
				|  Posted: Tue Jul 15, 2003 7:38 am    Post subject: |   |  | 
		
		  |  Jedi
 
 
 Joined: 28 Jun 2001Posts: 2453
 Location: Los Angeles
 
 | 
			  
				| From the manual: 
 
 
   
	| Quote: |  
	| This is a period of time expressed in tenths of a second, set by the application that puts the message. |  
 Cheers,
 _________________
 Eddie Atherton
 IBM Certified Solution Developer - WebSphere Message Broker V6.1
 IBM Certified Solution Developer - WebSphere Message Broker V7.0
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jfluitsm | 
			  
				|  Posted: Thu Jul 17, 2003 10:03 pm    Post subject: |   |  | 
		
		  | Disciple
 
 
 Joined: 24 Feb 2002Posts: 160
 Location: The Netherlands
 
 | 
			  
				| Expiry time is decremented with the time a message stays in a queue-manager. As every queue-manager calculates this time for their own, there are no problems with out-of-sync clocks. _________________
 Jan Fluitsma
 
 IBM Certified Solution Designer WebSphere MQ V6
 IBM Certified Solution Developer WebSphere Message Broker V6
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | syangloo | 
			  
				|  Posted: Thu Jul 17, 2003 11:02 pm    Post subject: |   |  | 
		
		  | Centurion
 
 
 Joined: 01 Oct 2002Posts: 120
 Location: Kuala Lumpur
 
 | 
			  
				| Thanks for your explanation. I just query why our client application set it to 500 of expiry interval and it get expire after 7sec. 
 Any possibility of the expiry time start counted but not arrive the broker/message flow queue yet?
 
 Regards
 Syangloo
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  |  |