MessageQueueDirector説明書
|
目次
索引

|
6.6.3 業務用データベースのトランザクション
メッセージ格納ファイルとしてデータベースを使用する場合、一つのアプリケーションで業務用データベースとMQDを使用する場合には、MQDプログラムインタフェースを呼ぶ前に、業務用データベースに対してCOMMIT文を発行して、トランザクションを完結させておく必要があります。ただし、Interstageのトランザクション連携機能を使用している場合は、トランザクションを完結する必要はありません。
以下に、誤ったCOBOLコーディング例を示します。
EXEC SQL CONNECT TO 'DB01' AS 'C1' END-EXEC.
MOVE "MQD001" TO MQD-SYSNAME.
CALL "MQDCONNECT" USING MQD-SYSNAME MQD-ENVIRONMENT MQD-RESULT.
MOVE "QUE001" TO MQD-QUENAME.
CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-RESULT.
・
・
EXEC SQL SET CONNECTION 'C1' END-EXEC.
EXEC SQL SELECT 在庫数量 ・・ END-EXEC.
CALL "MQDPUTMSG" USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER
MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.
※ 誤り
業務用データベース'DB01'に対するトランザクションが完結してない状態で
MQDPUTMSGを呼び出している。
EXEC SQL COMMIT END-EXEC.
|
以下に、Interstageのトランザクション連携機能を使用した場合のCOBOLコーディング例を示します。
MOVE "MQD001" TO MQD-SYSNAME.
CALL "MQDCONNECT" USING MQD-SYSNAME MQD-ENVIRONMENT MQD-RESULT.
MOVE "QUE001" TO MQD-QUENAME.
CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-RESULT.
・
・
EXEC SQL SET CONNECTION 'C1' END-EXEC.
EXEC SQL SELECT 在庫数量 ・・ END-EXEC.
・
・
CALL "MQDPUTMSG" USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER
MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.
・
・
EXEC SQL SET CONNECTION 'C1' END-EXEC.
EXEC SQL SELECT 在庫数量 ・・ END-EXEC.
|
All Rights Reserved, Copyright(C) 富士通株式会社 2006