![]()
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トランザクション連携機能を利用したアプリケーションの例

ポイント
図の説明
アプリケーションを業務用データベースに接続します。
“MQDCONNECTRDB”または“mqd_connectrdb”を使用してMQDに接続します。
アプリケーションを目的(受信先と送信先)のメッセージキューに接続します。
メッセージキュー1からメッセージを受信します。
メッセージの内容を見て、データベースを更新します。
送信先メッセージキュー2にメッセージを送信します。
“SQL COMMIT文”を使用してトランザクションを終了します。
アプリケーションをメッセージキューから切断します。
アプリケーションをMQDから切断します。
アプリケーションを業務用データベースから切断します。
以下に、Symfoware/RDBトランザクション連携機能を利用したCOBOLコーディング例を示します。
例
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.