ページの先頭行へ戻る
Interstage Application Server MessageQueueDirector説明書

6.8 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの作成

  Symfoware/RDBトランザクション連携機能を利用した、データベースの更新とメッセージを送受信するアプリケーションは、まず、業務用データベースとMQDおよび目的のメッセージキューに接続します。その後、データベースの更新やメッセージの送受信を行い、トランザクションの終了を行うように作成します。

  MQDへの接続は、プログラムインタフェースの“MQDCONNECTRDB”または“mqd_connectrdb”を使用します。トランザクションの終了は、“SQL COMMIT文”を使用します。トランザクションの取消しは、“SQL ROLLBACK文”を使用します。

  Symfoware/RDBトランザクション連携機能を利用したアプリケーションの例を図6.12 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの例に示します。

  なお、データベース管理システムの詳細については、“Symfoware Server RDB管理者ガイド”、データベースを使用するアプリケーション開発については、“Symfoware Server RDBユーザーズガイド 応用プログラム開発編”、SQLの詳細については、“Symfoware Server SQLリファレンスガイド”を参照してください。

図6.12 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの例

[図の説明]
  1) アプリケーションを業務用データベースに接続します。
  2) “MQDCONNECTRDB”または“mqd_connectrdb”を使用してMQDに接続します。
  3) アプリケーションを目的(受信先と送信先)のメッセージキューに接続します。
  4) メッセージキュー1からメッセージを受信します。
  5) メッセージの内容を見て、データベースを更新します。
  6) 送信先メッセージキュー2にメッセージを送信します。
  7) “SQL COMMIT文”を使用してトランザクションを終了します。
  8) アプリケーションをメッセージキューから切断します。
  9) アプリケーションをMQDから切断します。
  10) アプリケーションを業務用データベースから切断します。

  以下に、Symfoware/RDBトランザクション連携機能を利用したCOBOLコーディング例を示します。

  EXEC SQL CONNECT TO 業務用データベース・・ END-EXEC. 
  MOVE "MQD001"      TO    MQD-SYSNAME.
  CALL "MQDCONNECTRDB"  USING MQD-SYSNAME MQD-ENVIRONMENT MQD-SYSADDR.
  MOVE "QUE001"      TO    MQD-QUENAME.
  CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-QUEADDR.
      ・
      ・
* トランザクションの開始(ここから)
  CALL "MQDGETMSG"  USING MQD-QUEADDR MQD-RCVMODE MQD-MESSAGEHEADER
                          MQD-MSGBODY MQD-BODYLEN MQD-ENVIRONMENT MQD-RESULT.
  EXEC SQL SELECT 在庫数量 ・・ END-EXEC.
      ・
      ・
  EXEC SQL UPDATE 在庫数量 ・・ END-EXEC.
  CALL "MQDPUTMSG"  USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER
                          MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.
      ・
      ・
  EXEC SQL COMMIT END-EXEC. 
* トランザクションの終了(ここまで)
      ・
      ・
  CALL "MQDDISCONNECT" USING MQD-SYSADDR MQD-ENVIRONMENT MQD-RESULT.
  EXEC SQL DISCONNECT CURRENT END-EXEC.