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

D.1.2 実行手順

サンプルプログラムの実行手順を以下に示します。

  1. XA連携用プログラムおよびリソース管理プログラムを作成します。
    otsmkxapgmコマンドで、XA連携用プログラムを作成します。また、otslinkrscコマンドで、リソース管理プログラムを作成します。
    標準的なOracle用のXA連携用プログラムおよびリソース管理プログラムが以下に提供されています。必要に応じて使用してください。

    • Oracle10g用XA連携用プログラム「C:\Interstage\ots\program\rsc\otsxaora10g.dll」、「C:\Interstage\ots\program\rsc\otsxaora10g.lib」

    • Oracle10g用のリソース管理プログラム「C:\Interstage\ots\program\rsc\fjotsrsc_ora10g.exe」

    • Oracle11g用XA連携用プログラム「C:\Interstage\ots\program\rsc\otsxaora11g.dll」、「C:\Interstage\ots\program\rsc\otsxaora11g.lib」

    • Oracle11g用のリソース管理プログラム「C:\Interstage\ots\program\rsc\fjotsrsc_ora11g.exe」

    上記のファイルを使用しない場合は、XA連携用プログラムとリソース管理プログラムを作成するためのバッチファイル「C:\Interstage\ots\src\samples\env\oralinkrsc.bat」が提供されています。使用するリソースマネージャ用に修正後、oralinkrsc.batを実行してください。バッチファイル内のNANE="name.exe"に、リソース管理プログラムの名前を設定します(例: NAME="run_rsc.exe")。
    [実行例]

    oralinkrsc  <RETURN>

  2. アプリケーションを作成します。
    Makefile用バッチファイルで、サーバアプリケーションおよびクライアントアプリケーションをコンパイルします。コンパイル時は、CORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
    [実行例]

    make <RETURN>

    makeを実行すると、以下が作成されます。

    • bankA_s

    • bankA_c


  3. CORBAサービスのインプリメンテーションリポジトリにサーバアプリケーション(bankA_s)を登録します。
    インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)として作成する必要があります。
    定義ファイルの設定例を以下に示します。rep_idには、サーバアプリケーションのインプリメンテーションリポジトリIDを指定します。dataには、「RESOURCE:」のあとにリソース定義名を指定します。
    OD_impl_instコマンドは、定義ファイル名を指定して実行します。
    [定義ファイルの設定例]

    rep_id             = IDL:bankA/accountA:1.0
    type               = persistent
    proc_conc_max      = 32
    thr_conc_init      = 1
    uid                = 0
    gid                = 3
    mode               = SYNC_END
    data               = "RESOURCE: resource1"

    上記の定義ファイル名を指定してOD_impl_instコマンドを実行します。
    [実行例]

    OD_impl_inst -ax  deffile <RETURN>

    deffile:定義ファイル名


  4. CORBAサービスのネーミングサービスにサーバアプリケーション(bankA_s)を登録します。
    [実行例]

    OD_or_adm -c  IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>

  5. テキストエディタで、リソース定義ファイルを作成します。
    OPENINFOには、データベースのユーザ名/パスワードを指定します(例:orauser/dbuser など)。NAMEには、インプリメンテーションリポジトリへの登録時、data行に指定した「RESOURCE:」のあとの名前を記述します。
    [設定例]

    ENVIRON ORACLE_SID=ORCL
    NAME=resource1
    RMNAME=Oracle_XA
    OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0
    CLOSEINFO=

  6. otssetrscコマンドで、CORBAサービスのインプリメンテーションリポジトリにリソース管理プログラムを登録します。
    [実行例]

    otssetrsc -a -rf c:\user\ots\rsc\run_rscdef  <RETURN>

    -rfオプション:リソース定義ファイル名(フルパス)


  7. sqlplusコマンドで、データベースにテーブルを作成します。
    テーブル作成のバッチファイル「C:\Interstage\ots\src\samples\simple\c\a_account.sql」を使用して作成する例を示します。本操作は、データベース管理者のユーザ権限で行う必要があります。
    [実行例]

    sqlplus orauser/dbuser @a_account.sql <RETURN>

    sqlplusコマンドで作成されたテーブルの内容を確認します。
    [実行例]

    sqlplus orauser/dbuser <RETURN>
    
    SQL> select * from a_account; <RETURN>
     ACCOUNTNO NAME          BALANCE
    ---------- ---------- ----------
             1 SEAN            11111
             2 LEHR            22222
             3 JUDITH          33333
             4 FRANCIS         44444
             5 ALASTAIR        55555
             6 AREX            66666
             7 MOIRA           77777

  8. OTSシステム、リソース管理プログラム、およびサーバアプリケーションを起動します。
    [実行例]

    otsstart  <RETURN>
    otsstartrsc -pg C:\user\ots\rsc\run_rsc.exe -n resource1 <RETURN>
    bankA_s  <RETURN>

  9. クライアントアプリケーションを起動します。
    [実行例]

    bankA_c <RETURN>

  10. クライアントアプリケーションから入力が促されるので、実行します。

    Start program ? Yes(y) No(n)
     y <RETURN>
                ----- What's request number -----
                1:begin      2:commit
                3:rollback   4:rollback_only
                5:get_status 6:get_transaction_name
                7:settimeout 8:Call ServerApplication
                0:exit
     1 <RETURN>      [1を入力すると、beginが実行されます。]
    
     8 <RETURN>      [8を入力すると、サーバのメソッドが実行されます。]
                ** ServerApplication **
                Please input account number
                 5 <RETURN>     [番号を入力します。]
                How much do you deposit ?
                 200000 <RETURN>[番号5の人に給与を入力します。]
                 2 <RETURN>     [2を入力すると、commitが実行されます。]
                 0 <RETURN>     [クライアントアプリケーションを終了します。]