COBOL を使用した Oracle Tuxedo アプリケーションのプログラミング
プログラミング環境
ここでは、以下の内容について説明します。
UBBCONFIG コンフィグレーション ファイルの更新
アプリケーション管理者は、最初に UBBCONFIG
コンフィグレーション ファイルにアプリケーションのコンフィグレーションを定義します。プログラミング環境をカスタマイズするには、コンフィグレーション ファイルを作成するか更新します。
コンフィグレーション ファイルの作成または更新を行う場合は、次のガイドラインを参考にしてください。
既存のファイルをコピーして編集します。たとえば、サンプル アプリケーション bankapp
に付属するファイル ubbshm
から作業を開始します。
複雑性を最小限にします。テストを行う場合は、共用メモリを使用する単一プロセッサ システムとしてアプリケーションを設定します。データとしては、通常のオペレーティング システムのファイルを使用します。
コンフィグレーション ファイルの IPCKEY
パラメータが、インストールされているシステムで使用されているほかのパラメータと競合しないようにします。詳細については、Oracle Tuxedo アプリケーション管理者に確認し、『Oracle Tuxedo アプリケーションの設定』を参照してください。
UID
および GID
パラメータを設定し、定義したコンフィグレーションが自分自身のものであることを示します。
マニュアルを参照します。コンフィグレーション ファイルについては、『Oracle Tuxedo のファイル形式とデータ記述方法』の「UBBCONFIG(5)」で説明しています。
次の表は、プログラミング環境に影響する UBBCONFIG
コンフィグレーション ファイルのパラメータを示しています。パラメータは機能別に分類されています。
表 2-1 プログラミング関連の UBBCONFIG パラメータ (機能別)
|
|
|
|
|
|
|
コンフィグレーション内のサーバの最大数。この値を設定する場合は、すべてのサーバの MAX 値を考慮する必要があります。
|
|
|
|
|
|
|
このルーティング エントリが有効なデータ レコードのタイプとサブタイプのリスト。
|
|
|
|
|
|
|
|
|
|
|
ロード バランシングを有効にするかどうかを示すフラグ。ロード バランシングが有効になっている場合、Oracle Tuxedo システムは要求の負荷をネットワークで分散します。
|
|
|
呼び出し側クライアントからの要求をリモートに送る場合に、サービスのロード ファクタに追加される数値。リモート サーバ上でローカル サーバを選択する際の基準になります。ロード バランシングが有効になっていること ( LDBAL に Y が設定されていること) が必要です。
|
|
|
サービス インスタンスに対応付けられた相対的なロード ファクタ。デフォルト値は 50 です。
|
|
|
|
システムに参加している各クライアントに対して、システムによって呼び出されるアプリケーション認証サービスの名前。
|
|
|
|
|
|
|
特定のマシン上で同時に関与できる会話の最大数。0 ~ 32,767 の値を指定します。 SERVERS セクションに会話型サーバが定義されている場合、デフォルト値は 64 になります。それ以外の場合、デフォルト値は 1 になります。このパラメータに指定された値は、 MACHINES セクションのマシンごとにオーバーライドできます。
|
|
|
会話型通信がサポートされているかどうかを示す値。このパラメータが N に設定されているか、値が指定されてない場合、サービスに対する TPCONNECT の呼び出しは失敗します。
|
|
|
tmboot(1) によって起動するサーバのオカレンスの最小数と最大数。指定がない場合には、 MIN と MAX はそれぞれ、1 と MIN がデフォルト値となります。要求/応答型サーバでも同じパラメータを利用できます。ただし、会話型サーバは、必要に応じて自動的に追加されます。そのため、 MIN=1 、 MAX=10 と設定されている場合、 tmboot によって最初に 1 つのサーバが起動します。そのサーバが提供するサービスに対して TPCONNECT が呼び出されると、システムによって 2 番目のサーバが起動します。同じように、新しいサーバが上限の 10 まで起動します。
|
|
|
|
サービス ルーチンでトランザクション モードを開始するかどうかを示す値。このパラメータに Y が設定されている場合、別のプロセスから要求メッセージを受信すると、サービス サブルーチンでトランザクションが自動的に開始します。
|
|
|
|
各サーバ プロセスによってスレッドが追加された場合、同時にディスパッチされるスレッドの最大数。
|
|
|
最初のサーバの起動時に開始されるサーバ ディスパッチ スレッドの数。
|
コンフィグレーション ファイルは、オペレーティング システムのテキスト ファイルです。このファイルを実際にシステムで使用する場合は、tmloadcf(1) を実行して、バイナリ ファイルに変換する必要があります。
関連項目
環境変数の設定
アプリケーション管理者は、最初にアプリケーションの実行環境を定義する変数を設定します。これらの環境変数を設定するには、UBBCONFIG
ファイルの MACHINES
セクションで ENVFILE
パラメータに値を指定します。詳細については、『Oracle Tuxedo アプリケーションの設定』を参照してください。
アプリケーションのクライアント ルーチンとサーバ ルーチンに対して、既存の環境変数を更新したり、新しい変数を作成することができます。次の表は、よく使用される環境変数を示しています。変数は機能別に分類されています。
表 2-2 プログラミング関連の環境変数
|
|
|
|
|
|
Oracle Tuxedo システムのバイナリ ファイルの場所。
|
Oracle Tuxedo アプリケーション プログラム
|
|
|
Oracle Tuxedo コンフィグレーション ファイルの場所。
|
Oracle Tuxedo アプリケーション プログラム
|
|
|
COBOL コンパイラを呼び出すコマンド。デフォルト値は cobcc です。
Fujitsu NetCOBOL コンパイラを使用する場合は cobcc85 を指定します。
|
buildclient() -C および buildserver() -C コマンド
|
|
COBOL コンパイラに渡すリンクのフラグ。このフラグは必須ではありません。
|
buildclient() -C および buildserver() -C コマンド
|
|
Fujitsu NetCOBOL コンパイラでは COBOPT は使用できません。COBOL 環境変数用の Fujitsu NetCOBOL マニュアルを参照してください。
|
buildclient() -C および buildserver() -C コマンド
|
|
コンパイラで使用される COBOL COPY の各ファイルが置かれたディレクトリ。
Fujitsu NetCOBOL コンパイラでは COBCPY は使用できません。COBOL 環境変数用の Fujitsu NetCOBOL マニュアルを参照してください。
|
buildclient() -C および buildserver() -C コマンド
|
|
|
|
データ圧縮を行う Oracle Tuxedo アプリケーション プログラム
|
|
|
リモート キューの負荷値に加算される数値。この値を指定すると、リモート キューに実際より多くの作業負荷があるように設定できます。その結果、ロード バランシングが有効になっていても、ローカル要求がリモート キューよりローカル キューに送られるようになります。
|
ロード バランシングを実行する Oracle Tuxedo アプリケーション プログラム
|
|
FIELDTBLS または FIELDTBLS32
|
FML および FML32 型付きレコードのフィールド テーブル ファイル名のカンマ区切りのリスト。 FML VIEW 型のみで必要です。
|
FML 型付きレコード、 FML32 型付きレコード、および FML VIEW
|
FLDTBLDIR または FLDTBLDIR32
|
FML および FML32 のフィールド テーブル ファイルが検索されるディレクトリのコロン区切りのリスト。Windows 2003 では、セミコロンで区切られます。
|
FML 型付きレコード、 FML32 型付きレコード、および FML VIEW
|
VIEWFILES または VIEWFILES32
|
VIEW および VIEW32 型付きレコードで使用できるファイル名のカンマ区切りのリスト。
|
VIEW 型付きレコード、 VIEW32 型付きレコード
|
|
VIEW および VIEW32 ファイルが検索されるディレクトリのコロン区切りのリスト。Windows 2003 では、セミコロンで区切られます。
|
VIEW 型付きレコード、 VIEW32 型付きレコード
|
UNIX 環境では、環境変数 PATH
に $TUXDIR/bin
を追加して、アプリケーションが Oracle Tuxedo システムのコマンドに対する実行可能ファイルを見つけられるようにします。環境設定の詳細については、『Oracle Tuxedo アプリケーションの設定』を参照してください。
関連項目
C 言語のデータ型に相当する COBOL 言語のデータ型の定義
次の表は、C 言語のデータ型に相当する COBOL 言語の各データ型を示しています。
表 2-3 C 言語のデータ型に相当する COBOL 言語のデータ型
|
|
|
|
|
|
|
|
|
|
|
COBOL COMP-3 パック 10 進フィールド
|
ストレージを効率よく使用するために、COBOL ではパック 10 進数がサポートされています。パック 10 進数では、2 桁の 10 進数が 1 バイトにパックされ、下位バイトに符号が格納されます。パック 10 進数の長さは 1 ~ 9 バイトで、1 ~ 17 桁の数字と符号を格納できます。
dec_t
フィールドは VIEW
に定義されています。サイズは、カンマで区切った 2 つの値で指定されます。最初の値は、COBOL で 10 進数が占める総バイト数を示します。2 番目の値は、COBOL での小数点以下の桁数を示します。次の式を使用すると、dec_t
フィールドを COBOL 宣言に変換できます。
たとえば、VIEW
でサイズが 6,4 と指定されている場合、小数点以下の桁数は 4 桁、整数部分は 7 桁になり、最後のハーフ バイトに符号が格納されます。COBOL アプリケーションのプログラマは、これを 9(7)V9(4)
と定義します。V
は小数点を表します。FML
では dec_t
型はサポートされていません。FML
に依存した VIEW
を使用する場合は、VIEW
ファイルで各フィールドを C
言語の型にマップする必要があります。たとえば、パック 10 進数は FML
の文字列フィールドにマップでき、マッピング関数を使用して形式を変換できます。
アプリケーションの起動と停止
アプリケーションを起動するには、tmboot(1) コマンドを実行します。このコマンドは、アプリケーションに必要な IPC 資源を確保し、管理プロセスとアプリケーション サーバを起動します。
アプリケーションを停止するには、tmshutdown(1) コマンドを実行します。このコマンドは、サーバを停止させ、アプリケーションで使用されていた IPC 資源を解放します。ただし、データベースなどのリソース マネージャで使用されていた資源は解放されません。
関連項目