ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)
Interstage

I.7.2 複数のデータベースにアクセスするサーバアプリケーションの作成について

1つのサーバアプリケーションから複数のデータベースにアクセスする場合のサーバアプリケーションは、以下のような構成で作成します。



作成手順
  1. データベースに依存した処理は、main関数の処理とは別ファイルに作成します。
    上記例では、その処理を、それぞれ、symfunc1(),symfunc2()とします。

  2. main関数から呼ばれるサブ関数symfunc1()を、単独でDB1のプリコンパイラを通して必要な言語のソースファイルを生成し、そのソースファイルをコンパイルします。
    同様に、サブ関数symfunc2()も、単独でDB2のプリコンパイラを通して必要な言語のソースファイルを生成し、そのソースファイルをコンパイルします。
    名前が異なるデータベースに対してアクセスする場合、リソース種別によって、以下の処理が必要になります。

    • Symfoware/RDBの場合
      main関数は、それぞれのサブ関数symfunc1(),symfunc2()を呼び出す前に、「SET CONNECTION」文でアクセス対象のデータベースを切り替えてください。

    • Oracleの場合
      それぞれのサブ関数で、DECLARE文「EXEC SQL DECLARE xxxx DATABASE」(xxxx:データベース名)でアクセス対象のデータベース名を指定してください。

  3. それぞれのオブジェクトモジュールと、コンパイルしたmain関数のオブジェクトモジュールとをあわせてリンクし、サーバアプリケーションを作成します。


以下に、リソース種別がSymfoware/RDBの場合のリソース定義ファイルに設定するOPENINFOの例と「SET CONNECTION」文の例を示します。

次に、ユーザアプリケーションでも対応するコネクションを設定します。

注意

サーバアプリケーションからアクセスする複数のデータベースの種別が、Oracle, Symfoware/RDBのように異なる場合、サーバアプリケーション作成時にリンクするXA連携用プログラムは、otsmkxapgmコマンドで、複数リソースにアクセスする指定で作成する必要があります。