Oracle Tuxedo Workstation コンポーネント

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Workstation コンポーネントの使用

以下の節では、Windows および UNIX システムにおける Oracle Tuxedo ATMI Workstation コンポーネントの使用について説明します。

 


クライアント プログラムを作成する

ワークステーション用のクライアント プログラムは、Oracle Tuxedo システムの管理ドメイン内のクライアント プログラム (ネイティブ クライアント) と同じ方法で開発できます。若干の例外を除いて、すべての ATMI および FML 関数をネイティブ クライアントおよびワークステーション クライアントで利用できます。

注意 : ネイティブ クライアントでは利用できるもののワークステーション クライアントでは利用できない ATMI 関数の例として tpadmcall() があります。

ワークステーション クライアントの相互運用性に関する制約

Oracle Tuxedo リリース 7.1 のワークステーション クライアントは、次のいずれかの場合に、リリース 7.1 より前の Oracle Tuxedo システム アプリケーションと相互運用します。

Oracle Tuxedo リリース 7.1 以降のワークステーション クライアントで、1 つのコンテキストに複数のスレッドがある場合は、リリース 7.1 より前の Oracle Tuxedo システムとは相互運用しません。

クライアント プログラムを作成する

ワークステーション クライアントのプログラムをコンパイルし、リンクするには、buildclient(1) コマンドを使用します。ネイティブ ノード (Oracle Tuxedo システムがフル インストールされているノード) でワークステーション クライアントを作成する場合は、-w オプションを指定し、クライアントの作成にはワークステーション ライブラリが必要であることを示します。指定しない場合、デフォルトでは、ネイティブ ノードにあるネイティブ ライブラリとワークステーション ライブラリのうち、ネイティブ ライブラリが使用されます。つまり、-w オプションを指定すると、ワークステーション クライアントでは正しいライブラリが使用されることが保証されます。ワークステーションには、ワークステーション ライブラリしかないため、-w オプションを指定する必要はありません。

以下のコード リストは、ネイティブ ノードでの buildclient(1) コマンドラインの例です。

コード リスト 2-1 buildclient コマンドライン
TUXDIR=/var/opt/tuxedo CC=ncc; export TUXDIR CC
buildclient -w -o wsclt -f wsclt.c -f “userlib1.a userlib2.a”

-o オプションには、出力ファイルの名前を指定します。入力ファイルを指定するには、-f firstfiles オプションを使用し、システム ライブラリより先にリンクされることを示します。上の例に示すように、TUXDIR 環境変数を定義し、buildclient コマンドの実行時にシステム ライブラリが検索されるようにしなければなりません。CC は、デフォルトで cc になりますが、上の例のように、別のコンパイラを設定することもできます。

関連項目

 


Oracle Tuxedo システムに組み込まれているクライアントを使用する

wud および wud32 は、Oracle Tuxedo システムに組み込まれているワークステーション用のドライバ プログラムです。これらのドライバ プログラムは、ワークステーション ライブラリを使用して作成する、標準的な Oracle Tuxedo のクライアント プログラムである ud および ud32 に基づいています。

Oracle Tuxedo システム サーバに FML バッファを送信するには、wud(1) を使用します。FBFR32 型の FML32 フィールド化バッファの場合は、wud32 を使用します。

セキュリティ付きアプリケーションで wud を使用する

wud をセキュリティ付きアプリケーションで実行する場合は、アプリケーション パスワードを指定しないとアプリケーションにアクセスできません。端末から標準入力を行う場合に wud を実行すると、アプリケーション パスワードの入力を求められます。wud では通常、スクリプトからクライアント プログラムを実行しますが、この場合、パスワードは APP_PW 環境変数から取得されます。アプリケーション パスワードが必要な場合に、この環境変数が指定されていないと、wud は異常終了します。

APP_PW 環境変数と、コンフィグレーション ファイルの SECURITY パラメータ (APP_PW を指定するとセキュリティ機能が有効になる) を混同しないでください。

関連項目

 


ワークステーションで Oracle Tuxedo システムのクライアントを実行する

開発およびテストが終了したクライアント プログラムは、ワークステーションに移動でき、ユーザ側で利用可能になります。

ワークステーション クライアントのディレクトリ構造

次の表は、Oracle Tuxedo システムの Workstation コンポーネントをインストールした場合のワークステーション クライアントのディレクトリ構造を示しています。

Windows ディレクトリ
UNIX ディレクトリ
説明
%APPDIR%
$APPDIR
クライアントの実行可能ファイルが格納されている。これらの実行可能ファイルは通常、アプリケーション ディレクトリに格納される。
%TUXDIR%\bin
$TUXDIR/bin
Oracle Tuxedo システムのコマンド群およびシステム クライアント (wud など) が格納されている。
%TUXDIR%¥cobinclude
$TUXDIR/cobinclude
COBOL プログラムで使用する copylib エントリが格納されている。
%TUXDIR%\include
$TUXDIR/include
Oracle Tuxedo システムのヘッダ ファイル (atmi.h など) が格納されている。
%TUXDIR%\lib
$TUXDIR/lib
ランタイム ライブラリが格納されている。
%TUXDIR%\locale\C
$TUXDIR/locale/C
デフォルト ロケールのメッセージ カタログ (米国の英語) が格納されている。
%TUXDIR%\samples
$TUXDIR/samples
サンプル アプリケーションのサブディレクトリがいくつか格納されている。

環境変数を設定する

ワークステーション クライアントでは、いくつかの環境変数を使用します。次の表は、ワークステーション クライアントがアプリケーションに参加しようとするときに、tpinit(3c) または TPINITIALIZE(3cbl) によってチェックされる環境変数を示しています。これらの環境変数の設定方法については、『Oracle Tuxedo アプリケーションの設定』の「ワークステーション クライアントの定義」を参照してください。

環境変数
説明
TPMBENC
Oracle Tuxedo 8.1 以降を実行するワークステーション マシンが、割り当てられた MBSTRING 型付きバッファに格納するコードセットのエンコーディング名を指定する。ワークステーション クライアントが MBSTRING バッファを割り当てて送信すると、TPMBENC で定義されたコードセットのエンコーディング名は属性として自動的にバッファに追加され、バッファ データと共に送信先のサーバ プロセスに送信される。
ワークステーション マシンが MBSTRING バッファを受信して、別の環境変数 TPMBACONV が設定されていると見なすと、TPMBENC で定義されたコードセットのエンコーディング名は、受信されたバッファ内のコードセット エンコーディング名と自動的に比較される。名前が同じではない場合、MBSTRING バッファのデータは、ワークステーション クライアントに配信される前に、TPMBENC で定義されたエンコーディングに自動的に変換される。
TPMBENC のデフォルト値はない。MBSTRING 型付きバッファを使用するワークステーション クライアントの場合、ワークステーション マシン上で TPMBENC を定義する必要がある。

注意 : TPMBENC は FML32 型付きバッファの FLD_MBSTRING フィールドと同じように使用される。

TPMBACONV
Oracle Tuxedo 8.1 以降を実行するワークステーション マシンが、受信した MBSTRING バッファのデータを、TPMBENC で定義されたエンコーディングに自動的に変換するかどうかを指定する。デフォルトでは自動変換は無効になっている。受信した MBSTRING バッファのデータは、エンコーディングの変換はされないままでワークステーション クライアントに配信される。TPMBACONVY (yes) などの NULL 以外の値に設定すると、自動変換が有効になる。

注意 : TPMBACONV は FML32 型付きバッファの FLD_MBSTRING フィールドと同じように使用される。

URLENTITYCACHING
Oracle Tuxedo 8.1 以降を実行するワークステーション マシンが文書型定義 (DTD)、XML スキーマ、およびエンティティ ファイルをキャッシュするかどうかを指定する。特に、ワークステーション クライアント上で動作する Apache Xerces-C++ パーサが、検証が必要な場合に DTD と XML スキーマをキャッシュするのか、または DTD で指定された外部エンティティ ファイルをキャッシュするのかを指定する。デフォルトでは、キャッシングは有効になっている (Y)。URLENTITYCACHINGN (no) に設定すると、キャッシングは無効になる。
URLENTITYCACHEDIR
URLENTITYCACHING=Y (yes) の場合、または設定されていない場合にのみ適用される。詳細については、この表の URLENTITYCACHING の説明を参照。
Oracle Tuxedo 8.1 以降を実行するワークステーション マシンが DTD、スキーマ、およびエンティティ ファイルをキャッシュするディレクトリを指定する。特に、ワークステーション クライアント上で動作する Apache Xerces-C++ パーサが、DTD、XML スキーマ、およびエンティティ ファイルをキャッシュする場所を指定する。URLENTITYCACHEDIR 変数には、キャッシュするファイルの絶対パス名を指定する。URLENTITYCACHEDIR を指定しない場合、デフォルトのディレクトリは URLEntityCachedir になる。このディレクトリはワークステーション クライアント プロセスの現在の作業ディレクトリ内に作成され、適切な書き込み権が設定されている。
WSINTOPPRE71
Oracle Tuxedo リリース 7.1 以降を実行しているワークステーション マシンと、リリース 7.1 より前の Oracle Tuxedo アプリケーションを相互運用できるかどうかを指定する。変数を Y に設定すると (WSINTOPPRE71=Y)、相互運用が可能になる。
WSBUFFERS
アプリケーションごとのパケット数。
WSDEVICE
ネットワークのアクセス時に使用するデバイス。この変数は、Oracle Tuxedo システムが TLI ネットワーク インタフェースを使用している場合のみ必要。
WSENVFILE
クライアントの環境で使用される環境変数が定義されたファイルの名前。
WSFADDR
ワークステーション クライアントがワークステーション リスナまたはワークステーション ハンドラに接続するのに使用するネットワーク アドレス。この変数は、WSFRANGE 変数とともに、ワークステーション クライアントがアウトバウンド接続を行う前にバインドしようとする TCP/IP ポートの範囲を決定する。このアドレスには、TCP/IP アドレスを指定する必要がある。
WSFRANGE
ワークステーション クライアントのプロセスが、アウトバウンド接続を確立する前にバインドする TCP/IP ポートの範囲。WSFADDR パラメータは、範囲のベース アドレスを指定する。デフォルト値は 1。
WSNADDR
ワークステーション リスナ (WSL) プロセスのネットワーク アドレス。クライアントは、これを使用してアプリケーションにアクセスする。ワークステーション リスナを呼び出すには、アプリケーションのコンフィグレーション ファイルの値を使用する。「0x」で始まる値は 16 進値を表す文字列と見なされ、それ以外の値は、ASCII 文字列と見なされる。
WSRPLYMAX
ATMI 関数が、アプリケーションからの応答をディスクにダンプする前にバッファに格納するため使用するコア メモリの最大容量。tpinit(3c) および TPINITIALIZE(3cbl) で使用される。tpgetrply(3c) および TPGETRPLY(3cbl) で取得した応答および非請求メッセージは、この領域に格納される。この領域がメッセージでいっぱいの場合、オーバーフローしたメッセージはディスク ファイルに書き込まれる。システムで指定されているデフォルトの最大値は、256,000 バイト。WSRPLYMAX を使用して低い制限値を設定するかどうかは、マシンの空きメモリに応じて異なる。応答をディスクに書き込むと、パフォーマンスが大幅に低下する。
WSTYPE
ワークステーションの種類。ワークステーション クライアントによって tpinit(3c) および TPINITIALIZE(3cbl) が呼び出され、ネイティブ サイトとの間でエンコードまたはデコードを行うかどうかを判断するときに使用される。WSTYPE を指定しない場合は、ネイティブ サイトで指定していなくてもエンコードが行われる。ワークステーションのサイトとネイティブ サイトには、明示的に同じ WSTYPE を指定し、エンコードまたはデコードの処理が実行されないようにする。

UNIX ワークステーション上のワークステーション クライアントでは、使用する Oracle Tuxedo システムの機能に応じて、上記以外の環境変数が必要になる場合があります。状況に応じて必要となる変数については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「compilation(5)」リファレンス ページを参照してください。

環境ファイルを作成する

作成した環境ファイルは、tpinit(3c) または TPINITIALIZE(3cbl) の呼び出し時に読み込まれます。次のコード リストは、2 つの異なるアプリケーションで使用されるサンプル ファイルです。

コード リスト 2-2 環境ファイル
TUXDIR=/opt/tuxedo
[application1]
;これはコメントです
/* これはコメントです */
# これはコメントです
// これはコメントです
set FIELDTBLS=app1_flds
set FLDTBLDIR=/opt/app1/udataobj
[application2]
FIELDTBLS=app2_flds
FLDTBLDIR=/opt/app2/udataobj

このファイルの形式は次のとおりです。

tuxreadenv を使用する

tuxreadenv(3c) 関数を呼び出すと、環境ファイルが読み込まれ、プラットフォームに関係なく、プロセス全体の環境に環境変数が追加されます。変数を利用するには tuxgetenv(3c) を使用し、変数をリセットするには、tuxputenv(3c) を使用します。

void tuxreadenv(char *file, char *label)

file が NULL の場合、デフォルトのファイル名が使用されます。各プラットフォームのデフォルトのファイル名は次のとおりです。

label の値が NULL の場合は、グローバル セクションの変数だけが環境に組み込まれます。label が他の値の場合、グローバル セクションの変数と、label に一致するセクション内の変数が環境に入れられます。

次の場合は、userlog にエラー メッセージが記録されます。

tpinit(3c) を明示的に呼び出すか、または別の ATMI 関数を呼び出して暗黙的に呼び出すたびに、ワークステーション クライアントには tuxreadenv(3c) が自動的に呼び出されます。環境に設定されている WSENVFILE は、環境ファイルを示します。設定されていない場合は、tuxreadenv() にファイル名として NULL が渡され、デフォルトのファイルが使用されます。環境に設定されている WSAPP は、環境ファイルのセクションのラベルとして使用されます。設定されていない場合は、tuxreadenv() にラベル名として NULL が渡されます。アプリケーション クライアントは、tuxreadenv() を明示的に呼び出すこともできます。

実装された環境は、プラットフォームごとに異なる方法で使用できます。環境に対する共通のインタフェースは、既存の tuxgetenv(3c) 関数および tuxputenv(3c) 関数により提供されます。これらの関数により、次の変数にアクセスできます。

関連項目

 


マルチスレッド化またはマルチコンテキスト化されたワークステーション クライアントをアプリケーションに参加させる

Oracle Tuxedo アプリケーションに参加するには、マルチスレッドのワークステーション クライアントは、たとえシングルコンテキスト モードで動作している場合でも、必ず TPMULTICONTEXTS フラグを設定して tpinit() 関数を呼び出さなければなりません。

関連項目


  ページの先頭       前  次