Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus Reliable Messaging


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で使用する接続ユーザには,次に示すユーザ権限を付与してください。

  • CONNECT権限

  • スキーマ定義権限

ユーザ権限を付与するには,データベース定義ユティリティ(pddef)またはHiRDB SQL Executerを使用します。ここでは,データベース定義ユティリティ(pddef)を使用してユーザ権限を付与する場合の手順を説明します。Reliable Messagingが動作するマシンまたはHiRDBが動作するマシンで,次に示す手順を実行してください。データベース定義ユティリティ(pddef)の使用方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

  1. 環境変数の設定

    次に示す環境変数を設定します。

    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
  2. データベース定義ユティリティ(pddef)の開始

    次に示すとおりコマンドを入力して,データベース定義ユティリティ(pddef)を開始します。

    pddef
  3. SQL文の実行

    次に示すSQL文を実行します。

    GRANT  CONNECT  TO  <権限を付与する接続ユーザ名>
                  IDENTIFIED  BY  <パスワード>;
    GRANT  SCHEMA   TO  <権限を付与する接続ユーザ名>;
    注※

    Reliable Messagingが使用する接続ユーザの名前です。HiRDBのクライアント環境変数グループに登録したPDUSER環境変数と同じ値になります。PDUSER環境変数については,「3.4.1(2)(b) HiRDBの環境変数グループの登録」を参照してください。

  4. データベース定義ユティリティ(pddef)の終了

    データベース定義ユティリティ(pddef)を終了するには,

    Windowsの場合

    CtrlキーとZキーを同時に押したあと,Enterキーを押してください。

    UNIXの場合

    CtrlキーとDキーを同時に押してください。

(c) HiRDBのスキーマの定義

Reliable Messagingの管理情報テーブル用のスキーマを定義します。

スキーマを定義するには,データベース定義ユティリティ(pddef)またはHiRDB SQL Executerを使用します。ここでは,データベース定義ユティリティ(pddef)を使用してスキーマ定義する場合の手順を説明します。Reliable Messagingが動作するマシンまたはHiRDBが動作するマシンで,次に示す手順を実行してください。データベース定義ユティリティ(pddef)の使用方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

  1. 環境変数の設定

    次に示す環境変数を設定します。

    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のユーザ権限の付与」を参照してください。

  2. データベース定義ユティリティ(pddef)の開始

    次に示すとおりコマンドを入力して,データベース定義ユティリティ(pddef)を開始します。

    pddef
  3. SQL文の実行

    次に示すSQL文を実行します。

    CREATE SCHEMA;
  4. データベース定義ユティリティ(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が動作するマシンで設定をします。

(a) HiRDBの環境変数の設定

次に示す環境変数を設定します。

  • PDXAMODE

    1を指定します。

  • PDTXACANUM

    Reliable Messagingが使用するDBコネクション数の最大値を指定します。この場合の最大値は,Reliable Messaging本体およびアプリケーションが使用するDBコネクションの合計です。Reliable MessagingがDBコネクションを使用するタイミングと,使用するコネクションの数を次の表に示します。

    表3‒2 Reliable MessagingがDBコネクションを使用するタイミングと使用するコネクションの数

    項番

    Reliable Messagingの機能

    DBコネクションを使用するタイミング

    コネクション使用数

    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のクライアント環境変数グループに登録する内容を次の表に示します。

表3‒3 HiRDBのクライアント環境変数グループに登録する内容

項番

環境変数名

設定内容

1

PDHOST

HiRDBサーバのホスト名またはIPアドレスを指定します。

2

PDUSER

HiRDBサーバのユーザ名※1およびパスワードを指定します。

3

PDNAMEPORT

HiRDBサーバのポート番号を指定します。

4

PDSWAITTIME※2

Component Containerのトランザクションタイムアウトの値※3よりも大きな値を指定します。

5

PDCWAITTIME※2

Component Containerのトランザクションタイムアウトの値※3よりも大きな値を指定します。

また,メッセージの遅延削除にかかる時間よりも大きな値を指定します※4

6

PDSWATCHTIME

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のドキュメントを参照してください。

  1. コンフィグレーションプロパティのRMSystemNameに指定する値(3文字以内の英数字)の決定

    RMSystemNameについては,「6.2 Reliable Messagingのコンフィグレーションプロパティの詳細説明」を参照してください。

  2. SQLファイルの編集

    テーブル作成用SQLファイル(%HRMDIR%\sql\createtableshirdb.sql)を任意の場所にコピーしてから,このファイルをテキストエディタで開き,ファイル中の5か所の"<RMSystemName>"の部分を手順1.で決定したRMSystemNameの指定値で置き換えて,ファイルを保存します。

    また,必要に応じて"<RMAREA>"の部分を表の行を格納するRDエリア名に変更します。または"IN <RMAREA>"の部分を削除します。"IN <RMAREA>"の部分を削除した場合は,格納するRDエリアをHiRDBが決定します。HiRDBが決定するRDエリアについては,マニュアル「HiRDB SQLリファレンス」を参照してください。

  3. 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のユーザ権限の付与」を参照してください。

    共用キューを使用して複数システム間でのアプリケーション連携をする場合には,送信側システムと受信側システムで同じ接続ユーザ名を使用します。