次の項では、WindowsおよびUNIXシステムにおけるOracle Tuxedo ATMIワークステーション・コンポーネントの使用について説明します。
ワークステーション用のクライアント・プログラムは、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オプションを指定する必要はありません。
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 C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』および 『Oracle Tuxedo COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』の クライアントのコーディングに関する項
|
•
|
『Oracle Tuxedo COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』の ワークステーション・コンポーネントに対するCOBOL言語のバインドに関する項
|
•
|
『CORBAアプリケーションにおけるセキュリティの使用』の ATMIアプリケーションにクライアント・プログラムを参加させるためのセキュリティ・コードの記述方法に関する項
|
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システムのワークステーション・コンポーネントをインストールした場合のワークステーション・クライアントのディレクトリ構造を示しています。
|
|
|
|
|
クライアントの実行可能ファイルが格納されています。これらの実行可能ファイルは通常、アプリケーション・ディレクトリに格納されます。
|
|
|
Oracle Tuxedoシステムのコマンド群およびシステム・クライアント( wudなど)が格納されています。
|
|
|
COBOLプログラムで使用する copylibエントリが格納されています。
|
|
|
Oracle Tuxedoシステムのヘッダー・ファイル( atmi.hなど)が格納されています。
|
|
|
|
|
|
デフォルト・ロケールのメッセージ・カタログ(米国の英語)が格納されています。
|
|
|
サンプル・アプリケーションのサブディレクトリがいくつか格納されています。
|
ワークステーション・クライアントでは、いくつかの環境変数を使用します。次の表は、ワークステーション・クライアントがアプリケーションに参加しようとするときに、
tpinit(3c)または
TPINITIALIZE(3cbl)によってチェックされる環境変数を示しています。これらの環境変数の設定方法については、
『Oracle Tuxedoアプリケーションの設定』の
ワークステーション・クライアントの定義に関する項を参照してください。
|
|
|
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンが、割り当てられたMBSTRING型付きバッファに格納するコードセットのエンコーディング名を指定します。ワークステーション・クライアントがMBSTRINGバッファを割り当てて送信すると、 TPMBENCで定義されたコードセットのエンコーディング名は属性として自動的にバッファに追加され、バッファ・データとともに送信先のサーバー・プロセスに送信されます。
ワークステーション・マシンがMBSTRINGバッファを受信して、別の環境変数 TPMBACONVが設定されているとみなすと、 TPMBENCで定義されたコードセットのエンコーディング名は、受信されたバッファ内のコードセット・エンコーディング名と自動的に比較されます。名前が同じではない場合、MBSTRINGバッファのデータは、ワークステーション・クライアントに配信される前に、 TPMBENCで定義されたエンコーディングに自動的に変換されます。
TPMBENCのデフォルト値はありません。MBSTRING型付きバッファを使用するワークステーション・クライアントの場合、ワークステーション・マシン上で TPMBENCを定義する必要があります。
注意:
|
TPMBENCはFML32型付きバッファの FLD_MBSTRINGフィールドと同じように使用されます。
|
|
|
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンが、受信したMBSTRINGバッファのデータを、 TPMBENCで定義されたエンコーディングに自動的に変換するかどうかを指定する。デフォルトでは自動変換は無効になっている。受信したMBSTRINGバッファのデータは、エンコーディングの変換はされないままでワークステーション・クライアントに配信される。 TPMBACONVを Y (yes)などのNULL以外の値に設定すると、自動変換が有効になる。
注意:
|
TPMBACONVはFML32型付きバッファの FLD_MBSTRINGフィールドと同じように使用されます。
|
|
|
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンが文書型定義(DTD)、XMLスキーマ、およびエンティティ・ファイルをキャッシュするかどうかを指定する。特に、ワークステーション・クライアント上で動作するApache Xerces-C++パーサーが、検証が必要な場合にDTDとXMLスキーマをキャッシュするのか、またはDTDで指定された外部エンティティ・ファイルをキャッシュするのかを指定する。デフォルトでは、キャッシングは有効になっています( Y)。 URLENTITYCACHINGを N (no)に設定すると、キャッシングは無効になる。
|
|
URLENTITYCACHING=Y (yes)の場合、または設定されていない場合にのみ適用されます。詳細は、この表の URLENTITYCACHINGの説明を参照してください。
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンがDTD、スキーマ、およびエンティティ・ファイルをキャッシュするディレクトリを指定する。特に、ワークステーション・クライアント上で動作するApache Xerces-C++パーサーが、DTD、XMLスキーマ、およびエンティティ・ファイルをキャッシュする場所を指定する。 URLENTITYCACHEDIR変数には、キャッシュするファイルの絶対パス名を指定します。 URLENTITYCACHEDIRを指定しない場合、デフォルトのディレクトリは URLEntityCachedirになります。このディレクトリはワークステーション・クライアント・プロセスの現在の作業ディレクトリ内に作成され、適切な書込み権が設定されています。
|
|
Oracle Tuxedoリリース7.1以降を実行しているワークステーション・マシンと、リリース7.1より前のOracle Tuxedoアプリケーションを相互運用できるかどうかを指定します。変数を Yに設定すると( WSINTOPPRE71=Y)、相互運用が可能になります。
|
|
|
|
ネットワークのアクセス時に使用するデバイス。この変数は、Oracle TuxedoシステムがTLIネットワーク・インタフェースを使用している場合のみ必要です。
|
|
クライアントの環境で設定される環境変数設定が定義されたファイルの名前。
|
|
ワークステーション・クライアントがワークステーション・リスナーまたはワークステーション・ハンドラに接続するのに使用するネットワーク・アドレス。この変数は、 WSFRANGE変数とともに、ワークステーション・クライアントがアウトバウンド接続を行う前にバインドしようとするTCP/IPポートの範囲を決定します。このアドレスには、TCP/IPアドレスを指定する必要があります。
|
|
ワークステーション・クライアントのプロセスが、アウトバウンド接続を確立する前にバインドするTCP/IPポートの範囲。 WSFADDRパラメータは、範囲のベース・アドレスを指定します。デフォルトは1です。
|
|
ワークステーション・リスナー(WSL)・プロセスのネットワーク・アドレスで、クライアントは、これを使用してアプリケーションにアクセスします。ワークステーション・リスナーを呼び出すには、アプリケーションの構成ファイルで指定された値を使用します。 0xで始まる値は16進値を表す文字列とみなされ、それ以外の値は、ASCII文字列とみなされます。
|
|
ATMI関数が、アプリケーションからの応答をディスクにダンプする前にバッファに格納するために使用するコア・メモリーの最大容量。 tpinit(3c)および TPINITIALIZE(3cbl)で使用されます。 tpgetrply(3c)、 TPGETRPLY(3cbl)で取得した応答および非請求メッセージは、この領域に格納されます。この領域がメッセージでいっぱいの場合、オーバーフローしたメッセージはディスク・ファイルに書き込まれます。システムで指定されているデフォルトの最大値は、256,000バイト。 WSRPLYMAXを使用して低い制限値を設定するかどうかは、マシンの空きメモリーに応じて異なります。応答をディスクに書き込むと、パフォーマンスが大幅に低下します。
|
|
ワークステーションの種類。ワークステーション・クライアントによって呼び出された tpinit(3c)および TPINITIALIZE(3cbl)内で、ネイティブ・サイトとの間でエンコード/デコードの責任範囲について調整するときに使用されます。 WSTYPEを指定しない場合は、ネイティブ・サイトで指定していなくてもエンコードが行われます。両サイトには、明示的に同じ WSTYPE値を指定し、エンコード/デコードの機能を無効にします。
|
UNIXワークステーション上のワークステーション・クライアントでは、使用するOracle Tuxedoシステムの機能に応じて、前述以外の環境変数が必要になる場合があります。状況に応じて必要となる変数については、
『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページ
compilation(5)を参照してください。
TUXDIR=/opt/tuxedo
[application1]
;this is a comment
/* this is a comment */
#this is a comment
//this is a comment
set FIELDTBLS=app1_flds
set FLDTBLDIR=/opt/app1/udataobj
[application2]
FIELDTBLS=app2_flds
FLDTBLDIR=/opt/app2/udataobj
•
|
各行の先頭のスペースまたはタブ文字は無視され、次に述べる事項でも無視されます。
|
•
|
環境に適用する変数を含む行は、次の形式になります。
|
variable=value
または
set variable=value
ここで、
variableは、先頭がアルファベット文字またはアンダースコア文字で、全体が英数字またはアンダースコア文字のみからなる文字列です。また、
valueには改行文字を除くすべての文字を使用できます。
•
|
valueでは、${ env}という形式の文字列は、すでに環境内にある変数を使用して展開される。前方参照はサポートされていません。値が設定されていない場合、変数は空の文字列に置換されます。円マーク(¥)を使用して、ドル記号およびそれ自体をエスケープすることができます。その他すべてのシェルのクォートおよびエスケープのメカニズムは無視され、展開された valueがそのまま環境に入れられます。
|
•
|
スラッシュ(/)、シャープ記号(#)、または感嘆符(!)で始まる行は、コメント行と見なされ、無視される。これらのコメント文字、左角括弧、アルファベット文字またはアンダースコア文字以外の文字で始まる行は、将来の用途のため予約されています。使用法は未定義です。
|
•
|
ファイルは、次の形式の行によってセクションごとに区切られます。
|
labelはセクションの名前であり、前述の
variableの規則が適用されます。31文字を超える部分は切り捨てられます。
•
|
ファイルの先頭と最初のラベルの間の変数行は、すべてのアプリケーションの環境(つまりグローバル・セクション)に挿入されます。また、ラベル []はグローバル・セクションを示します。その他の変数は、ラベルがアプリケーション用に指定したラベルと一致する場合にのみ、環境に組み込まれます。
|
void tuxreadenv(char *
file, char *
label)
fileがNULLの場合、デフォルトのファイル名が使用されます。各プラットフォームのデフォルトのファイル名は次のとおりです。
•
|
%TUXDIR%\TUXEDO.ENV (Windows)
|
•
|
$TUXDIR/TUXEDO.env (UNIX)
|
labelの値がNULLの場合は、グローバル・セクションの変数のみが環境に組み込まれます。
labelが他の値の場合、グローバル・セクションの変数と、
labelに一致するセクション内の変数が環境に組み込まれています。
次の場合は、userlogにエラー・メッセージが記録されます。
tpinit(3c)を(明示的、または別のATMI関数を呼び出して暗黙的に)呼び出すたびに、ワークステーション・クライアントで
tuxreadenv(3c)が自動的に呼び出されます。環境に
WSENVFILEが設定されている場合は、環境ファイルを示します。そうでない場合は、
tuxreadenv()にファイル名としてNULLが渡され、デフォルトのファイルが使用されます。環境に
WSAPPが設定されている場合は、環境ファイルのセクションのラベルとして使用されます。そうでない場合は、
tuxreadenv()にラベル名としてNULLが渡されます。アプリケーション・クライアントは、
tuxreadenv()を明示的に呼び出すこともできます。
•
|
指定した WSAPPラベル(または指定されていない場合はデフォルト値)が設定された、指定した WSENVFILEファイルのすべての変数
|
マルチスレッド化またはマルチコンテキスト化されたワークステーション・クライアントをアプリケーションに参加させる
Oracle Tuxedoアプリケーションに参加するには、マルチスレッドのワークステーション・クライアントは、たとえシングル・コンテキスト・モードで動作している場合でも、必ず
TPMULTICONTEXTSフラグを設定して
tpinit()関数を呼び出さなければなりません。