3.4.1 DBMSの設定(HiRDBを使用する場合)
HiRDBを使用する場合のDBMSの設定について説明します。説明する以外の設定内容や手順については,HiRDBのマニュアルを参照してください。
(1) DBMSの初期設定(HiRDBを使用する場合)
(a) HiRDBの初期設定
HiRDBをインストールしたら,環境設定をします。Reliable Messagingの管理情報テーブルを格納するためのRDエリアを作成してください。HiRDBの環境設定については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。
(b) HiRDBのユーザ権限の付与
HiRDBでは"ユーザの作成"という操作がなく,ユーザ権限の一つであるCONNECT権限をユーザに付与することによってユーザが作成されます。ユーザ権限については,マニュアル「HiRDB システム運用ガイド」を参照してください。
Reliable MessagingはHiRDBの接続ユーザを使用してHiRDBにアクセスします。Reliable Messagingで使用する接続ユーザには,次に示すユーザ権限を付与してください。
ユーザ権限を付与するには,データベース定義ユティリティ(pddef)またはHiRDB SQL Executerを使用します。ここでは,データベース定義ユティリティ(pddef)を使用してユーザ権限を付与する場合の手順を説明します。Reliable Messagingが動作するマシンまたはHiRDBが動作するマシンで,次に示す手順を実行してください。データベース定義ユティリティ(pddef)の使用方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
-
環境変数の設定
次に示す環境変数を設定します。
- Windowsの場合
SET PDHOST = <HiRDBサーバのホスト名またはIPアドレス> SET PDNAMEPORT = <HiRDBサーバのポート番号> SET PDUSER = <DBA権限を持つユーザ名>/<パスワード>
- UNIX(csh)の場合
setenv PDHOST <HiRDBサーバのホスト名またはIPアドレス> setenv PDNAMEPORT <HiRDBサーバのポート番号> setenv PDUSER <DBA権限を持つユーザ名>/<パスワード>
- UNIX(sh)の場合
PDHOST=<HiRDBサーバのホスト名またはIPアドレス> PDNAMEPORT=<HiRDBサーバのポート番号> PDUSER=<DBA権限を持つユーザ名>/<パスワード> export PDHOST export PDNAMEPORT export PDUSER
-
データベース定義ユティリティ(pddef)の開始
次に示すとおりコマンドを入力して,データベース定義ユティリティ(pddef)を開始します。
pddef
-
SQL文の実行
次に示すSQL文を実行します。
GRANT CONNECT TO <権限を付与する接続ユーザ名>※ IDENTIFIED BY <パスワード>; GRANT SCHEMA TO <権限を付与する接続ユーザ名>※;
- 注※
-
Reliable Messagingが使用する接続ユーザの名前です。HiRDBのクライアント環境変数グループに登録したPDUSER環境変数と同じ値になります。PDUSER環境変数については,「3.4.1(2)(b) HiRDBの環境変数グループの登録」を参照してください。
-
データベース定義ユティリティ(pddef)の終了
データベース定義ユティリティ(pddef)を終了するには,
- Windowsの場合
-
CtrlキーとZキーを同時に押したあと,Enterキーを押してください。
- UNIXの場合
-
CtrlキーとDキーを同時に押してください。
(c) HiRDBのスキーマの定義
Reliable Messagingの管理情報テーブル用のスキーマを定義します。
スキーマを定義するには,データベース定義ユティリティ(pddef)またはHiRDB SQL Executerを使用します。ここでは,データベース定義ユティリティ(pddef)を使用してスキーマ定義する場合の手順を説明します。Reliable Messagingが動作するマシンまたはHiRDBが動作するマシンで,次に示す手順を実行してください。データベース定義ユティリティ(pddef)の使用方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
-
環境変数の設定
次に示す環境変数を設定します。
- Windowsの場合
SET PDHOST = <HiRDBサーバのホスト名またはIPアドレス> SET PDNAMEPORT = <HiRDBサーバのポート番号> SET PDUSER = <接続ユーザ名>/<パスワード>※
- UNIX(csh)の場合
setenv PDHOST <HiRDBサーバのホスト名またはIPアドレス> setenv PDNAMEPORT <HiRDBサーバのポート番号> setenv PDUSER <接続ユーザ名>/<パスワード>※
- UNIX(sh)の場合
PDHOST=<HiRDBサーバのホスト名またはIPアドレス> PDNAMEPORT=<HiRDBサーバのポート番号> PDUSER=<接続ユーザ名>/<パスワード>※ export PDHOST export PDNAMEPORT export PDUSER
- 注※
-
接続ユーザ名には,権限を付与した接続ユーザ名を指定します。詳細については,「3.4.1(1)(b) HiRDBのユーザ権限の付与」を参照してください。
-
データベース定義ユティリティ(pddef)の開始
次に示すとおりコマンドを入力して,データベース定義ユティリティ(pddef)を開始します。
pddef
-
SQL文の実行
次に示すSQL文を実行します。
CREATE SCHEMA;
-
データベース定義ユティリティ(pddef)の終了
データベース定義ユティリティ(pddef)を終了するには,
- Windowsの場合
-
CtrlキーとZキーを同時に押したあと,Enterキーを押してください。
- UNIXの場合
-
CtrlキーとDキーを同時に押してください。
(d) HiRDBのRDエリアの準備
Reliable Messagingの管理情報テーブルを格納するために,必要に応じてRDエリアを作成します。RDエリアの作成方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。
複数のユーザでReliable Messagingにアクセスする際にアプリケーション認証を使用する場合は,公用RDエリアを作成し,その公用RDエリアにReliable Messagingの管理情報テーブルを作成します。
(e) HiRDBの排他資源と同時アクセス可能実表数の見積もり
HiRDBの排他資源および同時アクセス可能実表数の見積もりについては,「付録F HiRDBの見積もり」を参照してください。
(2) DBクライアントの設定
次に示す製品をインストールしたら,Reliable Messagingが動作するマシンで設定をします。
-
HiRDB/Run TimeまたはHiRDB/Developer's Kit
-
HiRDB SQL Executer
(a) HiRDBの環境変数の設定
次に示す環境変数を設定します。
-
1を指定します。
-
Reliable Messagingが使用するDBコネクション数の最大値を指定します。この場合の最大値は,Reliable Messaging本体およびアプリケーションが使用するDBコネクションの合計です。Reliable MessagingがDBコネクションを使用するタイミングと,使用するコネクションの数を次の表に示します。
表3‒2 Reliable MessagingがDBコネクションを使用するタイミングと使用するコネクションの数 項番
Reliable Messagingの機能
1
コマンド
コマンド実行時に取得し,コマンド完了後に解放します。
1
2
共用キューによるシステム間連携
リソースアダプタの開始時に1コネクションを取得し,リソースアダプタの停止時に解放します。
1
3
イベント受信時に1コネクションを取得し,イベント受信完了後に解放します。
1
4
メモリ復元処理
メモリ復元時に取得し,復元完了時に解放します。復元処理の詳細については,「4.1.4(1) 状態遷移」の開始中状態を参照してください。
1
5
メッセージ削除処理
リソースアダプタの開始時に取得し,リソースアダプタ停止時に解放します。
1
6
XAリカバリ
リソースアダプタの開始時に1コネクションを取得し,リソースアダプタの停止時に解放します。
1
7
キュー間転送
送信
1メッセージの送信でキャッシュにメッセージがない場合,またはグループを切り替える場合に,1コネクションを取得し,メッセージの送信終了後に解放します。
コネクション取得数の最大値は,送信スレッドの起動数です。
1以上
8
受信
1メッセージの受信で1コネクション取得し,メッセージの受信完了後に解放します。ただし,同時リクエスト数に比例してコネクション取得数も増加します。
1以上
上記の表に示したとおり,Reliable MessagingのDBコネクション使用数は次の値になります。
6+送信スレッドの起動数+メッセージ受信リクエスト数
なお,Application ServerのJ2EEコンポーネントからHiRDBにアクセスする場合は,J2EEコンポーネントが利用するコネクション数に,Reliable MessagingのDBコネクション使用数を加えた値を指定します。
-
LD_LIBRARY_PATH(Linuxの場合),LIBPATH(AIXの場合)
下記のパスを指定してください。
/opt/Cosminexus/TPB/lib
/opt/Cosminexus/PRF/lib
/opt/Cosminexus/CTM/lib(CTM利用時だけ)
/opt/HiRDB/client/lib
/opt/HiRDB/client/utl
- 注意事項
-
HiRDBのクライアント環境定義PDDBLOGには,NOを指定しないでALLを指定してください。
(b) HiRDBの環境変数グループの登録
HiRDBの環境変数グループは,HiRDBのクライアント環境変数グループの設定ファイルに登録します。
登録方法については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
ここで登録した環境変数グループ名は,DB Connector for Reliable Messagingのコンフィグレーションプロパティで,XAOpen文字列として設定する必要があります。DB Connector for Reliable Messagingのコンフィグレーションプロパティについては,「6.3 DB Connector for Reliable Messagingのコンフィグレーションプロパティの一覧」を参照してください。
HiRDBのクライアント環境変数グループに登録する内容を次の表に示します。
項番 |
環境変数名 |
設定内容 |
---|---|---|
1 |
HiRDBサーバのホスト名またはIPアドレスを指定します。 |
|
2 |
HiRDBサーバのユーザ名※1およびパスワードを指定します。 |
|
3 |
HiRDBサーバのポート番号を指定します。 |
|
4 |
Component Containerのトランザクションタイムアウトの値※3よりも大きな値を指定します。 |
|
5 |
Component Containerのトランザクションタイムアウトの値※3よりも大きな値を指定します。 また,メッセージの遅延削除にかかる時間よりも大きな値を指定します※4。 |
|
6 |
0を指定します。 |
- 注※1
-
Reliable MessagingがHiRDBの管理するDBにアクセスするために使用する接続ユーザの名前です。
共用キューを使用して複数システム間でのアプリケーション連携をする場合は,送信側システムと受信側システムで同じ接続ユーザ名を指定します。
- 注※2
-
HiRDBを使用する場合,Reliable Messagingのトランザクション決着中に,HiRDBの設定値であるPDSWAITTIMEおよびPDCWAITTIMEに指定した値によってタイムアウトが発生しDBがロールバックすると,Reliable Messagingは閉塞することがあります。このため,PDSWAITTIMEおよびPDCWAITTIMEには,適切な値を設定してください。PDSWAITTIMEおよびPDCWAITTIMEについては,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。なお,Reliable Messagingが閉塞した場合は,Application Serverを強制停止したあと,再起動してください。
- 注※3
-
Component Containerのトランザクションタイムアウト値はJ2EEサーバ用ユーザプロパティファイルまたはUserTransaction.setTransactionTimeout()メソッドで指定します。J2EEサーバ用ユーザプロパティファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。UserTransaction.setTransactionTimeout()メソッドについては,Javaのドキュメントを参照してください。
- 注※4
-
チューニングは本番稼動環境と同等の環境で行う必要があります。更に遅延削除処理にかかる時間が最大となるように,以下の環境でチューニングを行う必要があります。
-
システムへの負荷(メッセージの送受信処理など)が最大となるような環境
-
キュー内の遅延削除対象となるメッセージ数,配信済み状態ではないメッセージ数,メッセージのサイズが最大となる環境
メッセージの遅延削除にかかる時間は,Reliable MessagingがHiRDBへ発行する,削除SQLにかかる時間から判断します。削除SQLにかかる時間はHiRDBのSQLトレースから判断します。
以下に,Reliable Messagingが遅延削除で発行する削除SQLを示します。
削除SQLは永続キュー毎に発行されるため,発行するSQLの中で一番時間のかかったSQLを元にチューニングを行ってください。
DELETE FROM <DBへの接続ユーザ名>.<RMSystemNameプロパティ指定値>_MSG_<キュー名称> WHERE GROUP_NAME=' ' AND DELETE_FLAG=?"
-
(3) Reliable Messagingの管理情報テーブルの作成
DBMSとしてHiRDBを使用する場合,次に示す手順で管理情報テーブルを作成します。HiRDB SQL Executerの使用方法については,HiRDB SQL Executerのドキュメントを参照してください。
-
コンフィグレーションプロパティのRMSystemNameに指定する値(3文字以内の英数字)の決定
RMSystemNameについては,「6.2 Reliable Messagingのコンフィグレーションプロパティの詳細説明」を参照してください。
-
SQLファイルの編集
テーブル作成用SQLファイル(%HRMDIR%\sql\createtableshirdb.sql)を任意の場所にコピーしてから,このファイルをテキストエディタで開き,ファイル中の5か所の"<RMSystemName>"の部分を手順1.で決定したRMSystemNameの指定値で置き換えて,ファイルを保存します。
また,必要に応じて"<RMAREA>"の部分を表の行を格納するRDエリア名に変更します。または"IN <RMAREA>"の部分を削除します。"IN <RMAREA>"の部分を削除した場合は,格納するRDエリアをHiRDBが決定します。HiRDBが決定するRDエリアについては,マニュアル「HiRDB SQLリファレンス」を参照してください。
-
SQLファイルの実行
- Windowsの場合
-
次に示すコマンドでHiRDB SQL Executerを開始します。
pdsqlw -u <接続ユーザ名>/<パスワード>※ -h <HiRDBサーバのホスト名またはIPアドレス> -n <HiRDBサーバのポート番号>
HiRDB SQL Executerの[ファイル]メニューから[ファイルから実行]を選択し,手順2.で編集したSQLファイルを指定して実行します。
- UNIXの場合
-
環境変数PDUSER※,PDHOST,PDNAMEPORTを設定し,次に示すコマンドでHiRDB SQL ExecuterからSQLファイルを実行します。
pdsql < <手順2.で編集したSQLスクリプトファイルのパス>
- 注※
-
接続ユーザ名には,権限を付与した接続ユーザ名を指定します。詳細については,「3.4.1(1)(b) HiRDBのユーザ権限の付与」を参照してください。
共用キューを使用して複数システム間でのアプリケーション連携をする場合には,送信側システムと受信側システムで同じ接続ユーザ名を使用します。