ページの先頭行へ戻る
Interstage Service Integrator V9.5.0 解説書
FUJITSU Software

A.3.1 共通API

共通APIは、サービス利用側アプリケーションを開発する場合に使用します。
定義を書き換えるだけで、それぞれのプロトコルでメッセージを送受信できます。

メッセージ送受信API

メッセージ送受信APIには、以下の種類があります。

送信APIと受信APIは、以下のプロトコルでの送受信をサポートしています。

ローカルDBとのトランザクション用送信APIとローカルDBとのトランザクション用受信APIは、以下のプロトコルでの送受信をサポートしています。

以下のプロトコルでの受信において、キューにメッセージが存在しなかった場合、API発行からメッセージが格納されるまで、処理を一時停止できます。

送信APIと受信APIはプロトコルごとに区別されていません。定義に記述されている内容でプロトコルを判別します。

注意

SOAPのメッセージング機能を利用する場合は、ISIのメッセージ送受信APIを使用せずにSOAPメッセージを作成します。
またJAX-RPCで、スタブを使用する場合もメッセージ送受信APIを使用しません。

共通メッセージ操作API

共通メッセージ操作APIは、サービス利用側アプリケーションを開発する場合に使用します。
共通メッセージの生成、値の取得、値の設定を行います。
共通メッセージの詳細については、“2.5.3 クラスタリングへの対応”を参照してください。

ローカルDBとのトランザクション機能

JMS-R使用時に、APIと同じサーバ内の利用者の業務データベース(ローカルDB)と、キューを同時に更新します。

図A.1 ローカルDBとトランザクション

データベースとキューを同時に更新すると、別サーバの業務データベースと連携するケースなどで、信頼性を向上できます。
ローカルDBとのトランザクション機能を利用すると、以下の問題が解決できます。

業務データベースの更新に失敗した場合(他サーバへの送信)

問題

自サーバの業務データベースの更新が失敗していたが、相手サーバに更新情報を送信してしまった。

図A.2 更新失敗時の問題(他サーバへの送信)

解決

キューへの格納と同じタイミングで、業務データベースを更新(同時コミット)します。片方の処理に失敗した場合は、両方とも元に戻します(ロールバック)。

図A.3 更新失敗時の対応(他サーバへの送信)

業務データベースの更新に失敗した場合(他サーバからの送信)

問題

相手サーバからの更新情報を受信したが、更新情報を削除したあとに、自サーバの業務データベースの更新失敗が判明した。

図A.4 更新失敗時の問題(他サーバからの受信)

解決

キューからメッセージを取り出し、業務データベースの更新と同じタイミングでキューからメッセージを削除(同時コミット)します。片方の処理が失敗した場合は、両方とも元に戻します(ロールバック)。

図A.5 更新失敗時の対応(他サーバからの受信)

注意

  • キューがJMS-Rの場合だけ、この機能を利用できます。

  • 利用者の業務データベースがSymfoware Serverの場合だけ、この機能を利用できます。

  • 業務データベースとキューは、同一データベースにしてください。

メッセージ送信API実行時のメッセージ保証機能

JMS-R利用時に、通信やデータベースなどの問題でキューに書き込むことができなかった場合、送信メッセージを退避用JMSキューに退避できます。エラーを回避したあとに、リカバリコマンドを使って、退避したメッセージをJMS-Rのキューに戻すことができます。

図A.6 メッセージの退避

図A.7 メッセージのリカバリ

退避用JMSキューにメッセージを退避中は、エラーが回復しても、JMS-Rのキューに書き込まれることはありません。リカバリコマンドを実行し、退避用JMSキュー内のメッセージがなくなった時点で、JMS-Rのキューへ書込みを再開します。
また、退避したメッセージをバックアップするコマンドもあります。コマンドについては、“ISI 運用ガイド”を参照してください。