WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

時間間隔の計算

ESQL を使用して 2 つのイベント間の時間間隔を計算し、指定された間隔後にタイマーがトリガーされるように設定することができます。

この ESQL の例は、入力 WebSphere® MQ メッセージが入力キューに書き込まれてから、現在の Compute ノードで処理されるまでの時間間隔を計算します。

(CURRENT_ datetime 関数を呼び出すと、戻される値は同じノードの別の呼び出しに戻される値と同じです。 このため、単一ノード内では関数を一貫して使用できます。)

 CALL CopyMessageHeaders();
 Declare PutTime INTERVAL;

 SET PutTime = (CURRENT_GMTTIME - InputRoot.MQMD.PutTime) MINUTE TO SECOND;
 
 SET OutputRoot.XMLNS.Test.PutTime = PutTime;

出力メッセージの形式は、次のとおりです (実際の値は異なります)。

<Test>
 <PutTime>INTERVAL &apos;1:21.862&apos; MINUTE TO SECOND</PutTime>
</Test>

以下のコード断片は、処理が完了したことを確認するために、処理の開始から指定インターバル後にトリガーされるようにタイマーを設定します。 例えば、経過時間内に処理が完了しなかった場合に、タイマーの起動によっていくつかのリカバリー処理をトリガーすることもできるかもしれません。

タイムアウト要求メッセージの StartTime フィールドは、現行時刻に許容遅延期間 (フローのユーザー定義プロパティーによって定義される) を加えたものに設定されます (ユーザー定義プロパティーは管理者によって、"HH:MM:SS" 形式のストリングに設定されます)。

DECLARE StartDelyIntervalStr EXTERNAL CHARACTER '01:15:05';

	CREATE PROCEDURE ValidateTimeoutRequest() BEGIN

		-- Set the timeout period
		DECLARE timeoutStartTimeRef REFERENCE TO 
          OutputRoot.XMLNSC.Envelope.Header.TimeoutRequest.StartTime;
		IF LASTMOVE(timeoutStartTimeRef)
			THEN
			-- Already set
		ELSE
			-- Set it from the UDP StartDelyIntervalStr 
			DECLARE startAtTime TIME CURRENT_TIME 
          + CAST(StartDelyIntervalStr AS INTERVAL HOUR TO SECOND);
						
			-- Convert "TIME 'hh.mm.ss.fff'" to hh.mm.ss format 
       -- needed in StartTime field
			DECLARE startAtTimeStr CHAR;
			SET startAtTimeStr = startAtTime;
			SET startAtTimeStr = SUBSTRING(startAtTimeStr FROM 7 FOR  8);
			SET OutputRoot.XMLNSC.Envelope.Header.TimeoutRequest.StartTime 
                            = startAtTimeStr;
		END IF;
	END;
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:33


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ac16755_