8 Oracle Tuxedoサービス・メタデータ・リポジトリの管理

このトピックには、次の項があります。

8.1 Oracle Tuxedoサービス・メタデータ・リポジトリ

Oracle Tuxedoサービス・メタデータ・リポジトリには、Oracle TuxedoクライアントがOracle Tuxedoサービスのパラメータ情報にアクセスするために使用するOracle Tuxedoサービスの定義が格納されます。このリポジトリを使用すると、Oracle Tuxedoアプリケーションの開発者と管理者は、一部またはすべてのOracle Tuxedoアプリケーション・サービスに関する詳細なサービス・パラメータ情報を格納および取得できます。

Oracle Tuxedoサービス・メタデータ・リポジトリは、アプリケーションの開発または変更時に、開発者と管理者による対話形式の問合せを処理することを目的に設計されました。アプリケーションの本番フェーズで、自動化された大量の問合せを処理するためのものではありません。

Oracle Tuxedoサービス・メタデータ・リポジトリは、5つのユーティリティと組み合せて使用します

  • TMMETADATA(5): Oracle Tuxedoサービス・メタデータ・リポジトリ・サーバー。METAREPOS(5)に関する項で説明するFML32入出力バッファ形式を使用する1つのサービス(.TMMETAREPOS)を提供します。

    ノート:

    .TMMETAREPOSバッファ形式はMIB(5).に似ています
  • tmloadrepos(1): バイナリのメタデータ・リポジトリ・ファイルを作成または更新し、サービス・パラメータ情報とともにロードします。
  • tmunloadrepos(1): Oracle Tuxedoサービス・メタデータ・リポジトリからのサービス情報を表示します。出力は、オプションでプレーン・テキスト形式、WSDL形式またはC擬似コードとして指定できます
  • tpgetrepos(3c): プログラムでFML32バッファを使用して、Oracle Tuxedoサービス・メタデータ・リポジトリからのサービス情報を出力します。
  • tpsetrepos(3c): プログラムでFML32バッファを使用して、メタデータ・リポジトリ・ファイルに対するサービス・パラメータ情報の追加、削除または更新を実行します。

関連項目:

8.1.1 MIB(5)との類似点と相違点

Oracle Tuxedoシステム・メタデータ・リポジトリにプログラム的にアクセスするには、Tuxedo MIB形式によく似たFML32バッファ形式を使用します。ただし、次の表に示すように、明確な相違点もいくつかあります:

表8-1 MIB(5)との類似点と相違点

  MIB(5) METAREPOS(5)
入出力バッファ FML32 FML32
汎用MIBフィールド はい はい。ただし、いくつかの制限があります。METAREPOS(5)に関する項を参照してください
真正のMIBクラス・エンティティ 多数 真正のMIBクラス・エンティティはありませんが、似たようなエンティティを使用します。
サービス・エントリ BBLの.TMIB TMMETADAサーバーの.TMMETAREPOS

8.2 Oracle Tuxedoサービス・メタデータ・リポジトリの作成

メタデータ・リポジトリ・ファイルには、Oracle Tuxedoサービス・メタデータ・リポジトリでアクセスするすべてのサービス・パラメータ情報を格納します。tmloadreposコマンドは、メタデータ・リポジトリ・ファイルを作成するために使用します。メタデータ・リポジトリ・ファイルのサービス・パラメータ情報は、指定したプレーン・テキストのリポジトリ入力ファイルから入力するか、リポジトリ入力ファイルが指定されていない場合はコンピュータのコンソール(標準入力)から直接入力します。例:

tmloadrepos-i /usr/tuxedo/repository_input_file 
/usr/tuxedo/service_metatdata_repository.

8.2.1 Oracle Tuxedoサービス・メタデータ・リポジトリの入力ファイル

repository_input_fileには、サービス・パラメータ・キーワードとそれらの関連値が含まれます。キーワードは、サービス・レベルとパラメータ・レベルの2つのカテゴリに分かれます。

ノート:

キーワードの省略形も使用できます。キーワードおよび省略形の大文字/小文字は区別されます。キーワード、省略形、および値の詳細は、「サービス・レベルのキーワードと値を使う」および「パラメータ・レベルのキーワードと値を使う」を参照してください。

1行に指定できるキーワードと値の組合せは1つのみです。1行に入力できる文字の長さは1024バイトまでです。文字列パラメータ値を引用符で囲む必要はありません。

repository_inputファイルでは、<keyword><=value>という構文を使用し、次の入力規則に従う必要があります。

"("および")"
パラメータでサブ・パラメータを定義する必要がある場合、単一の左カッコ'('から構成される行と単一の右カッコ')'から構成される行は、パラメータのサブパラメータ部分の開始と終了を示します。左と右のカッコは再帰的に使用できます。
\および"\"
repository_inputファイルには、読みやすくするための空白行を挿入できます。新しい行は文字で始めます。実際の「\」文字を使用する場合は、「\\」と記述する必要があります。
#
「#」で始まる行はコメント行と解釈されます。このようなコメントは、svcdescriptionまたはparamdescriptionキーワードで指定したコメントと異なり、バイナリのrepository_filetmunloadreposによる出力には含まれません。

repository_inputファイルは、0個以上のサービス・パラメータ定義で構成できます。各サービス定義は、<service>キーワードで始まる行で開始し、その後に他のいずれかのサービス・レベル・キーワードで始まる0個以上の行が続き、その後にパラメータ・レベル・キーワードが続きます。1つのサービスで、同じサービス・レベル・キーワードを繰り返し使用することはできません。

8.2.1.1 サービス・レベルのキーワードと値を使う

サービス定義は、キーワードservice<=NAME>または省略形sv<=NAME>で開始する必要があります。CARRAYSTRINGまたはXMLバッファ・タイプを使用しているサービスには、サービス当たり1つのパラメータのみ使用できます。次の表に、Oracle Tuxedoサービス・メタデータ・リポジトリのサービス・レベル・キーワードを示します:

表8-2 サービス・レベル・キーワード、省略形、値

サービス・レベル・キーワード キーワードの省略形
service sv 任意のOracle Tuxedoサービス名

ノート:

値を指定したこのキーは、メタデータ・リポジトリ・インスタンスごとに1つのみ指定できます。同じメタデータ・リポジトリ内で重複させることはできません。
tuxservice tsv 実際のOracle Tuxedoサービス名

ノート:

serviceキーワードとtuxserviceキーワードの違いは次のとおりです:
  • serviceは、メタデータ・リポジトリに格納するサービス・エントリを表します。
  • tuxserviceは、実際のOracle Tuxedoサービス名を表します。複数のservice定義で、tuxserviceと同じ値を指定できます。

これら2つのキーワードを組み合せて使用すると、1つのOracle Tuxedoサービスに対して複数のサービス定義を指定できます。tuxserviceは、デフォルトではserviceと同じ値になります

servicetype st サービスの呼出し方式。有効な値は次のとおりです:
  • request - response - サービスは同期型です
  • oneway - サービスはクライアントにレスポンスを送信しません
  • queue - サービスは/Q関連アプリケーションです
  • conv - サービスは変換型です
SNAISC ISC アウトバウンドTuxedoサービス・リクエストがAPPCトランザクション・プログラムまたはCICSプログラムにマップできるようにします。servicemodeの値がsnaの場合にのみ有効です。有効な値のリストは、APPC、ATI、DPL、DTPです。デフォルト値APPCでは、リモート・サービスを、CICS下で実行するかどうかを問わずトランザクション・プログラムとして指定します。値DPLでは、リモート・サービスをCICS下で実行されるプログラムにマップします。
servicemode sm サービスの生成元のタイプ(オプション)。有効な値は次のとおりです:
  • tuxedo - このサービスは、Oracle Tuxedoから生成されたサービスです
  • webservice - 外部のWebサービス・インタフェースから変換されたプロキシ・サービス
  • sna - SNAゲートウェイ用インポート・サービス。エクスポート・サービスの場合、tuxedoがデフォルト値です。指定しない場合、tuxedoがデフォルト値になります。

ノート:

Oracle Tuxedoサービスにはwebserviceを指定しないでください(webserviceはSALTプロキシ・サービス用に予約されています)。
export ex Y(デフォルト値)またはN。

このキーワードを使用して、Oracle Joltクライアントに対するサービスの可用性を判別します。

このキーワードは、Oracle Tuxedoリポジトリでは使用されていませんが、既存のOracle Joltバルク・ローダー・ファイルとの互換性を維持するために残されています。

ノート:

exportをNに設定すると、サービスはC擬似コードまたはテキスト形式ではエクスポートされません。
inbuf bt Oracle Tuxedoサービス・リクエスト(入力)バッファ・タイプ。次のいずれかのタイプ値を選択します(大文字/小文字は区別されます): FML、FML32、VIEW、VIEW32、STRING、CARRAY、XML、X_OCTET、X_COMMON、X_C_TYPE、MBSTRINGまたはアプリケーション定義のカスタム・バッファ・タイプを表すその他の任意の文字列。

ノート:

各サービス定義の"inbuf"の値は、NULLにできません。
outbuf BT TPSUCCESSが指定されたOracle Tuxedoサービス・レスポンス(出力)バッファ・タイプ。次のいずれかのタイプ値を選択します(大文字/小文字は区別されます): FML、FML32、VIEW、VIEW32、STRING、CARRAY、XML、X_OCTET、X_COMMON、X_C_TYPE、MBSTRINGまたはアプリケーション定義のカスタム・バッファ・タイプを表すその他の任意の文字列。

ノート:

各サービス定義の"outbuf"の値は、"service"型付きサービスまたは"queue"型付きサービスではNULLにできません。
errbuf ebt TPFAILが指定されたOracle Tuxedoサービス・レスポンス(エラー)バッファ・タイプ。次のいずれかのタイプ値を選択します(大文字/小文字は区別されます): FML、FML32、VIEW、VIEW32、STRING、CARRAY、XML、X_OCTET、X_COMMON、X_C_TYPE、MBSTRINGまたはアプリケーション定義のカスタム・バッファ・タイプを表すその他の任意の文字列。
inview vn 入力バッファのビュー名(オプション)。

ノート:

このキーワードが必須になるのは、バッファ・タイプとしてVIEW、VIEW32、X_COMMON、X_C_TYPE、FMLFML32のいずれかを使用している場合のみです。
outview VN 出力バッファのビュー名(オプション)。

ノート:

このキーワードが必須になるのは、バッファ・タイプとしてVIEW、VIEW32、X_COMMON、X_C_TYPE、FMLFML32のいずれかを使用している場合のみです。
errview evn エラー・バッファのビュー名(オプション)。

ノート:

このキーワードが必須になるのは、バッファ・タイプとしてVIEW、VIEW32、X_COMMON、X_C_TYPEのいずれかを使用している場合のみです。
inbufschema isc 入力バッファに対するカスタマイズされたメッセージ・スキーマの関連付け(オプション)。値の形式はXSD_E:@namespaceURIです。たとえば、XSD_E:Book@http://example.orgは、入力バッファがXMLネームスペースhttp://example.orgに定義されたXML要素に関連付けられていることを表します。

ノート:

このキーワードは、Oracle SALT拡張メッセージのマッピングおよび変換機能をサポートするために導入されています。SALTメッセージ変換の詳細は、Oracle SALTのWebサービスのプログラミングのデータ型のマッピングとメッセージ変換に関する項を参照してください
outbufschema osc 出力バッファに対するカスタマイズされたメッセージ・スキーマの関連付け(オプション)。値の形式はXSD_E:@namespaceURIです
errbufschema esc エラー・バッファに対するカスタマイズされたメッセージ・スキーマの関連付け(オプション)。値の形式はXSD_E:@namespaceURIです
svcdescription sd 任意の文字列値。文字列が長い場合は、改行して読みやすくできます。
sendqspace sqs 送信キュー・スペース名。"queue"型付きサービスでは省略可能です
sendqueue sqn 送信キュー名。"queue"型付きサービスでは省略可能です。
rplyqueue rqn 応答キュー名。"queue"型付きサービスでは省略可能です。
errqueue eqn エラー・キュー名。"queue"型付きサービスでは省略可能です。
rcvqspace RQS 受信キュー・スペース名。"queue"型付きサービスでは省略可能です。
rcvqueue RQN 受信キュー名。"queue"型付きサービスでは省略可能です
version vs このパラメータは、Oracle Tuxedoサービス・メタデータ・リポジトリ専用で、アプリケーションで使用するあらゆる文字列に対応できます。Oracle Tuxedoでは、このパラメータは解釈されません
attributes att このパラメータは、Oracle Tuxedoサービス・メタデータ・リポジトリ専用で、アプリケーションで使用するあらゆる文字列に対応できます。Oracle Tuxedoでは、このパラメータは解釈されません
fieldtbls ftb このパラメータは省略可能です。このサービスで使用するFMLまたはFML32フィールドの検索に使用するフィールド表のカンマ区切りのリストを指定します。fieldtblsは、アプリケーション開発者が参照用に使用するパラメータです。
8.2.1.2 パラメータ・レベルのキーワードと値を使う

パラメータは、キーワード<param>=NAME?または省略形<pn><=NAME>から開始し、パラメータ・キーワードのリストが続きます。別の<param>または<service>キーワードで終了するか、またはファイルの終わりが検出されると終了します。パラメータは、<param><=NAME>の後に任意の順序でリストできます。

ノート: 特定のサービスで複数の<param>キーワードのオカレンスを指定できます。つまり、ある特定のサービスに複数のパラメータが存在できます。たとえば、FMLまたはVIEWバッファを持つパラメータなどです。

次の表に、Oracle Tuxedoサービス・メタデータ・リポジトリのパラメータ・レベル・キーワードを示します:

表8-3 パラメータ・レベル・キーワード、省略形、値

パラメータ・レベル・キーワード メタデータ・リポジトリの省略形
param pn 任意のパラメータ名
type pt
byte, short, integer, float, double, string, carray, dec_t, xml, ptr, fml32, view32, mbstring

ノート:

パラメータ・タイプは、サービス・バッファ・タイプと一貫している必要があります。たとえば、FML16バッファでは、byte (char)、short、integer、long、float、double、string、carrayのタイプのパラメータのみ使用できます。他のすべてのタイプのパラメータは許可されません。次のバッファ・タイプ/パラメータ・タイプの一致表を参照してください。
subtype pst view32型のパラメータのビュー名
access pa
in, out, err, inout, inerr, outerr, inouterr, noaccess
  • in - 入力のみに使用されるパラメータを示します。
  • out - 出力のみに使用されるパラメータを示します。
  • err - エラー出力のみに使用されるパラメータを示します。
  • inout - 入力と出力の両方に使用されるパラメータを示します。
  • inerr - 入力とエラー出力の両方に使用されるパラメータを示します。
  • outerr - 出力とエラー出力の両方に使用されるパラメータを示します。
  • inouterr - 入力、出力およびエラー出力に使用されるパラメータを示します。
  • noacesss - 廃止されたパラメータや、ビューでフィラー・フィールドとして指定する必要があるパラメータなど、入力時に指定する必要はあるがサーバーでは参照されないパラメータを示します。

入力で期待されるパラメータのセットは、in、inout、inerr、inouterrまたはnoaccessアクセスです

出力で戻されるパラメータのセットは、out、inout、outerrまたはinouterrアクセスで指定されます。

エラー出力で戻されるパラメータのセットは、err、inerr、outerrまたはinouterrアクセスで指定されます。

count po オカレンスの最大数(デフォルトは1)。無制限のオカレンスに対応する値は0です。値の範囲は[0, 32767]です。Oracle Tuxedoリポジトリでは、このパラメータは表示用に格納され、tmunloadrepos(1)擬似コード生成オプションでも使用されます。
paramdescription pd 任意の文字列値。文字列が長い場合は、改行して読みやすくできます。
size p1 このオプションのパラメータは、パラメータに割り当てられているバイト数を示します。非数値パラメータの擬似コード生成に使用され、プログラマが参照する目的で使用できます。

carraystringxmlmbstringのパラメータ・タイプでは、この値が期待されます。

requiredcount ro パラメータを指定する必要がある最小回数。値の範囲は[0, 32767]です。
fieldindex fi フィールドのオカレンス番号。これは、FML/FML32にのみ適用されます。Joltクライアントのみがサポートされます。
fieldname fn FMLのフィールド名。これは、FML/FML32にのみ適用されます。Joltクライアントのみがサポートされます。

ノート:

FML/FML32の場合、別のパラメータ・レベル・キーワードparamのかわりに、このfieldnameを使用してフィールド名を指定します。
fldnum fno このオプションのパラメータは、FML/FML32フィールドの場合にパラメータのフィールド番号を示します。

ノート:

環境FLDTBLDIR(32)を使用してフィールド表ディレクトリを指定し、環境FIELDTBLS(32)またはfieldtblサービス・レベル・キーワードを使用してフィールド表ファイルを指定することで、fieldtblファイルがすでに定義されている場合は、この情報を使用しないことをお薦めします。fldnumフィールドを構成した場合は、param値ではなくfldnum値に従って応答fldidを受信します。
vfbname vfb このパラメータは、ビュー構造メンバーではオプションです。フィールド・バッファ内のフィールド名を示すために使用されます。viewfile(5)に関する項を参照してください
vflag vf1 このパラメータは、ビュー構造メンバーではオプションです。有効な値は、'C'、'F'、'L'、'N'、'P'、'S'のオプションの組合せです。viewfile(5)に関する項を参照してください。
vnull vnu このパラメータは、ビュー構造メンバーではオプションです。ビュー・メンバーのデフォルトのnull値を示します。
paramschema psc このパラメータはオプションで、分解FML32フィールドのXMLスキーマ情報を保存します。

ノート:

このパラメータ・キーワードは、servicemode=webservice型付きサービスの定義(アウトバウンド・コールのSALTプロキシ・サービス)用に導入されました。パラメータ値は外部WSDLファイルの変換からOracle SALT wsdlcvtユーティリティで生成されます。このキーワード値を手動で指定または変更しないでください。
primetype pxt このパラメータはオプションで、分解FML32フィールドの元のXML原始データ型を保存します。

ノート:

このパラメータ・キーワードは、servicemode=webservice型付きサービスの定義(アウトバウンド・コールのSALTプロキシ・サービス)用に導入されました。パラメータ値は外部WSDLファイルの変換からOracle SALT wsdlcvtユーティリティで生成されます。このキーワード値を手動で指定または変更しないでください。
isarray arr このパラメータはSALT RESTfulサービスのオプションです。Yに設定すると、フィールドのオカレンスが1つのみである場合も、SALT REST/JSONサービスによって、TuxedoバッファがJSON配列型にマップされます。

現在はFML/FML32バッファ型のみサポートされています。

inheader - 受信したSOAPエンベロープ・メッセージのSOAPヘッダー部分から取得されます。メッセージは、リクエスト(ネイティブTuxedoサービス)または応答(外部Webサービス呼出し)のいずれかになります。
outheader - 送信されるSOAPエンベロープ・メッセージのSOAPヘッダー部分に追加されます。メッセージは、応答(ネイティブTuxedoサービス)またはリクエスト(外部Webサービス呼出し)のいずれかになります。
inoutheader - inheaderとoutheaderの組合せ。このパラメータは、SOAPメッセージのSOAPヘッダー部分に追加されたり、そこから取得されたりします。
whitespace ws このパラメータがcollapseに設定され、タイプがstringの場合に、GWWSがTuxedoバッファとXMLデータのマッピングを実行すると、空白が結合され、次のようになります。
  • 文字列から空白文字が削除されます。
  • 行送り、タブ、空白および改行が空白に置き換えられます。
  • 先頭および末尾の空白が削除されます。
  • 複数の空白が1つの空白に削減されます。
( - 埋め込まれたFML32またはVIEW32バッファ・フィールドに含まれるパラメータの説明の開始を示します。

関連付けられた値は含まれず、1行に単独で指定されます。FML32またはVIEW32値でこのパラメータに前述のタイプ・キーワードが指定されている場合にのみ有効です。

閉じる右カッコ')'は、埋込みパラメータの説明を終了します。

) - 対応する左カッコ'('で開始した埋込みFML32またはVIEW32パラメータ定義を終了します。

関連付けられた値は含まれず、1行に単独で指定されます。前に対応する'('キーワードがある場合にのみ有効です。

また、埋込みの最大レベルは、埋込みFML32のネスト・レベルの上限(現在は18)によって決まります。

8.2.1.3 パラメータのオカレンス

一般的に適用されるOracle Tuxedoルールとして、(その情報構造により) FML/FML32VIEW/VIEW32X_COMMONおよびX_C_TYPEタイプのバッファのみが複数のパラメータを指定できます。他のすべてのタイプのバッファは、対応するパラメータ・タイプのパラメータを1つのみ持ちます。たとえば、CARRAYタイプのバッファには、そこに含まれる必要な情報を記述する1つのCARRAYタイプ・パラメータのみあります。アプリケーション・サービスを定義するにはこのルールに従う必要があります。

表8-4 サービス・バッファ・タイプ(大文字で開始)/サービス・パラメータ・タイプ(小文字)の対応表I

  byte (char) short integer long float double string
CARRAY - - - - - - -
FML X X X X X X X
FML32 X X X X X X X
STRING - - - - - - X
VIEW X X X X X X X
VIEW32 X X X X X X X
X_COMMON - X - X - - X
X_C_TYPE X X X X X X X
XML - - - - - - X
X_OCTET - - - - - - -
MBSTRING - - - - - - -

表8-5 サービス・バッファ・タイプ(小型英大文字)/サービス・パラメータ・タイプ(小文字)の対応表II

  bool Unsigned char Signed char Wchart Unsigned int Unsigned long Long long Unsigned long long Long double
VIEW X X X X X X X X X
VIEW32 X X X X X X X X X

表8-6 サービス・バッファ・タイプ(SMALL CAPS)/サービス・パラメータ・タイプ(小文字)の対応表III

  carray dec_t xml ptr fml32 view32 mbstring
CARRAY X - - - - - -
FML X - - - - - -
FML32 X - - X X X X
STRING - - - - - - -
VIEW X X - - - - -
VIEW32 X X - - - X X
X_COMMON - - - - - - -
X_C_TYPE - - - - - - -
XML - - X - - - -
X_OCTET X - - - - - -
MBSTRING X - - - - - X

8.3 Oracle Tuxedoサービス・メタデータ・リポジトリの構成

Oracle Tuxedoサービス・メタデータ・リポジトリを構成するには、次の操作が必要です:

  • UBBCONFIG(5)の*SERVERSセクションにTMMETADATAを追加します。
  • UBBCONFIGファイルでtmloadcf(1)を実行します。
  • tmloadrepos(1)を使用してサービス・パラメータ情報を作成し、メタデータ・リポジトリ・ファイルに入力します。
  • サーバーを起動します。

Oracle Tuxedoメタデータ・サーバーが実行されると、.TMMETAREPOSサービスが自動的にアクティブになります。.TMMETAREPOSはOracle Tuxedoシステム・サービスであり、変更できません。

サーバーに対して行われたすべてのリクエストは、先に到着したものから順に処理されます。

8.3.1 複数のOracle Tuxedoサービス・メタデータ・リポジトリ・サーバーの構成

特定のOracle Tuxedoノードで複数のTMMETADATAサーバーを設定するには、2つの重要な構成ルールに従う必要があります。

  • 一貫性のあるリクエスト結果を提供するために、各TMMETADATAサーバーは、同じメタデータ・リポジトリ・ファイルまたはファイルの正確なコピーにアクセスするように構成する必要があります。したがって、安定したバージョンのメタデータ・リポジトリを複数のTMMETADATAサーバー・アクセスで使用可能にすることを強くお薦めします。
  • 特定のノード上の複数のTMMETADATAサーバーに対して、権限設定を一貫して適用する必要があります(読取り専用または読取り/書込み)。

8.4 Oracle Tuxedoサービス・メタデータ・リポジトリ・ファイルへのアクセス

Oracle Tuxedoサービス・メタデータ・リポジトリは、サービス・メタデータ・リポジトリ・パラメータ情報を表示、更新、追加または削除するために、ネイティブおよびリモートのクライアント・アクセスを促進します。

  • ネイティブ・クライアントの場合のみtpgetrepos(3c)およびtpsetrepos(3c)がOracle Tuxedoサービス・メタデータ・リポジトリ・アクセスに使用されます。

    tpgetrepos(3c)およびtpsetrepos(3c)は、サーバーが起動されているかどうかにかかわらず、Oracle Tuxedoサービス・メタデータ・リポジトリにアクセスできます。

  • リモートおよびネイティブ・クライアントの場合は、TMMETADATA(5)を使用できます。

関連項目: