1 アプリケーションの起動と停止

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

1.1 アプリケーションの起動と停止に必要なタスク

次の図に、Oracle Tuxedoアプリケーションの起動と停止に必要なタスクを示します。

タスク名をクリックすると、そのタスクの実行方法が表示されます。

図1-1 起動と停止のタスク

図1-1 起動と停止のタスク


起動と停止のタスク

1.2 環境変数の設定

Oracle Tuxedoアプリケーションを管理するには、Oracle Tuxedoの実行可能ファイルおよびデータ・ライブラリにアクセスできなければなりません。アプリケーションの起動と停止に必要なコマンドは%TUXDIR%\bin (Windowsホスト・マシンの場合)および$TUXDIR/bin (UNIXホスト・マシンの場合)に格納されています。

1.2.1 Windowsの場合

Windowsホスト・マシンの環境を設定するには、コマンド・プロンプトで次のコマンドを入力します。

set TUXCONFIG=path_name_of_TUXCONFIG_file 
set TUXDIR=path_name_of_Oracle_Tuxedo_system_root_directory
set APPDIR=path_name_of_Oracle_Tuxedo_application_root_directory
set PATH=%APPDIR%;%TUXDIR%\bin;%PATH% 

斜体の文字列は、インストール先の適切な絶対パス名に置き換えてください。

Windowsは、PATH変数設定を介して、動的にロード可能な必須のライブラリ・ファイルにアクセスします。具体的には、次の順序で動的に読込み可能なライブラリ・ファイルが検索されます。

  1. Oracle Tuxedoアプリケーションのインストール元ディレクトリ
  2. 現在のディレクトリ
  3. Windowsシステム・ディレクトリ(C:\Win2003\System32など)
  4. Windowsディレクトリ(C:\Win2003など)
  5. PATH環境変数に設定されているディレクトリ

1.2.2 UNIXの場合

UNIXホスト・マシンの環境を設定するには、次のように環境変数を設定し、エクスポートします。

TUXCONFIG=path_name_of_TUXCONFIG_file 
TUXDIR=path_name_of_Oracle_Tuxedo_system_root_directory 
APPDIR=path_name_of_Oracle_Tuxedo_application_root_directory 
PATH=$APPDIR:$TUXDIR/bin:/bin:$PATH 
LD_LIBRARY_PATH=$APPDIR:$TUXDIR/lib:/lib:/usr/lib:$LD_LIBRARY_PATH 
export TUXCONFIG TUXDIR APPDIR PATH LD_LIBRARY_PATH
プラットフォーム 変更
HP-UX (HP 9000) LD_LIBRARY_PATHのかわりにSHLIB_PATHを使用します
RS/6000 (AIX) LD_LIBRARY_PATHのかわりにLIBPATHを使用します

斜体の文字列は、インストール先の適切な絶対パス名に置き換えてください。

ノート:

アプリケーション管理者は、UBBCONFIGファイルのMACHINESセクションで、TUXCONFIGTUXDIR、およびAPPDIRの3つの環境変数を定義するか、またはアプリケーション内の各マシンに対してTM_MIBT_MACHINEクラスを定義してください。これらの環境変数の詳細は、UBBCONFIG(5)またはTM_MIB(5)を参照してください。

1.3 TUXCONFIGファイルの作成

各Oracle Tuxedoドメインは、構成ファイルによって制御され、インストール時の設定に基づくパラメータが定義されています。テキスト形式の構成ファイルはUBBCONFIGと呼ばれます。バイナリ形式のUBBCONFIGファイルは、TUXCONFIGと呼ばれます。UBBCONFIGファイルと同じように、TUXCONFIGファイルにも任意の名前を付けることができます。実際の名前は、TUXCONFIG環境変数で指定されたデバイスまたはシステム・ファイル名です。

tmloadcf(1)コマンドは、テキスト形式の構成ファイルをTUXCONFIGと呼ばれるバイナリ形式のファイルに変換し、TUXCONFIG変数で指定されている位置に書き込みます。次のようにコマンドを実行します。

$ tmloadcf [-n] [-y] [-c] [-b blocks] {UBBCONFIG_file | - }

ノート:

このコマンドを実行するには、MASTERマシンにログインして、構成ファイルのオーナーとしての有効なユーザーIDを取得する必要があります。

各オプションの機能は、次のとおりです。

  • -n オプションは、構文チェックのみを行い、エラーを報告します
  • -yオプションは、既存のTUXCONFIGファイルを上書きします。オーバーライドするかどうかの確認は行いません
  • -cオプションは、構成のIPC (プロセス間通信)リソースの最小値を計算します。
  • -bオプションは、TUXCONFIGファイルのサイズを制限します

-cおよび-nオプションを使用すると、TUXCONFIGファイルはロードされません。IPC資源はプラットフォームに固有です。-cオプションを使用する場合は、『Oracle Tuxedoインストレーション・ガイド』に記載されているご使用のプラットフォーム用データシートを確認して変更を加える必要があるか判断します。IPC資源を変更する必要がある場合は、ご使用のプラットフォームの管理者ガイドを確認してください。-nオプションにより、構成ファイルの構文エラーが見つかった場合は、エラーを修正してから作業を進めてください。(なお、UBBCONFIG_fileには、構成ファイルの完全修飾名を指定します。)

-bオプションには、引数として、TUXCONFIGファイルを格納するためのブロック数の制限値を指定できます。初期化されていないrawディスク・デバイスにTUXCONFIGをインストールする場合は、このオプションを使用してください。TUXCONFIGが通常のUNIXシステム・ファイルに格納されている場合、このオプションはお薦めできません。

1.4 全サイトでのtlistenの起動

ネットワーク・アプリケーションを実行するには、リスナー・プロセスを各マシン上で実行している必要があります。ネットワーク・アプリケーションとは、複数のマシン上で稼働するアプリケーションであり、UBBCONFIGファイルのRESOURCESセクションにあるMODEL MPパラメータで設定します。

ノート:

TUXDIRTUXCONFIGAPPDIRおよびその他の関連する環境変数を定義してから、tlistenを起動してください

プロセスが接続をリスニングするポートは、構成ファイルのNETWORKセクションにあるNLSADDRで指定されているポートと同じである必要があります。各マシン上で、tlisten(1)コマンドを次のように使用します。

tlisten [ -d device ] /> -l nlsaddr [-u {uid-# | uid-name}] [ -z bits ] [ -Z bits ]

例: tlisten -l //machine1:6500

tlistenのコマンド・オプション:

  • - dデバイス - ネットワーク・デバイスのフルパス名。Oracle Tuxedoのリリース6.4以降では、このオプションは省略可能です。Oracle Tuxedoシステムの以前のバージョン(リリース6.3以前)では、TCP/IPなど一部のネットワーク・プロバイダでこの情報が必要になります。
  • -l nlsaddr - プロセスが接続をリスニングするネットワーク・アドレス。TCP/IPアドレスは次の形式で指定します。
    "//hostname:port_number
    "//#.#.#.#:port_number"

最初の例では、tlistenはローカル名を解決する手法(通常はDNS)を使用してhostnameのアドレスを検索します。hostnameにはローカル・マシン名を指定し、ローカル名解決機能でhostnameがローカル・マシンのアドレスに明確に解決されなければなりません。

2番目の形式の場合、#.#.#.#にはドット区切りの10進数を指定します。ドット区切りの10進数形式では、それぞれの#に0から255の数字を指定します。このドット区切りの10進数は、ローカル・マシンのIPアドレスを表します。どちらの形式の場合も、port_numberにはtlistenプロセスが接続リクエストの受信をリスニングするTCPポート番号を指定します。port_numberには、0 - 65535までの数字または名前を指定します。port_numberが名前の場合は、ローカル・マシンのネットワーク・サービス・データベースになければなりません。アドレスは、先頭に0xをつけ、16進形式で指定することもできます。先頭の0xに続く文字として、0 - 9までの数字か、またはAからFまでの文字(大文字と小文字は区別しない)を指定できます。IPX/SPXTCP/IPのような任意のバイナリ・ネットワーク・アドレスには、16進数の形式が便利です。アドレスはまた、任意の文字列として指定することもできます。値は、構成ファイル内のNETWORKセクションのNLSADDRパラメータに指定された値と同じでなければなりません。

tmloadcf(1)は、nlsaddrMASTER LMIDのエントリから欠落している場合は警告を出力し、これ以外のエントリから欠落している場合はエラーを出力します。ただし、nlsaddrMASTER LMIDエントリから欠落している場合には、tmadmin(1)をリモート・マシンから管理者モードで実行することはできません。可能な処理は、読取り専用操作に限定されています。これは、MASTERサイトで障害が発生しても、バックアップ・サイトから再起動できないことも意味します。

  • -u uid-#またはuid-name - ユーザーを指定してtlistenプロセスを実行する場合に使用します。このオプションは、リモート・マシンのrootでtlisten(1)コマンドを実行する場合に必要です。
  • -z [bits] - Oracle Tuxedoシステムの管理プロセスとtlistenとの間のネットワーク・リンクを確立する場合に必要な最低レベルの暗号化を指定します。ゼロ(0)は、暗号化が行われないことを示し、56および128は暗号化キーの長さ(ビット単位)を指定します。ここで指定する最小レベルの暗号化が満たされない場合、リンクの確立は失敗します。デフォルトは、0です。
  • -Z [bits] - Oracle Tuxedoシステムの管理プロセスとtlistenとの間のネットワーク・リンクを確立する場合に可能な最大レベルの暗号化を指定します。ゼロ(0)は、暗号化が行われないことを示し、56および128は暗号化キーの長さ(ビット単位)を指定します。デフォルトは128です。

1.5 アプリケーション固有のディレクトリとファイルを手動で伝播する

tmboot(1).を実行すると、構成内のすべてのマシンにTUXCONFIGが自動的に伝播されますただし、手動で伝播しなければならないファイルもあります。次の表は、ネットワーク・アプリケーションに必要なファイルとディレクトリの一覧です。まず、Oracle Tuxedoシステムをマシンにインストールしてください。

ノート:

tlistenプロセスは、アプリケーションを起動する前に、ネットワーク接続されたOracle Tuxedoアプリケーションの各マシンで起動する必要があります。詳細は、tlisten(1) を参照してください。TUXDIRTUXCONFIGAPPDIRおよびその他の関連する環境変数を定義してから、tlistenを起動してください
次の表に、伝播するディレクトリとファイルを示します。
ディレクトリ/ファイル 説明
APPDIR 各ノードに対して、APPDIR 変数に指定した名前のディレクトリを作成する必要があります。すべてのノードで同じディレクトリ・パス名を使用すると便利です。
Executables プラットフォームごとにアプリケーション・サーバーのセットを1つ作成し、プラットフォームで実行中のほかのすべてのマシンには、適切なアプリケーション・サーバーのセットを手動で伝播する必要があります(これは自動的には行われません)。実行可能ファイルはAPPDIR変数で指定したディレクトリに格納するか、または構成ファイルのMACHINESセクションのENVFILESにあるPATH変数で指定されたディレクトリに格納します。
フィールド表 VIEW表 バッファ型としてFMLまたはVIEWSを使用する場合は、これらのバッファ型を使用するマシンにフィールド表とVIEW記述ファイルを手動で伝播し、再コンパイルする必要があります。フィールド表ファイルからヘッダー・ファイルを作成するにはmkfldhdr、mkfldhdr32(1)を使用します。VIEWファイルをコンパイルするにはviewcs、viewcs32(1)を使用します。FMLフィールド表およびVIEW記述ファイルは、環境変数のFLDTBLDIRFIELDTBLSVIEWDIRVIEWFILES、またはこれらの32ビット版を通じて使用できます。

1.6 TLOGデバイスの作成

分散トランザクション処理を作成するには、トランザクションに参加するマシンにグローバル・トランザクション・ログ(TLOG)を作成する必要があります。TLOGを定義するには、次のステップに従います。

  1. 最初に、構成ファイルのMACHINESセクションで、TLOGDEVICETLOGOFFSETTLOGNAMEおよびTLOGSIZEパラメータを設定する必要があります
  2. トランザクションに参加する各マシンに対して、TLOGDEVICEの汎用デバイス・リスト(UDL)のエントリを作成する必要もあります。(このタスクは、TUXCONFIGをロードする前でも後でもかまいませんが、システムを起動する前に行う必要があります。)TLOGデバイス用のエントリをUDLに作成するには、アプリケーションを起動していない状態のMASTERマシンでtmadmin -cを実行します。(-cオプションを指定すると、構成モードでtmadminが呼び出されます。)
  3. 次のコマンドを入力します:

    crdl -z config -b blocks

    -z configには、UDLが作成されるデバイス(TLOGの常駐先デバイス)のフル・パス名を指定します。-b blocksには、デバイスに割り当てるブロック数を指定します。configの値は、MACHINESセクションのTLOGDEVICEパラメータの値と一致する必要があります。ブロック数は、TLOGSIZEより大きくなければなりません。 -zを指定しない場合は、デフォルトとして config の値に変数FSCONFIGの値(アプリケーションのデータベースを指す)が使用されます。

  4. グローバル・トランザクションに参加する各マシンで、ステップ1と2を繰り返します。

    TLOGDEVICEが2つのマシン間でミラーリングされる場合は、片方のマシンに対してステップ4を実行する必要はありません。TLOGを障害から回復できるようにするには、TLOGをミラーリング可能なデバイス上に配置する必要があります。TLOGは、ディスク・パーティション全体を割り当てるほど大きくないため(通常は100ページ程度)、一般にはOracle Tuxedo /Qデータベースと同じrawディスク・スライスに格納されます。

1.7 アプリケーションの起動

すべての前提条件が整ったら、tmbootを使用してアプリケーションを起動できます。tmboot(1).を実行できるのは、TUXCONFIGファイルを作成した管理者のみです

アプリケーションは通常、構成ファイルのRESOURCESセクションでMASTERとして指定されたマシン、またはMASTERマシンとして動作するBACKUPマシンから起動します。これ以外のマシンから起動する場合は、-bオプションを使用します。tmbootの実行時に実行可能ファイルが検索されるようにするには、BBLなどのOracle Tuxedoシステムのプロセスが$TUXDIR/binになければなりません。アプリケーション・サーバーは、構成ファイルのAPPDIR変数で定義されたディレクトリになければなりません。

tmbootは、アプリケーション・サーバーの起動時に、構成ファイルのCLOPTSEQUENCESRVGRPSRVIDおよびMINパラメータを使用します。SEQUENCEオプションを指定した場合、アプリケーション・サーバーはSEQUENCEパラメータに指定された順序で起動します。SEQUENCEを指定しない場合、サーバーは構成ファイルに記述されている順序で起動します。コマンド行の形式は、以下のとおりです。

$ tmboot [-g grpname ] [-o sequence ] [-S] [-A] [-y]

次の表に、 tmbootオプションを示します。

オプション 関数
-g grpname このgrpnameパラメータを使用して、グループ内のすべてのTMSとアプリケーション・サーバーを起動します。
-o sequence SEQUENCEパラメータで指定された順序ですべてのサーバーを起動します。
-s server-name サーバーを個別に起動します。
-S SERVERSセクションに記述されているすべてのサーバーを起動します。
-A MACHINESセクションに記述されているマシンのすべての管理サーバーを起動します。このオプションにより、DBBL、BBL、およびBRIDGEプロセスは、正しい順序で開始されるようになります。
-y 管理サーバーとアプリケーション・サーバーをすべて起動するかどうかを確認するプロンプトに対し、自動的に「はい」でレスポンスします。このプロンプトは、コマンドのスコープを制限するオプション(-g grpnameなど)を指定しない場合にのみ表示されます。

ノート:

tmbootオプションの完全なリストについては、tmboot(1)を参照してください。

1.7.1 小規模アプリケーション(マシン2台による構成)でtmbootを実行する

構成全体を起動するには、次のコマンドを入力します。

prompt>tmboot -y

tmbootを実行すると、次のタスクが実行されます。

次の図は、小規模アプリケーションの起動手順(デフォルト)を示しています

図1-2 小規模アプリケーションの起動手順(デフォルト)


小規模アプリケーションの起動手順(デフォルト)

1.7.2 大規模アプリケーション(50台を超えるマシン構成)でtmbootを実行する

大規模アプリケーション(50台を超えるマシン構成)の場合は、tmbootは1つのステップですべてのマシンを起動します。デフォルト・シーケンス(マシン2台の構成の場合)のすべてのステップは実行しません。図1-3は、最適化された一連のタスクを示しています。

次の図は、大規模アプリケーションの起動手順を示しています

図1-3 大規模アプリケーションの起動手順


大規模アプリケーションの起動手順

ノート:

この起動手順では、システム・メッセージの数が大幅に少ないため、大規模アプリケーションをより高速に処理できます。この方法では、起動にかかる時間を50%短縮できます。ネットワークの速度が遅い構成では、MASTERマシンに高速で接続できるマシンを最初に起動することにより、起動時間を短縮できます。

1.8 アプリケーションの停止

tmshutdown(1)コマンドを使用して、Oracle Tuxedoアプリケーションの一部または全体を停止します。このコマンドの使用上の規則は、tmboot(1)と似ています。tmshutdowntmbootとは逆の処理を行います。

アプリケーション全体が停止すると、tmshutdownはOracle Tuxedoシステムに関連付けられたIPCリソースを削除します。起動する範囲を指定するためのtmbootのオプション(-A、-g、-I-S-l -M-B )は、tmshutdownでも使用できます。MASTERマシン以外からtmbootを使用するための -bオプションは、tmshutdownではサポートされていません。つまり、tmshutdownコマンドは、必ずMASTER (またはBACKUP MASTER)マシンで実行する必要があります。

サーバーを移行するには、-Rオプションを使用します。このオプションは、掲示板のエントリを削除せずにサーバーを停止します。マシンが分断されている場合、tmshutdown-P LMIDオプションを指定して、分断されたマシン上で実行することにより、そのマシン上のサーバーを停止することができます。

tmshutdownを実行しても、クライアントの接続先であるマシンの管理サーバーのBBLは停止しません。ただし、-c オプションを使用すると、この特性をオーバーライドできます。直ちにマシンを停止する必要がある場合や、クライアントと通信できない場合に、このオプションを使用してください。

-w delayオプションを使用すると、delayで指定した秒数が経過した後で強制的に停止を実行できます。このオプションにより、すべてのサーバーが直ちに中断されます。以降の作業がキューに登録されることはありません。delayには、キューに登録済のリクエストを処理するための時間を指定します。delayで指定した秒数が経過するとSIGKILL信号がサーバーに送られます。管理者はこのオプションを使用して、アプリケーション・コードでループ状態にあるかまたはブロックされているサーバーを停止することができます。

1.8.1 tmshutdownの実行

tmshutdown(1).を実行できるのは、TUXCONFIGファイルを作成した管理者のみですアプリケーションの停止は、構成ファイルでMASTERとして指定されているマシンからのみ実行できます。BACKUPマシンがMASTERマシンとして動作している場合、停止プロセスでは、このマシンがMASTERマシンと見なされます。ただし、分断されたマシンは例外です。-pオプションを使用すると、管理者は分断されたマシンからtmshutdownコマンドを実行して、そのサイトのアプリケーションを停止できます。

アプリケーション・サーバーは、SEQUENCEパラメータで指定されている、または構成ファイルにリストされている順序とは逆の順序で停止します。SEQUENCEで順序が指定されたサーバーと、順序が指定されていないサーバーが混在する場合、まず番号が指定されていないサーバーが停止し、次にSEQUENCE番号が指定されたアプリケーション・サーバーが(逆の順序で)停止します。最後に、管理サーバーが停止します。

アプリケーションが停止すると、Oracle Tuxedoシステムが割り当てたIPCリソースはすべて削除されます。tmshutdownにより、DBMSが割り当てたIPCリソースが削除されることはありません。

1.8.2 アプリケーションが正常に停止できない場合にIPCツールを使用する

IPC資源とは、メッセージ・キュー、共有メモリー、セマフォなどのオペレーティング・システムの資源のことです。tmshutdownコマンドを使ってOracle Tuxedoアプリケーションが正常に停止すると、Oracle Tuxedoアプリケーションで使用されるIPCリソースは、すべてシステムから削除されます。ただし、アプリケーションが正常に停止せず、システムにIPC資源が残る場合もあります。これが起こると、アプリケーションを再起動できなくなることがあります。

この問題の解決策として、IPCSコマンドを実行するスクリプトを使用してIPCリソースを削除し、特定のユーザーが保有するすべてのIPCリソースをスキャンする方法があります。しかし、この方法ではIPC資源の識別が困難です。たとえば、特定のOracle Tuxedoアプリケーションに属する資源か、Oracle Tuxedoシステムとは無関係の資源かを識別することができません。誤ってIPC資源を削除するとアプリケーションが破損する可能性があるため、資源の種類を識別できることは重要です。

Oracle TuxedoのIPCツール(tmipcrm(1)コマンド)を使用すると、実行中のアプリケーションでOracle Tuxedoシステムによって割り当てられているIPCリソース(コア・システムとWorkstationコンポーネントのみ)を削除できます。

IPCリソースを削除するコマンド tmipcrm(1)は、TUXDIR/binに格納されています。 このコマンドは、バイナリ形式の構成ファイル(TUXCONFIG)を読み込み、このファイルの情報を使用して掲示板に書き込みます。tmipcrmを使用できるのは、ローカル・サーバー・マシンに対してのみです。Oracle Tuxedoの構成のリモート・マシンにあるIPCリソースは削除できません。

このコマンドを実行するには、次のコマンド行を入力します。

tmipcrm [-y] [-n] [code]

IPCツールを使用すると、Oracle Tuxedoシステムで使用されるすべてのIPC資源を一覧表示したり、IPC資源を削除することができます。

ノート:

このコマンドは、TUXCONFIG環境変数を正確に設定するか、またはコマンド行で適切なTUXCONFIGファイルを指定しないと利用できません。

/QのIPCリソースを削除するには、qmadmin(1) ipcrmコマンドを使用します。