目次 前 次 PDF


ワークステーション・コンポーネントの使用

ワークステーション・コンポーネントの使用
次の項では、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)コマンド行の例です。
リスト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 C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』および『Oracle Tuxedo COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』クライアントのコーディングに関する項
『Oracle Tuxedo COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』ワークステーション・コンポーネントに対するCOBOL言語のバインドに関する項
『CORBAアプリケーションにおけるセキュリティの使用』ATMIアプリケーションにクライアント・プログラムを参加させるためのセキュリティ・コードの記述方法に関する項
『Oracle Tuxedoコマンド・リファレンス』buildclient(1)に関する項
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コマンド・リファレンス』ud、wud(1)に関する項
ワークステーションでOracle Tuxedoシステムのクライアントを実行する
開発およびテストが終了したクライアント・プログラムは、ワークステーションに移動でき、ユーザー側で利用可能になります。
ワークステーション・クライアントのディレクトリ構造
次の表は、Oracle Tuxedoシステムのワークステーション・コンポーネントをインストールした場合のワークステーション・クライアントのディレクトリ構造を示しています。
 
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ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページcompilation(5)を参照してください。
環境ファイルを作成する
作成した環境ファイルは、tpinit(3c)またはTPINITIALIZE(3cbl)の呼出し時に読み込まれます。次のリストは、2つの異なるアプリケーションで使用されるサンプル・ファイルです。
リスト2-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を使用する
tuxreadenv(3c)関数を呼び出すと、環境ファイルが読み込まれ、プラットフォームに関係なく、プロセス全体の環境に環境変数が追加されます。変数を使用するにはtuxgetenv(3c)を使用し、変数をリセットするには、tuxputenv(3c)を使用します。
void tuxreadenv(char *file, char *label)
fileがNULLの場合、デフォルトのファイル名が使用されます。各プラットフォームのデフォルトのファイル名は次のとおりです。
%TUXDIR%\TUXEDO.ENV (Windows)
$TUXDIR/TUXEDO.env (UNIX)
labelの値がNULLの場合は、グローバル・セクションの変数のみが環境に組み込まれます。labelが他の値の場合、グローバル・セクションの変数と、labelに一致するセクション内の変数が環境に組み込まれています。
次の場合は、userlogにエラー・メッセージが記録されます。
メモリー障害が発生した場合
NULL以外のファイル名が存在しない場合
NULL以外のラベルが存在しない場合
tpinit(3c)を(明示的、または別のATMI関数を呼び出して暗黙的に)呼び出すたびに、ワークステーション・クライアントでtuxreadenv(3c)が自動的に呼び出されます。環境にWSENVFILEが設定されている場合は、環境ファイルを示します。そうでない場合は、tuxreadenv()にファイル名としてNULLが渡され、デフォルトのファイルが使用されます。環境にWSAPPが設定されている場合は、環境ファイルのセクションのラベルとして使用されます。そうでない場合は、tuxreadenv()にラベル名としてNULLが渡されます。アプリケーション・クライアントは、tuxreadenv()を明示的に呼び出すこともできます。
実装された環境は、プラットフォームごとに異なる方法で使用できます。環境に対する共通のインタフェースは、既存のtuxgetenv(3c)関数およびtuxputenv(3c)関数により提供されます。これらの関数により、次の変数にアクセスできます。
指定したWSAPPラベル(または指定されていない場合はデフォルト値)が設定された、指定したWSENVFILEファイルのすべての変数
オペレーティング・システム環境の環境変数
関連項目
『Oracle Tuxedo ATMI C言語関数リファレンス』「tpinit(3c)」
『Oracle Tuxedo ATMI C言語関数リファレンス』tuxreadenv(3c)に関する項
マルチスレッド化またはマルチコンテキスト化されたワークステーション・クライアントをアプリケーションに参加させる
Oracle Tuxedoアプリケーションに参加するには、マルチスレッドのワークステーション・クライアントは、たとえシングル・コンテキスト・モードで動作している場合でも、必ずTPMULTICONTEXTSフラグを設定してtpinit()関数を呼び出さなければなりません。
関連項目
『Oracle Tuxedo ATMI C言語関数リファレンス』「tpinit(3c)」

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved