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

F.2.2 実行手順

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

  1. 環境変数OTS_HOMEに、データベース連携サービスのインストールディレクトリを設定します。
    [設定例]

    OTS_HOME=/opt/FSUNots <RETURN>
    export OTS_HOME <RETURN>

  2. COBOL登録集の格納場所を設定します。
    [設定例]

    CORBA=/opt/FSUNod/include/COBOL <RETURN>
    export CORBA <RETURN>
    COSTRANSACTIONS=/opt/FSUNots/include/COBOL <RETURN>
    export COSTRANSACTIONS <RETURN>

  3. アプリケーションを作成します。
    Makefileで、サーバアプリケーションおよびクライアントアプリケーションをコンパイルします。コンパイル時は、CORBAサービスおよびインタフェースリポジトリが起動されている必要があります。また、データベース管理者のユーザ権限で行う必要があります。
    [実行例]

    make <RETURN>

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

    • bankA_s

    • bankA_c

    • libBANKA-ACCOUNTA.so

    • libbankA_bankA_accountA_skel.so

    • libbankA_cdr.so


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

    rep_id                  = IDL:bankA/accountA:1.0
    type                    = persistent
    proc_conc_max           = 32
    thr_conc_init           = 0
    uid                     = 0
    gid                     = 3
    mode                    = SYNC_END
    env                     = LD_LIBRARY_PATH=/ora/ora815/cobol;$LD_LIBRARY_PATH
    IDL:bankA/accountA:1.0  = /export/home/ots/libBANKA-ACCOUNTA.so
    data                    = "RESOURCE:resource1"

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

    OD_impl_inst -ax deffile <RETURN>

    deffile:定義ファイル名


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

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

  6. otslinkrsc コマンドで、リソース管理プログラムを作成します。
    Oracle10g/Oracle11gを使用している場合は、標準的なリソース管理プログラムが以下に提供されています。必要に応じて使用してください。

    • Oracle10g用のリソース管理プログラム「/opt/FSUNots/program/rsc/fjotsrsc_ora10g」

    • Oracle11g用のリソース管理プログラム「/opt/FSUNots/program/rsc/fjotsrsc_ora11g」

    上記のファイルを使用しない場合は、リソース管理プログラムを作成するためのシェル「/opt/FSUNots/src/samples/env/oralinkrsc.sh」が提供されています。使用するリソースマネージャ用に修正後、データベース管理者のユーザ権限でoralinkrsc.shを実行してください。シェル内の NANE="name"に、リソース管理プログラムの名前を設定します(例:NAME="run_rsc")。
    [実行例]

    sh oralinkrsc.sh  <RETURN>

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

    ENVIRON ORACLE_SID=ORCL
    ENVIRON ORACLE_HOME=/oracle/product/10.2.0
    ENVIRON LD_LIBRARY_PATH=/oracle/product/10.2.0/lib
    NAME=resource1
    RMNAME=Oracle_XA
    OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0
    CLOSEINFO=

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

    otssetrsc -a -rf /export/home/ots/run_rscdef  -u ora803 -g dbuser <RETURN>

    -rfオプション:リソース定義ファイル名(フルパス)
    -uオプション:データベースを使用するユーザ名
    -gオプション:データベースを使用するグループ名


  9. sqlplusコマンドで、データベースにテーブルを作成します。
    テーブル作成のシェル「/opt/FSUNots/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

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

    otsstart   <RETURN>
    otsstartrsc -pg /export/home/ots/run_rsc -n resource1 <RETURN>
    bankA_s &  <RETURN>

    注意

    プロセスモードのサーバアプリケーション起動時は、「/opt/FSUNod/lib」より前に「/opt/FSUNod/lib/nt」を指定してください。
    ただし、OTSシステム起動時/リソース管理プログラム起動時は、スレッド版のlibOM.soを使用してください。


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

    bankA_c <RETURN>

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

    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>     [クライアントアプリケーションを終了します。]