COBOLを使用したOracle Tuxedoアプリケーションのプログラミング
プログラミング環境
ここでは、以下の内容について説明します。
UBBCONFIG構成ファイルの更新
アプリケーション管理者は、最初にUBBCONFIG
構成ファイルにアプリケーションの構成を定義します。プログラミング環境をカスタマイズするには、構成ファイルを作成するか更新します。
構成ファイルの作成または更新を行う場合は、次のガイドラインを参考にしてください。
- 既存のファイルをコピーして編集します。たとえば、サンプル・アプリケーション
bankapp
に付属するファイルubbshm
から作業を開始します。
- 複雑性を最小限にします。テストを行う場合は、共用メモリーを使用する単一プロセッサ・システムとしてアプリケーションを設定します。データとしては、通常のオペレーティング・システムのファイルを使用します。
- 構成ファイルの
IPCKEY
パラメータが、インストールされているシステムで使用されているほかのパラメータと競合しないようにします。詳細は、Oracle Tuxedoアプリケーション管理者に確認し、『Oracle Tuxedoアプリケーションの設定』を参照してください。
-
UID
およびGID
パラメータを設定し、定義した構成が自分自身のものであることを示します。
- ドキュメントを参照します。構成ファイルについては、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「UBBCONFIG(5)」で説明しています。
表2-1はプログラミング環境に影響する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は、よく使用される環境変数を示しています。変数は機能別に分類されています。
表2-2 プログラミング関連の環境変数
|
|
|
|
|
|
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アプリケーション・プログラム
|
|
|
FML および FML32 型付きレコードのフィールド表ファイル名のカンマ区切りのリスト。 FML VIEW 型のみで必要です。
|
FML 型付きレコード、 FML32 型付きレコード、および FML VIEW
|
|
FML および FML32 のフィールド表ファイルが検索されるディレクトリのコロン区切りのリスト。Windows 2003では、セミコロンで区切られます。
|
FML 型付きレコード、 FML32 型付きレコード、および FML VIEW
|
|
VIEW および VIEW32 型付きレコードで使用できるファイル名のカンマ区切りのリスト。
|
VIEW 型付きレコード、 VIEW32 型付きレコード
|
|
VIEW および VIEW32 ファイルが検索されるディレクトリのコロン区切りのリスト。Windows 2003では、セミコロンで区切られます。
|
VIEW 型付きレコード、 VIEW32 型付きレコード
|
UNIX環境では、環境変数PATH
に$TUXDIR/bin
を追加して、アプリケーションがOracle Tuxedoシステムのコマンドに対する実行可能ファイルを見つけられるようにします。環境設定の詳細は、『Oracle Tuxedoアプリケーションの設定』を参照してください。
関連項目
同等のデータ型の定義
表2-3は、C言語のデータ型に相当するCOBOL言語の各データ型を示しています。
表2-3 C言語のデータ型に相当するCOBOL言語のデータ型
|
|
|
|
|
|
|
|
|
|
|
|
ストレージを効率よく使用するために、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資源を解放します。ただし、データベースなどのリソース・マネージャで使用されていた資源は解放されません。
関連項目