| 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プロセスも併せて自動的に起動するかどうかを判断するための項目です(数値)。
|
||||||
| Module | RCSの種類を指定します。
アプリケーションの開始時に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を利用するかどうかの設定です(数値)。
|
||||||
| CheckedTxMode | チェックドトランザクションを行うかどうかの設定です(数値)。
|
||||||
| 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のバージョンの種別を指定します。
データベースの種別には次のものがあります。
|
||||||||||||||||||
| 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で固定の文字列を使用します。 |