|
以下の項では、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オプションを指定する必要はありません。
以下のコード・リストは、ネイティブ・ノードでのbuildclient(1)コマンドラインの例です。
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になりますが、例のように、別のコンパイラを設定することもできます。
wudおよびwud32は、Oracle Tuxedoシステムに組み込まれているワークステーション用のドライバ・プログラムです。これらのドライバ・プログラムは、ワークステーション・ライブラリを使用して作成された、標準的なOracle Tuxedoのクライアント・プログラムであるudおよびud32に基づいています。
Oracle Tuxedoシステム・サーバーにFMLバッファを送信するには、wud(1)を使用します。FBFR32型のFML32フィールド化バッファの場合は、wud32を使用します。
wudをセキュリティ付きアプリケーションで実行する場合は、アプリケーション・パスワードを指定しないとアプリケーションにアクセスできません。端末から標準入力を行う場合にwudを実行すると、アプリケーション・パスワードの入力を求められます。wudでは通常、スクリプトからクライアント・プログラムを実行しますが、この場合、パスワードはAPP_PW環境変数から取得されます。アプリケーション・パスワードが必要な場合に、この環境変数が指定されていないと、wudは異常終了します。
APP_PW環境変数と、構成ファイルのSECURITYパラメータ(APP_PWを指定するとセキュリティ機能が有効になる)を混同しないでください。
開発およびテストが終了したクライアント・プログラムは、ワークステーションに移動でき、ユーザー側で利用可能になります。
次の表は、Oracle Tuxedoシステムのワークステーション・コンポーネントをインストールした場合のワークステーション・クライアントのディレクトリ構造を示しています。
ワークステーション・クライアントでは、いくつかの環境変数を使用します。次の表は、ワークステーション・クライアントがアプリケーションに参加しようとするときに、tpinit(3c)またはTPINITIALIZE(3cbl)によってチェックされる環境変数を示しています。これらの環境変数の設定方法については、『Oracle Tuxedoアプリケーションの設定』の「ワークステーション・クライアントの定義」を参照してください。
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンが、割り当てられたMBSTRING型付きバッファに格納するコードセットのエンコーディング名を指定します。ワークステーション・クライアントがMBSTRINGバッファを割り当てて送信すると、
TPMBENCで定義されたコードセットのエンコーディング名は属性として自動的にバッファに追加され、バッファ・データとともに送信先のサーバー・プロセスに送信されます。
ワークステーション・マシンがMBSTRINGバッファを受信して、別の環境変数
TPMBACONVが設定されているとみなすと、TPMBENCで定義されたコードセットのエンコーディング名は、受信されたバッファ内のコードセット・エンコーディング名と自動的に比較されます。名前が同じではない場合、MBSTRINGバッファのデータは、ワークステーション・クライアントに配信される前に、TPMBENCで定義されたエンコーディングに自動的に変換されます。
|
|||
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンが、受信したMBSTRINGバッファのデータを、
TPMBENCで定義されたエンコーディングに自動的に変換するかどうかを指定します。 デフォルトでは自動変換は無効になっています。受信したMBSTRINGバッファのデータは、エンコーディングの変換はされないままでワークステーション・クライアントに配信されます。 TPMBACONVをY (yes)などのNULL以外の値に設定すると、自動変換が有効になります。
|
|||
|
Oracle Tuxedo 8.1以降を実行するワークステーション・マシンがDTD、スキーマおよびエンティティ・ファイルをキャッシュするディレクトリを指定します。特に、ワークステーション・クライアント上で動作するApache Xerces-C++パーサーが、DTD、XMLスキーマおよびエンティティ・ファイルをキャッシュする場所を指定します。
URLENTITYCACHEDIR変数には、キャッシュするファイルの絶対パス名を指定します。URLENTITYCACHEDIRを指定しない場合、デフォルトのディレクトリはURLEntityCachedirになり、このディレクトリは、適切な書込み権限が設定されている場合、ワークステーション・クライアント・プロセスの現在の作業ディレクトリ内に作成されます。
|
|||
ATMI関数が、アプリケーションからの応答をディスクにダンプする前にバッファに格納するために使用するコア・メモリーの最大容量。tpinit(3c)およびTPINITIALIZE(3cbl)で使用されます。tpgetrply(3c)およびTPGETRPLY(3cbl)で取得した応答および非請求メッセージは、この領域に格納されます。この領域がメッセージでいっぱいの場合、オーバーフローしたメッセージはディスク・ファイルに書き込まれます。システムで指定されているデフォルトの最大値は、256,000バイト。
WSRPLYMAXを使用して低い制限値を設定するかどうかは、マシンの空きメモリーに応じて異なります。応答をディスクに書き込むと、パフォーマンスが大幅に低下します。
|
|||
ワークステーションの種類。ワークステーション・クライアントによって呼び出されたtpinit(3c)およびTPINITIALIZE(3cbl)内で、ネイティブ・サイトとの間でエンコードまたはデコードを行うかどうかを判断するときに使用されます。
WSTYPEを指定しない場合は、ネイティブ・サイトで指定していなくてもエンコードが行われます。両サイトには、明示的に同じWSTYPEを指定し、エンコードまたはデコードの機能を無効にします。
|
UNIXワークステーション上のワークステーション・クライアントでは、使用するOracle Tuxedoシステムの機能に応じて、上記以外の環境変数が必要になる場合があります。 状況に応じて必要となる変数については、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「compilation(5)」リファレンス・ページを参照してください。
作成した環境ファイルは、tpinit(3c)またはTPINITIALIZE(3cbl)の呼出し時に読み込まれます。 次のコード・リストは、2つの異なるアプリケーションで使用されるサンプル・ファイルです。
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] labelはセクションの名前であり、上記のvariableの規則が適用されます。 31文字を超える部分は切り捨てられます。
[]というラベルもグローバルなセクションを示します。その他の変数は、ラベルがアプリケーション用に指定したラベルと一致する場合にのみ、環境に組み込まれます。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()関数を呼び出さなければなりません。
|