以下の項では、SCA ATMIバインディングのリファレンス情報について説明します。
リストG-1には、ATMIバインディングの要素(<binding.atmi>
)がどのように定義されているかを示します。これは、文法の使用方法と有効なパラメータを示すための擬似スキーマです。
注: | パラメータ「transactionalintent legacyintent」 はリテラル値ではありません。transactionalintent は、「suspendsTransaction」 または「propagatesTransaction」 で置き換えることができます(省略しても構いません)。 「legacyintent」 は、「legacy」で置き換えることができます(省略しても構いません)。 |
注: | ? は0回または1回指定できるパラメータを表し、*は0回以上指定できるパラメータを表します。 |
注: | <binding.atmi> 要素を使用する場合は、/reference/@name(または/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
と実際のメソッド名から構成されます(リストG-1を参照)。この属性にlegacy値を指定し、呼び出されたメソッドに/binding.atmi/map
要素が定義されていない場合、実行時の動作は次のようになります。suspendsTransaction
- 呼び出されたサービスにトランザクション・コンテキストが伝播されます。<service>
要素の場合は、アプリケーション・コードを呼び出す前に、すでに存在しているトランザクションが自動的に中断されます。トランザクションは、呼出しの結果に関係なく後で再開されます。<reference>
要素の場合は、TPNOTRAN
フラグを指定してtpcall()
を実行した場合と同じになります。propagatesTransaction
- <reference>
要素にのみ適用できます。<service>
要素では無視されます。トランザクションが存在しない場合は、新しいトランザクションが開始されます。存在する場合は、既存のトランザクションに追加されます。 このような動作は、UBBCONFIGファイルで<service>
要素をAUTOTRAN
に構成することで、コンポーネントまたはコンポジット内で取得できます。TuxedoサーバーがSCAコンポーネントの実装をホストしており、UBBCONFIGファイルでトランザクション・グループに構成されていない場合は、エラーが生成されます。
クライアントのみのプロセスにおいて、/binding.atmi/workstationParameters
が設定されていない場合に、<reference>
要素内で使用します。この属性は、プロセスを追加する必要があるTuxedoアプリケーションを示します。1つのプロセスを複数のアプリケーションに追加したり、アプリケーションを再起動なしで切り替えることも可能です。
設定しない場合は、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
要素は、クライアントが受け取った(またはサーバーがスローした)例外のデータ部分に指定されているバッファのタイプを特定するために使用します。
表G-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 ATMI 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のOracle SALTリファレンス・ガイドの「setSCAPasswordCallback()」
を参照してください。
パスワードは、デフォルトでは/reference/binding.atmi/authentication/passwordIdentifier
または/reference/binding.atmi/authentication/userPasswordIdentifier
要素と同じディレクトリにあるパスワード・ストア・ファイルに、暗号化された状態で保管されています。 この識別子は、認証の実行時に必要に応じて読み込まれます。
詳細は、Oracle SALTの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」