MessageQueueDirector説明書
目次 索引 前ページ次ページ

第1部 基本機能編> 第6章 アプリケーションの作成> 6.6 メッセージ格納ファイルとしてデータベースを使用する場合のアプリケーションの作成

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