4. Recovery Coordination Server(RCS)の運用管理

 RCSを利用したトランザクションシステムの運用を管理するために、WebOTX Transaction Serviceはコンソール上で動作する運用管理コマンドを提供します。運用管理コマンドにより、次の管理を行うことができます。ここでは次のトピックスについて説明します。

詳細な説明については、[ C. コマンドリファレンス ]を参照してください。

 

 
4.1 構成情報

WebOTX Transaction Serviceを動作させるためには各種構成情報を設定する必要があります。

 

4.1.1. 構成情報の格納位置について

  構成情報はファイルに格納しています。 構成情報はWebOTX Transaction Serviceを管理するサービスためのrcd.conf、RCS全体の構成情報を格納するrcs.confファイル、及び各RCS、およびProxyRCSの構成情報を格納する"RCSID名".rcsからなります。

 このRCSID名は、16文字以内の英数字にする必要がありますので注意してください。

構成情報の設定はこれらの内容直接編集することで行います。ファイルの形式については[ A. Recovery Coordination Server(RCS)で使用する構成情報設定ファイル ]で詳細に説明します。

  rcd.confとrcs.confファイルは基本的な構成情報が設定されます。インストール時に自動的に設定されているため基本的には書き換える必要はありません。これらのファイルはHP-UX版、Solaris版、Linux版では/etc/WebOTX/TSディレクトリ配下に、 Windows版では"WebOTXがインストールされたディレクトリ"\TS\confディレクトリ配下に格納されます。

  トランザクションサービスを使用するにあたり、トランザクションサービスのルートディレクトリを設定する必要があります。これはrcd.confファイルのRootDirパラメータで設定されます。インストール直後はHP-UX版、Solaris版、Linux版では/var/opt/WebOTX/TSに、Windows版では、"WebOTXがインストールされたディレクトリ"\TSに設定されています。以後このディレクトリをTSルートディレクトリと呼びます。

  RCS、およびProxyRCSの構成情報を格納するファイルは"RCSID名".rcsという名前で管理されます。このファイルはTSルートディレクトリ下のconfディレクトリの配下に置く必要があります。

  database1.datファイルには、WebOTX Transaction Serviceで使用するデータベース設定情報を格納します。database1.datの格納位置は、rcs.confファイルのConfDirパラメータで設定します。ConfDirパラメータが設定されていない場合は、HP-UX版、Solaris版、Linux版では/var/opt/WebOTX/TS/logディレクトリ配下に、 Windows版では"WebOTXがインストールされたディレクトリ"\TS\logディレクトリ配下に格納されます。 インストール後に運用管理コマンド(wotsdbconfjwotsdbconfcwotsdbconfap)を使用して、データベース情報の登録を行うとdatabase1.datが作成されます。このファイルに格納されているデータベース情報は、運用管理コマンド(wotsdbconfjwotsdbconfcwotsdbconfap)を使用して更新します。また、運用管理コマンドでデータベース情報の登録を行う前に、RCSを起動した場合は、空のdatabase1.datファイルが作成されます。

 

4.1.2. 構成情報のバックアップ

バックアップに必要なファイルは以下の四種類のファイルです。

・サービスの構成情報(rcd.conf)

・RCS共通の構成情報(rcs.conf)

・各RCS、ProxyRCS構成情報([RCSID].rcs)

・データベース構成情報(database1.dat)

保存された情報で構成情報を復旧するには、これらのファイルを元のディレクトリにコピーしてください。また、構成情報の他にトランザクションの状態を保存しているファイル等もバックアップする必要が出てくる場合があります。その方法については「WebOTX Transaction Service セットアップ編」の「6.1 環境の退避」を参照してください。

 

4.2 パスワードの管理

WebOTX Transaction Serviceの運用管理を行うにはパスワードが必要となります。各種運用管理コマンドはパスワードを取得しサーバ側に送り、サーバ側でコンピュータに設定されているパスワードとの比較を行い一致していない場合は コマンドの実行が失敗します。

インストール直後はWebOTX_Sというパスワードがデフォルト値として設定されています。これらのパスワードはRecoveryServerを使用する場合と同じパスワードが使用されます。パスワードの設定方法については[ Transactionサービス運用編(リカバリサーバ利用時) > 4.2.3.パスワードの管理 ]を参照してください。

 

4.3 トランザクションサービスのための構成情報

  Transaction Serviceを管理するサービスを動作させるために必要となる基本的な構成情報はrcd.confという名前のファイルに格納されます。このファイルの設定項目はトランザクションサービスが動作するディレクトリと、TCP/IPのポート番号からなります。 設定項目については[ A.2. 管理サービスの構成 ]も参照してください。

トランザクションサービスが動作するディレクトリ

  インストールが完了すると動作するディレクトリはWindows版では"WebOTX Transaction Serviceインストールディレクトリ"に、UNIX版では/var/opt/WebOTX/TSに設定されているため基本的には変更する必要がありません。ディレクトリを変更した場合必ず 指定したディレクトリ配下にconfディレクトリとlogディレクトリを作成する必要があります。 このディレクトリに対してトランザクションサービスは読み込みや書き込みを行うため必要な権限を設定する必要があります。confディレクトリの配下には、RCSの構成情報ファイルを格納しておきます。このディレクトリに配置することでトランザクションサービス で使用可能になります。RCSIDはファイル名として扱われるためWindowsでは大文字、小文字の区別が行われません。そのためrcsid1とRCSID1は同じとみなされるため同時に設定することはできません。

ポート番号

  各種運用管理を提供するためにサービスはIIOPを使用して通信を行います。そのためサービスは通信のためにTCP/IPのポートを使用してリクエストの待ち合わせを行います。このとき5946のポート番号を使用します。既にこのポート番号が他のソフトウェアで使用されている場合は、他のポート番号に変更する必要があります。なお、インストール時にはこの項目は設定されていません。その場合は既定値の5946が使われます。

  これらの構成情報をサービスを起動する前に設定しておく必要があります。サービスを起動している最中に設定を変更した場合、既に動作しているサービスには反映されません。そのためサービスを一旦停止した後に再度起動する必要があります。サービス再起動後、wotssetrefコマンドを使用して再度オブジェクトリファレンスを名前サーバに登録する必要があります。

 

4.4 RCSの構成情報

  RCSの構成情報には、各コンピュータに特化した共通な構成情報と、各トランザクションを制御するために必要になるRCS、およびProxyRCSの構成情報の二つからなります。

 

4.4.1 RCS共通の構成情報

  RCSを動作させる基本的な構成情報がrcs.confになります。このファイルの設定項目は、Java VMへのパスやclasspathなどそのコンピュータに特化した情報を設定します。なお、ここに設定する必要のあるものはJava関連のもののみです。C++関連の項目については設定する項目はありません。設定項目の詳細については[ A.3. RCS共通の構成 ]を参照してください。

  Java VMのパスはインストール時に設定されています。HP-UX版では/opt/java1.4/bin/java、Solarisでは/usr/j2se/bin/java、Linuxでは/usr/java/j2sdk1.4.1_02/bin/java になっています。Windows版についてはインストール時既にインストールされているJava VMを検出してそのパスを設定します。 見つからない場合はOSがインストールされているドライブの\jdk1.3.1_02\bin\java.exeが設定されます。Java VMがこれらと異なる場合はインストールされているパスを設定してください。

  classpathにはObject BrokerとWebOTX Transaction Serviceで使用するjarファイルがWebOTX Transaction Serviceインストール時に自動的に設定されます。このclasspathに使用するDBのJDBCドライバを追加する必要があります。

  rcs.confファイルを変更した場合、変更内容はトランザクションサービスを停止することなく反映させることができます。 次のようにwotschcnfコマンドを実行します。

 % wotschcnf -l

  ただしこれはサービスの状態変更であるため、現在動作中のRCSには影響を与えません。このコマンドを実行した後に開始したRCSから有効になります。

 

4.4.2 各RCSの構成情報

RCS、およびProxyRCSが実際のトランザクションを処理する際に必要となるタイムアウト時間やリトライ間隔、スレッド数などのプロセスに固有の情報を定義します。設定項目については[ A.4. 各RCSの構成 ]を参照してください。

ポート番号は他のプロセスと重複しないように設定する必要があります。既定値は5964ですが重複する場合は必ず変更する必要があります。

システム立ち上げ時など、サービスが起動時にRCSを自動的に起動することができます。これはStartUpの値を設定することで変更することができます。既定値では自動起動となっているため、自動起動しない場合はこの値を変更する必要があります。

 

4.5 データベースの設定(Java)

Javaでトランザクション実行時に使用するデータベース情報は、JDBC DataSourceのプロパティに設定された値が使用されます。ここでは、トランザクションのリカバリ時にWebOTX Transaction Serviceが使用するデータベース情報の設定方法について説明します。

コマンドの使用方法については、運用管理コマンドの使用方法を参照願います。

 

4.5.1 データベース情報の登録

トランザクションサービスで使用するデータベース情報を新規に登録するには、"トランザクションサービスのルートディレクトリ"/conf ディレクトリ配下にあるdb_sample.confをもとに、使用するデータベースのためのデータベース情報の定義ファイルを作成します。

データベース情報定義ファイル作成後、wotsdbconfjコマンドを使用してファイルに記述されているデータベース情報を設定します。 データベース情報定義ファイル template-fileに定義されているデータベースを設定する場合、次のように指定します。

  Windows
  % wotsdbconfj -f template-file
  UNIX
  % wotsdbconfj.sh -f template-file

動作中のRCSに新規にデータベース情報を追加する場合は、wotsdbadmコマンドのregisterを使用して、上記で登録したデータベース識別名をRCSに通知してください。

 

4.5.2 データベース情報の削除

登録されているデータベース情報を削除する場合、wotsdbconfjコマンドを使用してデータベース情報を削除します。

データベース識別名database1を削除する場合、次のように指定します。

  Windows
  % wotsdbconfj -u -d database1
  UNIX
  % wotsdbconfj.sh -u -d database1

動作中のRCSからデータベース情報を削除する場合は、wotsdbadmコマンドのunregisterを使用して、上記で削除したデータベース識別名を通知してください。

 

4.5.3 データベース情報の更新

登録されているデータベース情報を更新する場合、新規登録時に使用したデータベース情報の定義ファイルを使用し全体を更新するか、wotsdbconfjコマンドの-a オプションを使用してデータベース識別名毎にデータベース情報を更新します。

データベース情報定義ファイルを使用して更新する場合、定義ファイル中の全てのデータベース情報が更新対象となります。このため、全てのデータベース情報について、誤りや重複がないかご確認ください。

データベース情報定義ファイルsample.confを使用する場合、次のように指定します。

  Windows
  % wotsdbconfj -f sample.conf
  % wotsdbconfj -a
  UNIX
  % wotsdbconfj.sh -f sample.conf
  % wotsdbconfj.sh -a

動作中のRCSで使用しているデータベース情報を更新する場合は、上記でデータベース情報を更新した後に、wotsdbadmコマンドのregisterを使用して上記で更新したデータベース識別名を通知してください。

 

4.5.4 データベース情報の一覧表示

 定義済みのデータベース情報を一覧表示する場合は、次のように指定します。

  Windows
  % wotsdbconfj [-l] list
  UNIX
  % wotsdbconfj.sh [-l] list

このコマンドを実行すると、定義されている全データベース情報の一覧が表示されます。-l オプションを省略した場合は、データベース識別名の一覧が表示され、-l オプションを指定した場合は、登録されている全ての情報の一覧が表示されます。

動作中のRCSで使用しているデータベース情報一覧を表示する場合は、wotsdbadmコマンドのstatusを使用してください。

 

4.6 データベースの設定(C++)

C++でアプリケーションがトランザクション実行時に使用するデータベース情報は、 データベースの設定(AP)で設定された情報が使用されます。ここでは、Transaction Serviceがトランザクションのリカバリを行う際に使用するデータベース情報の設定方法について説明します。

コマンドの使用方法については、運用管理コマンドの使用方法を参照願います。

 

4.6.1 データベース情報の登録

トランザクションサービスで使用するデータベース情報を新規に登録するには、"トランザクションサービスのルートディレクトリ"/conf ディレクトリ配下にあるdb_rcm.confをもとに、使用するデータベースのためのデータベース情報の定義ファイルを作成します。

データベース情報定義ファイル作成後、wotsdbconfcを使用してファイルに記述されているデータベース情報を設定します。 データベース情報定義ファイル template-fileに定義されているデータベースを設定する場合、次のように指定します。

  Windows
  % wotsdbconfc -f template-file
  UNIX
  % wotsdbconfc.sh -f template-file

動作中のRCSに新規にデータベース情報を追加する場合は、wotsdbadmコマンドのregisterを使用して、上記で登録したデータベース識別名を通知してください。

 

4.6.2 データベース情報の削除

登録されているデータベース情報を削除する場合、wotsdbconfcコマンドを使用してデータベース情報を削除します。

データベース識別名database1を削除する場合、次のように指定します。

  Windows
  % wotsdbconfc -u -d database1
  UNIX
  % wotsdbconfc.sh -u -d database1

動作中のRCSからデータベース情報を削除する場合は、wotsdbadmコマンドのunregisterを使用して、上記で削除したデータベース識別名を通知してください。

 

4.6.3 データベース情報の更新

登録されているデータベース情報を更新する場合、新規登録時に使用したデータベース情報の定義ファイルを使用し全体を更新するか、wotsdbconfcコマンドの-a オプションを使用してデータベース識別名毎にデータベース情報を更新します。

データベース情報定義ファイルを使用して更新する場合、定義ファイル中の全てのデータベース情報が更新対象となります。このため、全てのデータベース情報について、誤りや重複がないかご確認ください。

データベース情報定義ファイルsample.confを使用する場合、次のように指定します。

  Windows
  % wotsdbconfc -f sample.conf
  % wotsdbconfc -a
  UNIX
  % wotsdbconfc.sh -f sample.conf
  % wotsdbconfc.sh -a

動作中のRCSで使用しているデータベース情報を更新する場合は、上記でデータベース情報を更新した後に、wotsdbadmコマンドを使用して上記で更新したデータベース識別名を通知してください。

 

4.6.4 データベース情報の一覧表示

 定義済みのデータベース情報を一覧表示する場合は、次のように指定します。

  Windows
  % wotsdbconfc [-l] list
  UNIX
  % wotsdbconfc.sh [-l] list

このコマンドを実行すると、定義されている全データベース情報の一覧が表示されます。-l オプションを省略した場合は、データベース識別名の一覧が表示され、-l オプションを指定した場合は、登録されている全ての情報の一覧が表示されます。

動作中のRCSで使用しているデータベース情報一覧を表示する場合は、wotsdbadmコマンドのstatusを使用してください。

 

4.7 データベースの設定(AP)

ここでは、C++でアプリケーションがトランザクション実行時に使用するデータベース情報の設定方法について説明します。

コマンドの使用方法については、運用管理コマンドの使用方法を参照願います。

 

4.7.1 データベース情報の登録

C++でアプリケーションがトランザクション実行時に使用するデータベース情報を新規に登録するには、"トランザクションサービスのルートディレクトリ"/conf ディレクトリ配下にあるdb_ap.confをもとに、使用するデータベースのためのデータベース情報の定義ファイルを作成します。

データベース情報定義ファイル作成後、wotsdbconfapコマンドを使用してファイルに記述されているデータベース情報を設定します。 データベース情報定義ファイル template-fileに定義されているデータベースを設定する場合、次のように指定します。

  Windows
  % wotsdbconfap -f template-file
  UNIX
  % wotsdbconfap.sh -f template-file

 

4.7.2 データベース情報の削除

登録されているデータベース情報を削除する場合、wotsdbconfapコマンドを使用してデータベース情報を削除します。

データベース識別名database1を削除する場合、次のように指定します。

  Windows
  % wotsdbconfap -u -d database1
  UNIX
  % wotsdbconfap.sh -u -d database1

 

4.7.3 データベース情報の更新

登録されているデータベース情報を更新する場合、新規登録時に使用したデータベース情報の定義ファイルを使用し全体を更新するか、wotsdbconfapコマンドの-a オプションを使用してデータベース識別名毎にデータベース情報を更新します。

データベース情報定義ファイルを使用して更新する場合、定義ファイル中の全てのデータベース情報が更新対象となります。このため、全てのデータベース情報について、誤りや重複がないかご確認ください。
データベース情報定義ファイルsample.confを使用する場合、次のように指定します。

  Windows
  % wotsdbconfap -f template-file
  % wotsdbconfap -a
  UNIX
  % wotsdbconfap.sh -f template-file
  % wotsdbconfap.sh -a

 

4.7.4 データベース情報の一覧表示

定義済みのデータベース情報を一覧表示する場合は、次のように指定します。

  Windows
  % wotsdbconfap [-l] list
  UNIX
  % wotsdbconfap.sh [-l] list

このコマンドを実行すると、定義されている全データベース情報の一覧が表示されます。-l オプションを省略した場合は、データソース名の一覧が表示され、-l オプションを指定した場合は、登録されている全ての情報の一覧が表示されます。

 

4.8 サービスの動作制御

Windows版においては、"WebOTX Transaction Service"というサービスを起動する必要があります。起動停止については一般のWindosのサービスと同様です。スタートアップの種類は手動であるためコンピュータの起動時には自動起動されません。運用に応じて設定を変更してください。

UNIX版においては、起動スクリプトから起動されます。HP-UXでは/sbin/rc2.d/S770WebOTX_TS、Solaris, Linuxでは/etc/rc2.d/S77WebOTX_TSを使用して起動や停止を行います。RCSを使用する場合はHP-UXでは/etc/rc.config.d/WebOTX_TS.confファイルに、Solaris,Linuxでは/etc/webotx_ts.confファイルにWEBOTX_TS_RCS=onを設定しておく必要があります。WEBOTX_TSがoffになっている場合は、RCSは使用できないので注意する必要があります。RecoveryServerと両方を同時に使用する場合はWEBOTX_TS_RS=onに設定する必要があります。起動の場合はスクリプトの引数にstartを、停止の場合はスクリプトの引数にstopを指定して起動します。これらのコマンドを実行する場合はrootで作業を行う必要があります。

 

4.9 RCSの動作制御

RCS、およびProxyRCSの起動や停止などの状態制御を行います。 RCS、およびProxyRCSの状態を制御することでトランザクション全体の動作を制御することができます。

操作 説明
起動 停止状態のRCS、およびProxyRCSを起動します。
停止 実行状態のRCS、およびProxyRCSを停止します。停止状態にするとそれ以降トランザクションの開始できません。
再開 一時停止状態のRCS、およびProxyRCSを実行状態に戻します。
一時停止 実行状態のRCS、およびProxyRCSを一時停止状態にします。一時停止状態にするとそれ以降トランザクションの開始(Current::begin)は実行できません。


 

4.9.1 RCSの状態表示

RCS、およびProxyRCSの状態を表示する場合、wotsrcsコマンドにRCSIDのみを指定します。
rcsid1で識別されるRCSの状態を表示する場合、次のように指定します。

  % wotsrcs rcsid1

実行が正常に完了すると

  rcs[rcsid1] is XXXXX.

と表示されます.XXXXXには以下の状態になります。

状態 説明
Stopped 停止状態
Initializing 起動開始中状態
Running 実行状態
Paused 一時停止状態

 

4.9.2 RCSの起動

RCS、およびProxyRCSを起動する場合、wotsrcsコマンドにstartオプションを指定します。
rcsid1で識別されるRCSを起動する場合、次のように指定します。

  % wotsrcs rcsid1 start


 

4.9.3 RCSの停止

RCS、およびProxyRCSを起動する場合、wotsrcsコマンドにstopオプションを指定します。
rcsid1で識別されるRCSを実行中から停止する場合、次のように指定します。

  % wotsrcs rcsid1 stop


 
4.9.4 RCSの一時停止

RCS、およびProxyRCSを一時停止する場合、wotsrcsコマンドにpauseオプションを指定します。
rcsid1で識別されるRCSを実行中から一時停止する場合、次のように指定します。

  % wotsrcs rcsid1 pause

 
4.9.5 RCSの再開

RCS、およびProxyRCSを再開する場合、wotsrcsコマンドにcontinueオプションを指定します。
rcsid1で識別されるRCSを一時停止から再開する場合、次のように指定します。

  % wotsrcs rcsid1 continue

 

 

4.10 トランザクションの一覧表示と制御

  通常の運用では、トランザクションは自動的に更新,終了するため、オペレータがトランザクションの状態を直接操作は必要ありません。ただし、通信障害などによりトランザクションが終了しなくなった場合に はトランザクションの一覧を表示し、状態不正となったトランザクションを手動で解決する必要があります。
トランザクションの一覧表示と制御を行う場合はwotstxコマンドを使用します。

操作 説明
強制コミット 未解決のトランザクションを強制的にコミットします。強制コミットはトランザクション状態が、StatusPrepared, StatusCommitting, StatusUnknownの場合に実行可能です。それ以外で実行しようとした場合は、BAD_INV_ORDERエラーとなり失敗します。
強制ロールバック 未解決のトランザクションを強制的にロールバックします。強制ロールバックはトランザクション状態が、StatusActive, StatusMarkedRollback, StatusPreparing, StatusPrepared, StatusRollingBack, StatusUnknownの場合に実行可能です。それ以外で実行しようとした場合は、BAD_INV_ORDERエラーとなり失敗します。
破棄 未解決のトランザクションを破棄(フォーゲット)します。破棄はトランザクション状態が、StatusCommitted, StatusRolledBack, StatusUnknownの場合に実行可能です。それ以外で実行しようとした場合は、BAD_INV_ORDERエラーとなり失敗します。
強制削除 トランザクションを無条件に削除します。強制削除はトランザクションの状態にかかわらず実行可能です。なお、この場合リソースに対する処理は実行しません。それによってデータベース等の状態が不安定になる可能性がありますので、実行には 十分注意が必要です。

 

4.10.1 トランザクションの一覧表示

現在実行中のトランザクションの一覧を表示します。トランザクションを一覧表示する場合、wotstxコマンドにlistオプションを指定します。
rcsid1で識別されるRCS上のトランザクションを一覧表示する場合、次のように指定します。

  % wotstx rcsid1 computer1 list

コマンドを実行すると以下の情報が表示されます。

 
 Transaction ID   Status                A/R     Start Time
 ----------------+---------------------+-------+-------------------
 0242431541510000 StatusActive          Active  2002/11/09 15:41:51
 2748772122230027 StatusMarkedRolleback Active  2002/11/09 15:30:28
 2748772122230030 StatusPrepareing      Active  2002/11/09 15:30:26
 2747272122230000 StatusPrepared        Active  2002/11/09 15:30:26
 2751672127100048 StatusUnknown         Recover 2002/11/08 11:21:44
 2747272126430004 StatusRollingBack     Recover 2002/11/08 11:20:22
 2747272209450032 StatusRolledBack      Recover 2002/11/08 10:11:31

また、次のように-lオプションをつけることで、グローバルトランザクションID(GTRID)を見ること ができます。例えばOracleのツールを使って、トランザクションのIDを確認する場合はこの情報が有効 になります。

  % wotstx -l rcsid1 computer1 list
 
 Transaction ID   Status                A/R     Start Time         GTRID
 ----------------+---------------------+-------+------------------+-------
 0242431541510000 StatusActive         Active  2002/11/09 15:41:51 69637.72637369
 64330000000000000000000000000978000000F1678850E0000000F1678868B200000000

このコマンドで表示されるTransaction IDを使用してトランザクションの強制コミットや強制ロールバック、破棄、強制削除を行います。 トランザクションの現在の状態はStatusとして表示されます。Activeの場合は実行中のトランザクションであり、Recoverはリカバリ中のトランザクションになります。


 

4.10.2 トランザクションの強制コミット

実行中のトランザクションを強制的にコミットする必要がある場合はwotstxコマンドにcommitオプションを指定します。
rcsid1で識別されるRCS上のトランザクション識別がtransaction1であるトランザクションを強制コミットする場合、次のように指定します。 トランザクション識別はトランザクションの一覧表示で表示されます。

  % wotstx rcsid1 commit transaction1


 

4.10.3 トランザクションの強制ロールバック

実行中のトランザクションを強制ロールバックする場合、wotstxコマンドにrollbackオプションを指定します。
rcsid1で識別されるRCS上のトランザクション識別transaction1を強制ロールバックする場合、次のように指定します。

  % wotstx rcsid1 rollback transaction1


 

4.10.4 トランザクションの破棄

実行中のトランザクションを破棄する場合、wotstxコマンドにforgetオプションを指定します。
rcsid1で識別されるRCS上のトランザクション識別transaction1を破棄する場合、次のように指定します。

  % wotstx rcsid1 forget transaction1


 

4.10.5 トランザクションの強制削除

実行中のトランザクションを強制削除する場合、wotstxコマンドにdeleteオプションを指定します。
rcsid1で識別されるRCS上のトランザクション識別transaction1を強制削除する場合、次のように指定します。

  % wotstx rcsid1 delete transaction1

 

4.11 データベースの制御

データベースアクセスの停止や再開などの状態制御を行います。データベースアクセスの状態を制御することで、WebOTX Transaction Serviceを運用中にデータベースの保守やデータベース情報の更新等を行うことができます。

操作 説明
停止 開始状態のデータベースへのアクセスを停止します。一時停止状態にすると、それ以降そのデータベースを使用するトランザクションの開始はできません。
強制停止 開始状態、一時停止処理中のデータベースへのアクセスを強制停止します。強制停止を行うと、実行中のトランザクションの状態が不安定になる場合がありますので注意が必要です。
再開 一時停止状態、一時停止処理中のデータベースへのアクセスを開始状態に戻します。


 

4.11.1 データベースの状態表示

運用管理コマンドを使用して、データベースの状態を表示する場合、wotsdbadmコマンドにstatusを指定します。-d オプションでデータベース識別名を省略した場合は、指定されたRCSで使用している全データベースの状態が一覧表示されます。

RCSIDがrcs1のRCSで使用しているデータベース識別名database1の状態を表示する場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 status rcs1
  UNIX
  % wotsdbadm.sh -d database1 status rcs1

実行が正常に完了すると

  rcs[rcs1]:Database[database1] is XXXXX.

と表示されます。XXXXXは以下の状態になります。

状態 説明
Opened 開始状態
Paused 一時停止状態
Pausing 一時停止処理中


 

4.11.2 データベースの停止

運用管理コマンドを使用して、データベースを停止する場合、wotsdbadmコマンドにcloseを指定します。

rcs1が使用しているデータベース識別名database1を停止する場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 close rcs1
  UNIX
  % wotsdbadm.sh -d database1 close rcs1


 

4.11.3 データベースの強制停止

運用管理コマンドを使用して、データベースを強制停止する場合、wotsdbadmコマンドに-Fとcloseを指定します。

rcs1が使用しているデータベース識別名database1を強制停止する場合、次のように指定します。

  Windows
  % wotsdbadm -F -d database1 close rcs1
  UNIX
  % wotsdbadm.sh -F -d database1 close rcs1

 

4.11.4 データベースの再開

運用管理コマンドを使用して、データベースを再開する場合、wotsdbadmコマンドにopenを指定します。

rcs1が使用しているデータベース識別名database1を再開する場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 open rcs1
  UNIX
  % wotsdbadm.sh -d database1 open rcs1

 

4.11.5 データベース情報の登録・更新通知

運用管理コマンドを使用して、動作中のRCSに対して新規にデータベースを追加する場合、または、使用しているデータベースの情報を更新する場合、wotsdbadmコマンドにregisterを指定します。

rcs1にデータベース識別名database1を追加する場合、または、rcs1が使用しているデータベース識別名database1の情報を更新する場合は、次のように指定します。

  Windows
  % wotsdbadm -d database1 register rcs1
  UNIX
  % wotsdbadm.sh -d database1 register rcs1

コマンドを実行する前に次の設定と確認を行ってください。

wotsdbconfjwotsdbconfcwotsdbconfapコマンドを使用して、登録・更新するデータベースの情報を設定してください。

また、動作中のRCSが使用しているデータベースの情報を更新する場合は、更新するデータベースの状態が一時停止中(Paused)であることを確認してください。データベースの状態を確認するには、wotsdbadmコマンドにstatusを指定します。更新するデータベースの状態が一時停止中でない場合は更新ができません。wotsdbadmコマンドにcloseを指定し、状態が一時停止になったことを確認してください。
 

4.11.6 データベース情報の削除通知

運用管理コマンドを使用して、動作中のRCSが使用しているデータベースを削除する場合、wotsdbadmコマンドにunregisterを指定します。

rcs1が使用しているデータベース識別名database1を削除する場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 unregister rcs1
  UNIX
  % wotsdbadm.sh -d database1 unregister rcs1

動作中のRCSが使用しているデータベースを削除する場合は、削除するデータベースの状態が一時停止中(Paused)の状態であることを確認してください。データベースの状態を確認するには、wotsdbadmコマンドにstatusを指定します。更新するデータベースの状態が一時停止中でない場合は削除できません。wotsdbadmコマンドにcloseを指定し、状態が一時停止後になったことを確認してください。

 

4.12 トランザクションブランチの制御

データベースで不正に残っているトランザクションブランチの制御を行います。次は、トランザクション実行時に不正に残ったトランザクションブランチの状態です。

状態 説明
Prepared commit待ち状態のトランザクションブランチ。
Heuristic Heuristic状態のトランザクションブランチ。
Unknown トランザクションブランチの状態が不明。


 

4.12.1 トランザクションブランチの一覧表示

運用管理コマンドを使用して、トランザクションブランチの状態を表示する場合、wotsdbadmコマンドにtxlistを指定します。

rcs1が使用しているデータベース識別名database1に不正に残っているトランザクションブランチを一覧表示する場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 txlist rcs1
  UNIX
  % wotsdbadm.sh -d database1 txlist rcs1


 

4.12.2 トランザクションブランチの強制コミット

運用管理コマンドを使用して、不正に残っているトランザクションブランチをコミットする場合、wotsdbadmコマンドにcommitを指定します。

rcs1が使用しているデータベース識別名database1に残っているトランザクション識別子stxid1をcommitする場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 commit rcs1 stxid1
  UNIX
  % wotsdbadm.sh -d database1 commit rcs1 stxid1


 

4.12.3 トランザクションブランチの強制ロールバック

運用管理コマンドを使用して、不正に残っているトランザクションブランチをロールバックする場合、wotsdbadmコマンドにrollbackを指定します。

rcs1が使用しているデータベース識別名database1に残っているトランザクション識別子stxid1をrollbackする場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 rollback rcs1 stxid1
  UNIX
  % wotsdbadm.sh -d database1 rollback rcs1 stxid1


 

4.12.4 トランザクションブランチの破棄

運用管理コマンドを使用して、不正に残っているトランザクションを破棄する場合、wotsdbadmコマンドにforgetを指定します。

rcs1が使用しているデータベース識別名database1に残っているトランザクション識別子stxid1をforgetする場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 forget rcs1 stxid1
  UNIX
  % wotsdbadm.sh -d database1 forget rcs1 stxid1


 

4.12.5 トランザクションブランチの削除

運用管理コマンドを使用して、データベースに残っているトランザクションを削除する場合、wotsdbadmコマンドにdeleteを指定します。

rcs1が使用しているデータベース識別名database1に残っているトランザクション識別子stxid1を削除する場合、次のように指定します。

  Windows
  % wotsdbadm -d database1 delete rcs1 stxid1
  UNIX
  % wotsdbadm.sh -d database1 delete rcs1 stxid1

 

4.13 障害解析

WebOTX Transaction Serviceでは、障害発生時にそれを解析し、早急な対応を実現するために各種障害情報を採取しています。
その障害情報として、「イベントログ・syslog情報」「トレース情報」があります。
イベントログは障害や運用に影響があるイベントに関する情報が、トレース情報はWebOTX Transaction Serviceの動作に関する情報が採取されます。
また、JavaのRCSとProxyRCSではlog4otxのロガーに対応しており、RCSの起動停止ログが採取できます。
 

4.13.1. イベントログとsyslogの利用

WebOTX Transaction Serviceでは各種障害が発生した場合に、Windows版ではイベントログに、UNIX版ではsyslogに障害の内容を表示します。 この情報を元に障害原因を特定することができます。

イベントログを参照するには

イベントログを参照するには、Windows で提供されている「イベントビューア」を使用します。
イベントビューアを起動するには、「スタート」メニューから、[プログラム]-[管理ツール]-[イベントビューア]を選択します。

syslogを参照するには

syslogについては、エディタ等を利用して参照してください。

WebOTX Transaction Serviceが出力するメッセージの一覧については、[ メッセージ一覧 > 2. Transactionサービス ]を参照してください。

 

4.13.2. トレース情報の利用

障害対応のためにトレース情報を利用することができます。WebOTX Transaction Serviceでは次の6種類のトレースを採取できます。

種類 説明
RCDトレース トランザクションサービスをとりまとめるプロセスの動作に関する情報を採取したもの。
RCSトレース RCS、およびProxyRCSの動作に関する情報を採取したもの。
LRSトレース アプリケーション内で管理するトランザクションの動作に関する情報を採取したもの。RCS利用時のみ採取。
リカバリサーバトレース リカバリサーバの動作に関する情報を採取したもの。
リソーストレース データベースやリソースとの接続に関する情報を採取したもの。リカバリサーバ利用時のみ採取。
カレントトレース アプリケーション内で動作するカレントに関する情報を採取したもの。リカバリサーバ利用時のみ採取。

また採取する情報の内容に応じたレベルとして、0から4まで5段階あります。レベルを上げると情報量は増えますが、その分トランザクション処理速度が遅くなります。通常はレベルを低い設定にしておき、障害が発生した際にレベルを上げて原因を特定するのが通常の運用です。

トレース構成情報の変更を行う場合、otstrcコマンドを指定します。 このコマンドは自ホストに対してのみ有効で、ネットワーク上のホストのトレース構成情報を変更することはできません。 RCSのトレースレベルをレベル4(詳細情報まで採取)に変更する場合、次のように指定します。

  % otstrc rcs -l 4

 
4.13.3 トレース情報の表示

Windows版ではトレース情報を参照するためのGUIツールであるトレースビューアを提供しています。UNIX版ではコマンドtrcviewも提供しています。

コマンドからトレースビューアを起動する場合、trcviewコマンドを 使用します。
トレースファイルfile1を参照する場合、次のように指定します。

  % trcview file1

 
4.13.4 log4otxの利用

JavaのRCSとProxyRCSではlog4otxのロガーを使用してRCSの起動停止のログを採取することができます。ログを採取するためには次のように設定を追加します。

rcs.conf
[JAVA]セッション

キー名
properties Windowsの場合:-Dlog4otx.configuration=file://[WebOTXインストールディレクトリ]/TS/conf/log4otx.xml -Dcom.nec.wots.installpath=[WebOTXインストールディレクトリ]/TS

UNIX系OSの場合:-Dlog4otx.configuration=file:///opt/WebOTX/TS/conf/log4otx.xml -Dcom.nec.wots.installpath=/opt/WebOTX/TS

rcs.confの設定については[ 4.4 RCSの構成情報 ]を参照してください。

ログレベルの変更はlog4otx.xmlを編集します。
ログレベルに設定する値は次のとおりです。
threshold値 説明
OFF 全ての出力を行いません
SEVERE SEVERE以上のメッセージを出力します。
WARNING WARNING以上のメッセージを出力します。
INFO INFO以上のメッセージを出力します。
CONFIG CONFIG以上のメッセージを出力します。既定値です。
FINE FINE以上のメッセージを出力します。
FINER FINER以上のメッセージを出力します。
FINEST 全てのメッセージを出力します。

ロガーの名称について説明します。コンポーネント別に独自のファイルアペンダを用意しています。
コンポーネント名 ロガー名 使用するアペンダ
Transactionサービス - Java用トランザクション復旧プロセス(RCS) com.nec.wots.rcs.java WOTSRCSJFILELOG
Transactionサービス - クライアントトランザクション用プロセス(ProxyRCS) com.nec.wots.rcs.proxy WOTSRCSPFILELOG

各アペンダに対応するファイル名一覧です。
アペンダ ファイル名 ロガー名
WOTSRCSJFILELOG rcsjava.log com.nec.webotx.enterprise.system.jndisp
com.nec.wojdbc
com.nec.wojms.ra
com.nec.wots.rcs.java
WOTSRCSPFILELOG rcsproxy.log com.nec.wots.rcs.proxy