|
以下の節では、SCA ATMI バインディングのリファレンス情報について説明します。
コード リスト F-1 に、ATMI バインディングの要素 (<binding.atmi>) がどのように定義されているかを示します。これは、文法の使用方法と有効なパラメータを示すための擬似スキーマです。
| 注意 : | パラメータ「transactionalintent legacyintent」はリテラル値ではありません。transactionalintent は、「suspendsTransaction」または「propagatesTransaction」で置き換えることができます (省略しても構いません)。「legacyintent」は、「legacy」で置き換えることができます (省略しても構いません)。 |
| 注意 : | ? は 0 回または 1 回指定できるパラメータを表し、* は 0 回以上指定できるパラメータを表します。 |
| 注意 : | <binding.atmi> 要素を使用する場合は、/reference/@name (or/service/@name) とメソッド名の長さの合計を、Tuxedo サービス名の最大長 (Tuxedo のリリースによって異なる) 以下にする必要があります。この制限を克服する方法については、</binding.atmi/map> を参照してください。 |
<binding.atmi requires="transactionalintent legacyintent"?>
<tuxconfig>...</tuxconfig>?
<map target="name">...</map>*
<serviceType target="name">...</serviceType>*
<inputBufferType target="name">...</inputBufferType>*
<outputBufferType target="name">...</outputBufferType>*
<errorBufferType target="name">...</errorBufferType>*
<workStationParameters>?
<networkAddress>...</networkAddress>?
<secPrincipalName>...</secPrincipalName>?
<secPrincipalLocation>...</secPrincipalLocation>?
<secPrincipalPassId>...</secPrincipalPassId>?
<encryptBits>...</encryptBits>?
</workStationParameters>
<authentication>?
<userName>...</userName>?
<clientName>...</clientName>?
<groupName>...</groupName>?
<passwordIdentifier>...</passwordIdentifier>?
<userPasswordIdentifier>...
</userPasswordIdentifier>?
</authentication>
<fieldTablesLocation>...</fieldTablesLocation>?
<fieldTables>...</fieldTables>?
<fieldTablesLocation32>...</fieldTablesLocation32>?
<fieldTables32>...</fieldTables32>?
<viewFilesLocation>...</viewFilesLocation>?
<viewFiles>...</viewFiles>?
<viewFilesLocation32>...</viewFilesLocation32>?
<viewFiles32>...</viewFiles32>?
<remoteAccess>...</remoteAccess>?
<transaction timeout="xsd:long"/>?
</binding.atmi>
<binding.atmi> 要素では以下の属性がサポートされます。
legacy 値を使用すると、既存の Tuxedo サービスとの相互運用を実現できます。指定しない場合、通信には SCA 間のセマンティクスを使用するものとみなされ、/binding.atmi/map 要素が定義されている場合を除き、実際の Tuxedo サービス名は /service/@name または /reference/@name と実際のメソッド名から構成されます (コード リスト F-1 を参照)。この属性に legacy 値を指定し、呼び出されたメソッドに /binding.atmi/map 要素が定義されていない場合、実行時の動作は以下のようになります。suspendsTransaction - 呼び出されたサービスにトランザクション コンテキストが伝播されます。<service> 要素の場合は、アプリケーション コードを呼び出す前に、既に存在しているトランザクションが自動的に中断されます。トランザクションは、呼び出しの結果に関係なく後で再開されます。<reference> 要素の場合は、TPNOTRAN フラグを指定して tpcall() を実行したのと同じになります。propagatesTransaction - <reference> 要素にのみ適用できます。<service> 要素では無視されます。トランザクションが存在しない場合は新しいトランザクションが開始されます。存在する場合は、既存のトランザクションに参加します。
このような動作は、UBBCONFIG ファイルで <service> 要素を AUTOTRAN にコンフィグレーションすることで、コンポーネントまたはコンポジット内で取得できます。Tuxedo サーバが SCA コンポーネントをホストしており、UBBCONFIG ファイルでトランザクション グループにコンフィグレーションされていない場合はエラーが生成されます。
クライアントのみのプロセスにおいて、/binding.atmi/workstationParameters が設定されていない場合に、<reference> 要素内で使用します。この属性は、プロセスが参加すべき Tuxedo アプリケーションを示します。プロセスを複数のアプリケーションに参加させたり、参加するアプリケーションを再起動なしで切り替えたりすることも可能です。
設定しない場合は、TUXCONFIG 環境変数が使用されます。この属性が必要とされるにもかかわらず設定されていない場合は、プロセスが終了してエラーが返されます。
<reference> 要素の場合の </binding.atmi/map> は、/binding.atmi/map/@target 値に対応する呼び出しの実行時に使用すべき Tuxedo サービス名を提供します。この値は、呼び出されるメソッドの名前になります。
<service> 要素の場合の </binding.atmi/map> は、 /binding.atmi/map/@target 値に応じて公開すべき Tuxedo サービス名を提供します。
/binding.atmi/map/@target 値は、対応するサービス インタフェースの名前と一致させる必要があります。
/binding.atmi/map 要素が存在する場合は、Tuxedo サービス名をマッピングするいかなるサービスやメソッドよりも優先されます。</binding.atmi/@requires> 属性を参照してください。
処理する呼び出しのタイプを指定する省略可能な要素です。有効な値は以下のとおりです。
プロセスが交換するバッファのタイプを指定する省略可能な要素です。inputBufferType 要素は、バインディング拡張がリクエストのタイプを特定または確認するために使用します。
outputBufferType 要素は、バインディング拡張が応答のタイプを特定または確認するために使用します。
errorBufferType 要素は、クライアントが受け取った (またはサーバが送出した) 例外のデータ部分に指定されているバッファのタイプを特定するために使用します。
表 F-1 に、サポートされる値とそれぞれに対応する Tuxedo バッファ タイプを示します。不正な値や構文が含まれていると、実行時に検出されて呼び出しが失敗します。指定しない場合、デフォルト値 STRING が使用されます。
|
||||
|
||||
Tuxedo WorksStation プロトコルに固有のパラメータを指定する省略可能な要素です。参照でのみ使用します。
必要に応じて複数のアドレスを指定できます。その場合は、WSNADDR のパス名のリストをカンマ区切りで指定します。接続が確立されるまで、それらのアドレスが順番に試行されます。アドレス リストのすべてのメンバーは、ネットワーク アドレスをパイプで区切った上で、グループ全体を丸かっこで囲むことで指定できます。次に例を示します。
<networkAddress> (//m1.acme.com:3050|//m2.acme.com:3050),//m3.acme.com:3050 </networkAddress>
Tuxedo では、丸かっこ内のアドレスがランダムに選択されます。これにより、複数のリスナ プロセスの間で負荷をランダムに分散できます。接続が確立されるまで、それらのアドレスが順番に試行されます。
ipv6 をサポートするバージョンの Tuxedo では、対応するアドレス形式もサポートされます。形式は、Tuxedo /WS クライアントの WSNADDR で使用されるアドレスと同じです。
secPrincipalName、secPrincipalLocation、secPrincipalPassId
これらのパラメータは、ワークステーション クライアントで SSL 接続が必要とされる場合に必要なパラメータを指定します。パスワードを別のファイルに格納し、コールバック メカニズムを使用してアクセスできます。デフォルトのコールバックでは、scapasswordtool コマンドを使用して管理する password.store ファイルを使用します。詳細については、SALT の『プログラミング ガイド』を参照してください。
encryptBits
クライアント接続がネゴシエートを試みる暗号化の強度を指定します。形式は <minencryptbits>/<maxencprytbits> で、値としては数値を指定します (たとえば 128/128)。無効な値を指定すると、コンフィグレーション例外が送出されます。有効な値は、0 (暗号化を使用しない)、40、56、128、または 256 です (指定した値が暗号化キー内の有効ビットの数である場合)。
参照タイプの呼び出しで、Tuxedo アプリケーションとの接続の確立に使用するセキュリティ パラメータを指定します。以下の値は、それぞれ TPINFO 構造要素 usrname、cltname、grpname、および passwd に対応します (詳細については、『Oracle Tuxedo C リファレンス』の「tpinit(3c)」を参照してください)。
/binding.atmi/authentication/userName/binding.atmi/authentication/clientName/binding.atmi/authentication/groupName/binding.atmi/authentication/passwordIdentifier-(アプリケーション パスワード)/binding.atmi/authentication/userPasswordIdentifier-(ユーザ認証ごとのユーザ パスワード)
パスワードはクリア テキストでは保存されませんが、識別子を使用してルックアップされます。パスワードの取得にはコールバック関数を使用できます。詳細については、Oracle SALT の『リファレンス ガイド』の「setSCAPasswordCallback()」を参照してください。
パスワードは、デフォルトでは /reference/binding.atmi/authentication/passwordIdentifier または /reference/binding.atmi/authentication/userPasswordIdentifier 要素と同じディレクトリにあるパスワード ストア ファイルに、暗号化された状態で保管されています。この識別子は、認証の実行時に必要に応じて読み込まれます。
詳細については、Oracle SALT の『リファレンス ガイド』の scapasswordtool および setSCAPasswordCallback(3c) を参照してください。
| 注意 : | この情報が SCA カーネルでサポートされる場合は、ポリシー セットと目的に基づいて処理する必要があります。 |
ローカル ファイル システム内で、フィールド テーブルを検索するディレクトリを指定する省略可能な要素です。相対パスを指定した場合は、$APPDIR からの相対ディレクトリが検索されます。それ以外の場合は絶対パスとみなされます。
FML32 バッファ用の fieldTablesLocation です。
使用できる FML フィールド テーブルを指定する省略可能な要素です。フィールド テーブルは、/binding.atmi/fieldTablesLocation 要素で指定した場所から検索されます。
/binding.atmi/bufferType 値が FML で、この要素が指定されていないか無効な場合 (つまり、指定されたテーブルが見つからないか、見つかったものがフィールド テーブルでない場合) は、クライアント プロセスの初期化時かサーバ プロセスの起動時にエラーが表示されます。
ローカル ファイル システム内で、ビュー テーブルを検索するディレクトリを指定する省略可能な要素です。相対パスを指定した場合は、$APPDIR からの相対ディレクトリが検索されます。それ以外の場合は絶対パスとみなされます。
VIEW32 バッファ用の viewTablesLocation です。
影響を受けるコンポーネントで使用する VIEW ファイルを指定する省略可能な要素です。/binding.atmi/bufferType 値が VIEW で、この要素が指定されていないか無効な場合 (つまり、指定されたフィールドが見つからないか、見つかったものがビュー ファイルでない場合) は、クライアント プロセスの実行時かサーバ プロセスの起動時にエラーが表示されます。
| 注意 : | FML/FML32 および VIEW/VIEW32 パラメータは省略可能です。省略する場合は、対応する Tuxedo 環境変数 (FLDTBLDIR/32、FLDTBLS/32、VIEWDIR/32、および VIEWFILES/32) が必要になります。両方が使用されていない場合は、実行時に指定されたバッファを使用しようとするとエラーが出力されます。両方が設定されている場合は、SCDL コードに含まれているパラメータが優先されます。 |
通信プロトコルとして以下の値のいずれかを指定する省略可能な要素です。デフォルトは Native です。
トランザクションがタイムアウトするまでの実行時間を秒単位で指定します。この属性は、グローバル トランザクションを開始するコンポーネントやクライアントに影響します。<reference> コンポーネントの場合は必須です。<service> コンポーネントに設定した場合は無視されます。また、トランザクションがすでに開始されていたコンポーネントでも無視されます。トランザクションを開始する必要があり、この属性が存在しない場合 (たとえば「requires=propagatesTransaction」が設定されている場合) は、コンフィグレーション エラーが発生します。
buildscaclient」、「buildscacomponent」、および「buildscaserver」
|