Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編)
目次 索引 前ページ次ページ

付録E サンプル(COBOL)

E.2 CORBAアプリケーション(Solarisの場合)

 COBOLを使用したサンプルプログラムの使用方法について説明します。サンプルプログラムはデータベース連携サービスのインストール先ディレクトリ配下の/src/samples/simple/cobolディレクトリに格納されているため、ユーザディレクトリに複写後、複写先の環境に合わせて修正して使用してください。なお、ここの例ではユーザディレクトリを/export/home/otsとします。

サンプルプログラムの概要

 本サンプルは、サーバアプリケーションからOracleにアクセスします。
 本サンプルのファイル構成を、以下に示します。

No

ファイルの概要

ファイル名

1

Makefile

Makefile

2

IDLファイル

bankA.idl

3

サーバアプリケーションソース

bankA_s.cbl

4

クライアントアプリケーションソース

bankA_c.cbl

5

プリコンパイラ用サーバアプリケーションソース

bankA_s_dep.pco

6

プリコンパイラ用サーバアプリケーションソース

bankA_s_wit.pco

作業手順

1) OD_HOMEを設定します。
 CORBAサービスのインストール先ディレクトリを設定します。以下の例のように設定します。

(設定例)

  # OD_HOME=/opt/FSUNod <RETURN>
  # export OD_HOME <RETURN>

2) OTS_HOMEを設定します。
 データベース連携サービスのインストール先ディレクトリを設定します。以下の例のように設定します。

(設定例)

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

3) COBOL登録集の格納場所を設定します。

(設定例)

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

4) アプリケーションを作成します。
 Makefileでサーバアプリケーションおよびクライアントアプリケーションをコンパイルします。

(実行例)

  # make <RETURN>

 なお、makeする場合にCORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
 makeすると、 bankA_s、bankA_c、libBANKA-ACCOUNTA.so、libbankA_bankA_accountA_skel.so、libbankA_cdr.soが作成されます。
 なお、当操作はデータベース管理者のユーザ権限で行う必要があります。

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

(定義ファイル設定例)

  rep_id                  = IDL:bankA/accountA:1.0
  type                    = persistent
  proc_conc_init          = 0
  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 -ax  deffile <RETURN>

 deffileには定義ファイル名を指定します。

6) サーバアプリケーション(bankA_s)をCORBAサービスのネーミングサービスに登録します。

(実行例)

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

7) リソース管理プログラムを作成します。
 otslinkrsc コマンドを使用し、リソース管理プログラムを作成します。
 Oracle10gを使用している場合は、そのリソース管理プログラムを、データベース連携サービスのインストールディレクトリ配下の/program/rsc/fjotsrsc_ora10gとして提供していますので、それを使用してください。それ以外の場合は、リソース管理プログラムを作成するためのシェルとして、データベース連携サービスのインストールディレクトリ配下の/src/samples/env/oralinkrsc.shを提供していますので、使用するリソースマネージャ用に修正後、oralinkrsc.shを実行してください。リソース管理プログラムの名前はシェル内の NANE="name" に設定してください。( 例. NAME="run_rsc" )
 なお、当操作はデータベース管理者のユーザ権限で行う必要があります。

(実行例)

  #  sh oralinkrsc.sh  <RETURN>

8) リソース定義ファイルを作成します。
 リソース定義ファイルはテキストエディタで作成します。
 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=

9) リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
 リソース管理プログラムの登録はotssetrscコマンドにより行います。

(実行例)

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

 -rfには、リソース定義ファイル名をフルパスで指定してください。
 -uにはデータベースを使用するユーザ名、-gにはデータベースを使用するグループ名を指定してください。

10) データベースにテーブルを作成します。
 sqlplusコマンドでテーブルを作成します。ここでは、テーブル作成のシェル(データベース連携サービスのインストール先ディレクトリ配下/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

11) OTSシステム、リソース管理プログラムおよびサーバアプリケーションを起動します。

(実行例)

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

 注意)
 サーバアプリケーションを起動する前には、CORBAサービスのインストールディレクトリ配下の/lib/ntを、CORBAサービスのインストールディレクトリ配下の/libより先に指定してください。

 ただし、OTSシステムやリソース管理プログラム起動時には、スレッド版のlibOM.soを使用してください。

12) クライアントアプリケーションを起動します。

(実行例)

  # bankA_c <RETURN>

13) クライアントアプリケーションから入力を促してくるので実行します。

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

目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED