A. Recovery Coordination Server(RCS)で使用する構成情報設定ファイル

 
A.1. 構成情報設定ファイルの構成

UNIX版 WebOTX Transaction Serviceを運用する上で必要となる構成情報ファイルの形式は、次のとおりです。

   [セッション名]
   キー名 = 数値
   キー名 = "文字列"

1 行の長さは 512 バイト以内に制限しています。
「セッション名」、「キー名」、「文字列」は、大文字/小文字を区別します。
「数値」は 10進数、'0' で始まる 8進数、および '0x' あるいは '0X' で始まる 16進数の符合なし数値を指定します。
「文字列」はダブルクォート(")で囲んだ文字列を指定します。ダブルクォート(") を含む文字列の指定はできません。
また、同一の項目を複数の行で指定した場合は、先に書かれた方の内容が有効となります。

 

A.2. 管理サービスの構成

管理サービスの構成情報(rcd.conf)にはRCDセッションからなります。
RCDにNAMEという別なサービス名を定義する場合はRCD.NAMEのようなセッションを指定します。

 

RCDセッション

WebOTX Transaction Service 全般にかかわる構成情報を設定します。

キー名
RootDir 動作するディレクトリ(文字列)。インストール時に設定されています。
PortNo ポート番号を指定します(数値)。設定されていない場合、既定値5946で動作します。
 

 

A.3. RCS共通の構成

RCS共通な構成情報(rcs.conf)にはJAVAセッションとSHMEM.TXセッションからなります。
   

JAVAセッション

RCSを動作させるために必要なJavaの情報を設定します。

キー名
javavm Java VMのフルパス(文字列)
classpath RCSを動作させるために必要なクラスパス(文字列)
properties Javaを起動する場合に定義するシステムプロパティ(文字列)。Linux版の場合、インストール時に自動的に次のものが登録されます。
 -Djava.library.path=/usr/lib

 
SHMEM.TXセッション

トランザクション情報を管理するための設定を行うセッションです。

キー名
num トランザクションの情報を管理するファイルの多重度をあらわします(数値)。既定値は1です。
RCS起動時にこの個数分ファイルを生成し、トランザクション情報をそれぞれのファイルで分散して 管理することで性能の向上が図れます。ただし数を増やし過ぎるとトランザクション情報の検索効率が 下がるなどにより、逆に性能劣化の元となる場合があります。
size 生成するファイルのサイズをあらわします(文字列)。既定値は1048577バイトです。

 
DATABASEセッション

データベース情報の設定を設定します。

キー名
ConfDir データベース情報ファイル(database1.dat)の格納パス

 
A.4. 各RCSの構成

各RCSの構成情報([RCSID].rcs)は、RCSセッションとRCMセッションからなります。
   

RCSセッション

RCSの運用に必要な情報を設定します。

キー名
StartUp RCDプロセス起動時に、RCSプロセスも併せて自動的に起動するかどうかを判断するための項目です(数値)。
0 : 自動起動しない
1 : 自動起動する(既定値)
Module RCSの種類を指定します。
"Java" Javaアプリケーション上で動作するトランザクションに障害が発生した場合、そのトランザクションの復旧を行うもの
"C++" C++アプリケーション上で動作するトランザクションに障害が発生した場合、そのトランザクションの復旧を行うもの
"Proxy" クライアントトランザクションを管理するもの


 アプリケーションの開始時にRCSIDを指定することで使用するRCSを特定するのですが、Javaアプリケーション起動時にC++で指定したRCSを指定するとCORBA::INITIALIZE例外となり、失敗します。
 逆にC++アプリケーション起動時にJavaで指定したRCSで管理しようとしても失敗します。

 Javaで指定したRCSはJava言語で、C++で指定したRCSはC++言語で作られています。データベースへのアクセス方式がJava版とC++版で異なるため、トランザクションが復旧された場合に上述のようなガードをかけています。
 また、Proxyで指定したRCSはJava言語で作られていますが、データベースへのアクセスを管理するリソースのリカバリ処理を実施しないため、アプリケーション開発に使われた言語による区別はしていません。
RCSPort RCSプロセスに割り当てられるポート番号です(数字)。既定値は5964ですが、他のプロセスと重ならないように設定する必要があります。また一度決定した番号を変えると未完了トランザクションの復旧が失敗することがありますので注意してください。ポート番号を変更する場合は、該当RCSでリカバリ中のトランザクションが存在しない状態で実施する必要があります。設定可能範囲は1〜30000にしてありますが、「WELL KNOWN PORT NUMBERS」と呼ばれるものや、「REGISTERED PORT NUMBERS」と呼ばれる予約済みのものについては設定しないようにするべきです。
RetryNum コミットが失敗した際のリトライ回数です(数値)。この回数分リトライを実施しても状況が変わらない場合、WebOTX Transaction Serviceが自動的にトランザクションの状態をヒューリスティックに設定します。設定可能範囲は0〜32767回、既定値は5回です。
RetryInterval コミットリトライの時間間隔です(数値)。設定可能範囲は2〜32767秒、既定値は3600秒です。
TxTimeout トランザクションのタイムアウト時間です(数値)。
トランザクションを開始してからこの時間が経過しても完了していない場合はWebOTX Transaction Serviceが自動的にロールバック処理を実施します。設定可能範囲は0〜32767秒、既定値は600秒です。また0秒を指定した場合はタイムアウトは発生しません。
OTSPolicyMode OTS1.2から導入されたOTSPolicyを利用するかどうかの設定です(数値)。
0 : OTSPolicyを利用しない(OTS1.1互換モード:TransactionObjectの継承を利用)
1 : OTSPolicyを利用する(既定値)
CheckedTxMode チェックドトランザクションを行うかどうかの設定です(数値)。
0 : チェックを行わない
1 : チェックを行う(既定値)
MethodTimeout ORB呼び出しのタイムアウト時間を設定します(数値)。
設定可能範囲は1〜32767秒、既定値は30秒です。これについての詳細はObject Brokerのマニュアルを参照してください。
PoolThread RCSでプールするスレッド数(通常時)を設定します(数値)。
設定可能範囲は2〜255、既定値は10です。
このスレッド数はObject Brokerのスレッド処理方針のプールスレッド数と同じです。これについての詳細はObject Brokerのマニュアルを参照してください。
MaxPoolThread RCSでプールするスレッド数(最大時)を設定します(数値)。RCSに負荷がかかった場合にこの数分スレッドを確保します。
設定可能範囲はPoolThreadで指定した値〜255、既定値は10です。
このスレッド数はObject Brokerのスレッド処理方針のプールスレッド数と同じです。これについての詳細はObject Brokerのマニュアルを参照してください。
RecoverStartTime RCS起動直後に復旧されたトランザクションについて、復旧が完了してからトランザクションの完了処理を自動的に開始するまでの時間を設定します(数値)。設定可能範囲は0〜32767秒、既定値は3600秒です。

 
RCMセッション

RCSプロセスでは、データベースアクセス制御を行うリソースマネージャが動作しています。ここではそれの運用に必要な情報を設定します。

キー名
RecoveryTime 障害などによってリソースへの指示(commit,rollback,forget要求)が要求されない場合に、リソースが復旧を開始するまでの時間を指定します(数値)。
設定可能範囲は0〜32767秒で、0はタイムアウトなしを意味します。既定値は3600秒です。
RecoveryInterval リソースが復旧に失敗した場合に、次に復旧処理をリトライするまでの間隔を指定します(数値)。
設定可能範囲は0〜32767秒、既定値は2秒です。
RollbackTimer リソース生成から1フェーズまたは2フェーズコミット発行までのタイマ監視時間を指定します(数値)。
指定した時間内に1フェーズまたは2フェーズコミットが発行されない場合、強制的にロールバックされます。 設定可能範囲は0〜32767秒で、既定値は3600秒です。RCSセッションのTxTimeout時間より長く設定してください。
DBPath "ORACLE_HOME="で始まるディレクトリを記述してください。

 
A.5. データベース設定
   
Java版

データベース情報定義ファイルの形式は次のように記述します。

   [データベース識別名]
   キー名 = 値
   キー名 = "文字列"

 データベース情報定義ファイルには、Javaで使用する次のデータベース情報を記述します。
ここで設定されたデータベース情報は、トランザクションのリカバリを行う際に使用するコネクション情報としてWebOTX JDBC DataSourceのプロパティに設定されます。

各項目の詳細については、WebOTX JDBC DataSourceのプロパティ一覧も参照してください。

キー名 対応するWebOTX JDBC DataSourceのプロパティ名
PortNumber データベースサーバのポート番号(数値) portNumber
NumberOfConnectionPool JDBCコネクションのプール数(数値) poolCount
Timeout JDBCコネクション接続時のタイムアウト値(秒)(数値) loginTimeout
DataSourceType JDBCドライバ提供のインタフェース種別(文字列) dataSourceType
UserName データベース接続時のユーザ名(文字列) userName
Password データベース接続時のパスワード(文字列) password
ServerName データベース側のサーバ名(文字列) serverName
DataSourceName データベースとの接続文字列、またはJDBCデータソース名(文字列) dataSourceName

   

C++版(RCS)

データベース情報定義ファイルの形式は次のように記述します。

   [データベース識別名]
   キー名 = 値
   キー名 = "文字列"

 データベース情報定義ファイルには、C++でRCSがトランザクションのリカバリを行う際に使用する、次のデータベース情報を記述します。
ここで設定されたデータベース情報は、トランザクションのリカバリを行う際に使用するデータベースのコネクション情報として使用されます。

キー名
DatabaseType データベースの種別を設定します。Oracleを使用される場合は、RCSが動作するマシンにインストールされているOracleのバージョンの種別を指定します。 データベースの種別には次のものがあります。
タイプ 説明
Oracle_XA80 Oracle バージョン R8.0を使用する場合に指定します。
Oracle_AX80 ORACLE バージョン R8.0.5以降を使用して動的登録機能を使用する場合に指定します。
Oracle_XA81 Oracle バージョン R8.1を使用する場合に指定します。
Oracle_AX81 Oracle バージョン R8.1を使用して動的登録機能を使用する場合に指定します。
Oracle_XA91 Oracle バージョン R9.0.1、9.2.0を使用する場合に指定します。
Oracle_AX91 Oracle バージョン R9.0.1、9.2.0を使用して動的登録機能を使用する場合に指定します。
MsSql_XA SQL Server を使用する場合に指定します。
IBMMq_XA MQSeries を使用する場合に指定します。
OpenStrings DatabaseTypeにOracleデータベースを指定した場合は、Oracleの[ 3.9.2. オープン文字列の構文 ]に従ってオープン文字列を設定してください。
DatabaseTypeに"MsSql_XA"を選択した場合は、オープン文字列を指定する必要はありません。WebOTX Transaction Serviceで固定の文字列を使用します。
DatabaseTypeに"IBMMq_XA"を選択した場合は、オープン文字列としてキュー管理プログラムの名前を設定してください。
CloseStrings 設定する必要はありません。
OracleデータベースとMQSeriesの場合は、クローズ文字列は無視されます。
SQLServerの場合は、WebOTX Transaction Serviceで固定の文字列を使用します。

   

C++版(AP)

データベース情報定義ファイルの形式は次のように記述します。

   [データソース名]
   キー名 = 値
   キー名 = "文字列"

 データベース情報定義ファイルには、C++でトランザクションを実行する際に使用する、次のデータベース情報を記述します。
ここで設定されたデータベース情報は、トランザクションを実行する際にアプリケーションが使用するデータベースのコネクション情報として使用されます。アプリケーション単位で使用するデータベースのコネクション(ユーザ、パスワード等)を分けることができます。

キー名
DatabaseName C++版(RCS)で登録したデータベース識別名を設定します。トランザクションのリカバリを行う際に使用するデータベース情報を指定します。
DatabaseType データベースの種別を設定します。Oracleを使用される場合は、アプリケーションが動作するマシンにインストールされているバージョンの種別を設定します。データベースの種別は、C++版RCSデータベース情報定義ファイルのDatabaseTypeを参照してください。
OpenStrings DatabaseTypeにOracleデータベースを指定した場合は、Oracleの[ 3.6.2. オープン文字列の構文 ]に従ってオープン文字列を設定してください。
DatabaseTypeに"MsSql_XA"を選択した場合は、オープン文字列を指定する必要はありません。WebOTX Transaction Serviceで固定の文字列を使用します。
DatabaseTypeに"IBMMq_XA"を選択した場合は、オープン文字列としてキュー管理プログラムの名前を設定してください。
CloseStrings 設定する必要はありません。
OracleデータベースとMQSeriesの場合は、クローズ文字列は無視されます。
SQLServerの場合は、WebOTX Transaction Serviceで固定の文字列を使用します。