9 CORBAインタフェース・リポジトリの管理

次の各項では、Oracle Tuxedo CORBA環境について説明します:

ノート:

Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1から非推奨になり、Tuxedo 9.xからサポートされなくなりました。Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBのすべてのテキスト・リファレンスや関連するサンプル・コードなどは、次の場合にのみ使用してください:
  • サード・パーティのJava ORBライブラリの実装や実行に役立てる場合
  • プログラマが参照する場合

    サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。

9.1 概要

インタフェース・リポジトリには、Oracle Tuxedoドメインで実装されるCORBAオブジェクトのインタフェース記述が格納されています。インタフェース・リポジトリは、Oracle Tuxedo CORBAサーバー固有のツールを使用して管理します。これらのツールを使用すると、インタフェース・リポジトリを作成したり、OMG (Object Management Group)のIDL(インタフェース定義言語)の定義に準拠した設定を行ったり、インタフェースを削除したりできます。インタフェース・リポジトリ・サーバーをシステムに追加するには、アプリケーションのUBBCONFIGファイルにエントリを追加することが必要になる場合があります。

プログラミングの関連情報については、『CORBAプログラミング・リファレンス』を参照してください。

9.2 管理上の考慮事項

管理者は、インタフェース・リポジトリが必要かどうかを判断する必要があります。インタフェース・リポジトリは、すべてのシステムで必要なわけではないためです。インタフェース・リポジトリが必要な場合は、まずリポジトリ・データベースを作成し、必要な設定を行います。リポジトリ・データベースの作成と設定には、idl2irコマンドを使用します。インタフェース・リポジトリが必要な場合は、以下の点を確認してください。

  • 必要なインタフェース・リポジトリ・サーバーの数
  • インタフェース・リポジトリ・データベースをレプリケートするかどうか
  • インタフェース・リポジトリ・データベースへの共有アクセスを許可するかどうか
  • インタフェース・リポジトリの更新方法

システムには、1つ以上のインタフェース・リポジトリ・サーバーを構成できます。動的起動インタフェース(DII)を使用するクライアントがある場合は、少なくとも1つのインタフェース・リポジトリ・サーバーを構成する必要があります。

複数のサーバーを設定すると、パフォーマンスとフォルト・トレランスを高めることができます。パフォーマンスを向上させるには、インタフェース・リポジトリ・サーバーの数をDIIクライアントの数に基づいて決めます。また、フォルト・トレランスを高めるには、システムの構成と要求される障害耐久性のレベルに基づいて、インタフェース・リポジトリ・サーバーの数を決める必要があります。

複数のインタフェース・リポジトリ・サーバーが設定されたシステムでは、データベースをレプリケートするかどうか、データベースを共有するかどうか、またはそれらを両方とも行うかどうかを決定する必要があります。どちらの構成方法にもそれぞれメリットとデメリットがあります。インタフェース・リポジトリ・データベースをレプリケートすると、ローカル・ファイル・アクセスが可能になるので、パフォーマンスを向上できます。

しかし、レプリケートしたデータベースをどのように更新するかが重大な問題となります。すべてのデータベースは常に同一でなければならず、そのためにインタフェース・リポジトリ・サーバーの起動と停止が必要になります。インタフェース・リポジトリ・データベースをマウントして共有するとこの問題を解決できますが、パフォーマンスに影響し、シングル・ポイント障害が発生する可能性があります。複製と共有の2つの方法を組み合せることも可能です。

9.3 管理コマンドを使用してインタフェース・リポジトリを管理する

次のコマンドを使用して、Oracle Tuxedoドメインのインタフェース・リポジトリを管理します:

  • idl2ir
  • ir2idl
  • irdel

9.3.1 前提条件

コマンドを実行する前に、定義したパスに次のようなbinディレクトリがあることを確認します:

Windowsの場合
set path=%TUXDIR%\bin;%path%
UNIXの場合
Cシェル(csh)の場合: set path = ($TUXDIR/bin $path)
Bourne (sh)またはKorn (ksh)シェルの場合: PATH=$TUXDIR/bin:$PATH export PATH

環境変数を設定するには:

Windowsの場合
set var=value
UNIXの場合
Cシェルの場合: setenv var value
BourneおよびKornシェル(sh/ksh)の場合:
var=value 
export var

9.3.2 インタフェース・リポジトリを作成して設定する

idl2irコマンドを使用し、インタフェース・リポジトリを作成してリポジトリにインタフェース定義をロードします。リポジトリ・ファイルがない場合は、コマンドによって作成されます。リポジトリ・ファイルがある場合は、指定されたインタフェース定義がコマンドによってファイルにロードされます。このコマンドの形式は次のとおりです。
idl2ir [options] definition-filename-list
このコマンドの詳細は、Oracle Tuxedoのオンライン・マニュアルの『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。

ノート:

変更結果を確認するには、インタフェース・リポジトリ・サーバーを再起動する必要があります。

9.3.3 インタフェース・リポジトリの内容を表示または抽出する

インタフェース・リポジトリの内容を表示するには、ir2idlコマンドを使用します。このコマンドを使用して、複数のインタフェースのOMG IDLステートメントをファイルに抽出することもできます。このコマンドの形式は、ir2idl [options] [interface-name]です。このコマンドの詳細は、Oracle Tuxedoのオンライン・マニュアルの「セクション5 - ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス」を参照してください。

9.3.4 インタフェース・リポジトリからオブジェクトを削除する

インタフェース・リポジトリから指定したオブジェクトを削除するには、irdelコマンドを使用します。削除できるのは、他のインタフェースから参照されていないインタフェースだけです。デフォルトでは、リポジトリ・ファイルはrepository.ifrです。このコマンドの形式は次のとおりです。
irdel [-f repository-name] [-i id] object-name
このコマンドの詳細は、Oracle Tuxedoのオンライン・マニュアルの「セクション5 - ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス」を参照してください。

ノート:

変更結果を確認するには、インタフェース・リポジトリ・サーバーを再起動する必要があります。

9.4 1つ以上のインタフェース・リポジトリ・サーバーを起動するようにUBBCONFIGファイルを構成する

1つ以上のインタフェース・リポジトリを使用する各アプリケーションに対し、Tuxedo CORBAのインタフェース・リポジトリ・サーバーを1つ以上起動する必要があります。サーバー名はTMIFRSVRです。このTMIFRSVRのエントリを、アプリケーションのUBBCONFIGファイルのSERVERSセクションに追加します。デフォルトでは、TMIFRSVRサーバーは、APPDIR環境変数で指定された最初のパス名にあるインタフェース・リポジトリ・ファイルrepository.ifrを使用します。このデフォルト設定は、コマンド行オプション(CLOPT)パラメータで-f filenameオプションを指定してオーバーライドすることができます。次の例は、UBBCONFIGサンプル・ファイルのSERVERSセクションを示しています。この例では、アプリケーションのデフォルトのインストール先ディレクトリ($APPDIR)にあるデフォルト・ファイルrepository.ifrを使用するかわりに、別のファイルと場所(/usr/repoman/myrepo.ifr)を指定しています。

ノート:

この例では、Oracle Tuxedo CORBAアプリケーションでサーバーの起動順序が重要であることを示すため、他のサーバー・エントリも記載しています。この順序に従わないと、Oracle Tuxedo CORBAアプリケーションは起動しません。

詳細は、「構成ファイルの作成」の「CORBA C++サーバーの起動順序」という項を参照してください

インタフェース・リポジトリ・サーバーのTMIFRSVRは、5番目に起動されます。

*SERVERS 
# Start the Oracle Tuxedo System Event Broker 
TMSYSEVT 
    SRVGRP = SYS_GRP 
    SRVID = 1 

# Start the NameManager (master) 
    SRVGRP = SYS_GRP 
    SRVID = 2 
    CLOPT = "-A -- -N -M" 

# Start the NameManager (slave) 
TMFFNAME 
    SRVGRP = SYS_GRP 
    SRVID = 3 
    CLOPT = "-A -- -N" 

# Start the FactoryFinder (-F)
TMFFNAME 
    SRVGRP = SYS_GRP 
    SRVID = 4 
    CLOPT = "-A -- -F" 
# Start the interface repository server 
TMIFRSVR 
     SRVGRP = SYS_GRP 
     SRVID = 5
     RESTART=Y 
     MAXGEN=5 
     GRACE=3600 
     CLOPT="-A -- -f/usr/repoman/myrepo.ifr"

TMIFRSVR -f filenameパラメータの詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。TMIFRSVRパラメータには、CLOPT -f filenameパラメータに加え、アプリケーションのUBBCONFIG構成ファイルのSERVERSセクションで、その他のパラメータ(Oracle Tuxedoシステム固有ではないパラメータ)を設定することもできます。

SRVGRP、SRVID、RESTART、MAXGENGRACEなどのパラメータの詳細は、「構成ファイルの作成」「構成ファイルのSERVERSセクションの作成方法」を参照してください。