TJNLを使用するためには、"図12.12 環境作成の流れ"に示す手順に従ってTJNLが動作するための環境を作成する必要があります。
ジャーナルの取得対象となるOracleデータベースを作成します。作成方法については、Oracleのマニュアルを参照してください。既にOracleデータベースが存在する場合、本操作は不要です。
Oracleデータベースを起動してください。詳細はOracleのマニュアルを参照してください。
Oracleデータベースのジャーナルを取得するために、TJNL管理者用のユーザをOracleデータベースに登録する必要があります。このユーザを「TJNLスーパバイザ」と呼びます。TJNLスーパバイザの登録をこれから説明する手順に従って実施したことがある場合には、本操作は不要です。
TJNLスーパバイザの登録は、TJNLが提供するSQLスクリプトとシェルスクリプト(Windowsではバッチファイル)のひな型を複写し修正して行います。その際、SQLスクリプトのファイル名は「.sql」で終わるようにしてください。また、シェルスクリプト(Windowsではバッチファイル)とSQLスクリプトは同じディレクトリに格納してください。
ひな型は以下のファイルで提供しています。
SQLスクリプト ------------------------------------------------------------ /opt/FJSVtjnl/sample/oracle/TJNLGRANT.sql ------------------------------------------------------------
シェルスクリプト ------------------------------------------------------------ /opt/FJSVtjnl/sample/oracle/TJNLGRANT.sh ------------------------------------------------------------
SQLスクリプト ------------------------------------------------------------ インストールフォルダ\TJNL\sample\oracle\TJNLGRANT.sql ------------------------------------------------------------
バッチファイル ------------------------------------------------------------ インストールフォルダ\TJNL\sample\oracle\TJNLGRANT.bat ------------------------------------------------------------
ひな型は以下の内容に設定されています。
ORACLE_HOME: /opt/oracle/product/11.2.0(Windowsではc:\oracle\product\11.2.0)
ORACLE_SID: TJNL1
Oracleデータベース管理者のユーザ名: %system(注)
Oracleデータベース管理者のパスワード: %manager(注)
TJNLスーパバイザのユーザ名: %tjnlspv(注)
TJNLスーパバイザのパスワード: %tspv001(注)
注)Oracleの命名規則に違反しており、このままでは登録できません。
環境に合わせてひな型を複写して修正します。修正に必要な値はOracleデータベースの管理者に確認してください。
複数のTJNL環境を作成する際には、TJNL環境ごとにTJNLスーパバイザの登録を行う必要がありますので、ひな型をTJNL環境ごと複写して使用してください。
ひな型の修正内容について、以下に説明します。
SQLスクリプトを修正する
既にOracleデータベースに登録済みのアカウントをTJNLスーパバイザとする場合は、SQLスクリプトのうち、アカウントの登録部分をコメントにします。以下に修正の入力例を示します。
例.SQLスクリプトのアカウント登録部分をコメントにする
----------------------------------------------------------------------------- CREATE USER %tjnlspv IDENTIFIED BY %tspv001; ↓ -- CREATE USER %tjnlspv IDENTIFIED BY %tspv001; -----------------------------------------------------------------------------
SQLスクリプトに設定されているTJNLスーパバイザのユーザ名とパスワードを修正します。ユーザ名とパスワードは30バイト以内の長さで指定してください。ユーザ名とパスワードをダブルクォーテーションで囲んだ場合は、ダブルクォーテーションも含めて30バイト以内の長さで指定してください。以下に修正の入力例を示します。斜体の部分が修正箇所です。
例.TJNLスーパバイザのユーザ名がspvisor、パスワードがspvpswdの場合
--------------------------------------------------------------- CREATE USER %tjnlspv IDENTIFIED BY %tspv001; (中略) GRANT CREATE SESSION, (中略) DBA TO %tjnlspv; ↓ CREATE USER spvisor IDENTIFIED BY spvpswd; (中略) GRANT CREATE SESSION, (中略) DBA TO spvisor; ---------------------------------------------------------------
なお、上記の例ではアカウントの英大文字と英小文字は区別されません。アカウントをダブルクォーテーションで囲んだ場合に英大文字と英小文字が区別されます。アカウントの英大文字と英小文字を区別したい場合の修正の入力例を以下に示します。
例.TJNLスーパバイザのユーザ名がSpVisorで英大文字と英小文字を区別する、かつ、パスワードがspvpswdの場合
--------------------------------------------------------------- CREATE USER %tjnlspv IDENTIFIED BY %tspv001; (中略) GRANT CREATE SESSION, (中略) DBA TO %tjnlspv; ↓ CREATE USER "SpVisor" IDENTIFIED BY spvpswd; (中略) GRANT CREATE SESSION, (中略) DBA TO "SpVisor"; ---------------------------------------------------------------
シェルスクリプトを修正する
シェルスクリプトに設定されているORACLE_HOMEを修正します。以下に修正の入力例を示します。
例.ORACLE_HOMEが/app/db/oracle/product/11.2.0の場合
--------------------------------------------------------------- ORACLE_HOME=/opt/oracle/product/11.2.0 ↓ ORACLE_HOME=/app/db/oracle/product/11.2.0 ---------------------------------------------------------------
ジャーナルを取得するOracleデータベースのシステム識別子を指定します。
シェルスクリプトに設定されているORACLE_SIDを修正します。以下に修正の入力例を示します。
例.ORACLE_SIDがORADB1の場合
--------------------------------------------------------------- ORACLE_SID=TJNL1 ↓ ORACLE_SID=ORADB1 ---------------------------------------------------------------
TJNLスーパバイザの登録時にOracleデータベースに接続するためのユーザアカウントを指定します。新しいユーザの作成を許可されたアカウントを指定する必要があります。
シェルスクリプトに設定されているデータベース管理者のユーザ名とパスワードを修正します。以下に修正の入力例を示します。
例.データベース管理者のユーザ名がdbmanager、パスワードがpswdの場合
--------------------------------------------------------------- SYSTEM_ID=system SYSTEM_PASS=manager ↓ SYSTEM_ID=dbmanager SYSTEM_PASS=pswd ---------------------------------------------------------------
ひな型を複写してSQLスクリプトのファイル名を変更した場合は、シェルスクリプトに設定されているSQLスクリプトのファイル名を修正します。以下に修正の入力例を示します。
例.SQLスクリプトのファイル名がTJNLGRANT2.sqlの場合
----------------------------------------------------------------------------- $ORACLE_HOME/bin/sqlplus $SYSTEM_ID/$SYSTEM_PASS @TJNLGRANT.sql ↓ $ORACLE_HOME/bin/sqlplus $SYSTEM_ID/$SYSTEM_PASS @TJNLGRANT2.sql -----------------------------------------------------------------------------
バッチファイルを修正する
バッチファイルに設定されているORACLE_HOMEを修正します。以下に修正の入力例を示します。
例.ORACLE_HOMEがd:\oracle\product\11.2.0の場合
--------------------------------------------------------------- set ORACLE_HOME=c:\oracle\product\11.2.0 ↓ set ORACLE_HOME=d:\oracle\product\11.2.0 ---------------------------------------------------------------
TJNLを使用してジャーナルを取得するOracleデータベースのシステム識別子を指定します。
バッチファイルに設定されているORACLE_SIDを修正します。以下に修正の入力例を示します。
例.ORACLE_SIDがORADB1の場合
--------------------------------------------------------------- set ORACLE_SID=TJNL1 ↓ set ORACLE_SID=ORADB1 ---------------------------------------------------------------
TJNLスーパバイザの登録時にOracleデータベースに接続するためのユーザアカウントを指定します。新しいユーザの作成を許可されたアカウントを指定する必要があります。
バッチファイルに設定されているデータベース管理者のユーザ名とパスワードを修正します。以下に修正の入力例を示します。
例.データベース管理者のユーザ名がdbmanagerの場合
--------------------------------------------------------------- set SYSTEM_ID=system set SYSTEM_PASS=manager ↓ set SYSTEM_ID=dbmanager set SYSTEM_PASS=pswd ---------------------------------------------------------------
ひな型を複写してSQLスクリプトのファイル名を変更した場合は、バッチファイルに設定されているSQLスクリプトのファイル名を修正します。以下に修正の入力例を示します。
例.SQLスクリプトのファイル名がTJNLGRANT2.sqlの場合
------------------------------------------------------------------------------------------ %ORACLE_HOME%\bin\sqlplus %SYSTEM_ID%/%SYSTEM_PASS% @TJNLGRANT.sql ↓ %ORACLE_HOME%\bin\sqlplus %SYSTEM_ID%/%SYSTEM_PASS% @TJNLGRANT2.sql ------------------------------------------------------------------------------------------
シェルスクリプト(Windowsではバッチファイル)を実行して、TJNLスーパバイザを登録します。修正したシェルスクリプト(Windowsではバッチファイル)とSQLスクリプトを同じディレクトリに格納しておきます。
以下に入力例を示します。
例.シェルスクリプトの実行例
--------------------------------------------------------------- ./TJNLGRANT.sh ---------------------------------------------------------------
--------------------------------------------------------------- TJNLGRANT.bat ---------------------------------------------------------------
TJNLを運用するTRMシステムの環境を作成します。TRMシステムの環境の作成方法は、"第17章 環境作成"を参照してください。
なおLinuxサーバの場合、TRM利用者グループを指定したTRMシステムの環境を作成してください。
TRMシステムの環境を作成する際の環境定義ファイルには、以下の見積りに従った値に、ジャーナル提供側業務およびジャーナル利用側業務で必要となる値を加算した値を指定してください。ジャーナル提供側業務および、ジャーナル利用側業務で必要となる値の見積り方法は"第17章 環境作成"を参照してください。
以下に、TJNLが必要とする各指定値の見積り式を示します。
[MQDConfiguration]セクションに指定するキーワードの見積り式を、"表12.13 [MQDConfiguration]セクションに指定するキーワードの見積り式"に示します。
キーワード | 見積り式 |
---|---|
MessageBufferMaxSize | 80[MB]~1024[MB]の範囲で指定します。 |
[Transaction]セクションに指定するキーワードの見積り式を、"表12.14 [Transaction]セクションに指定するキーワードの見積り式"に示します。
キーワード | 見積り式 |
---|---|
Max_Size | 65536[KB]を指定します。 |
[SystemFile]セクションに指定するキーワードの見積り式を、"表12.15 [SystemFile]セクションに指定するキーワードの見積り式"に示します。
キーワード | 見積り式 |
---|---|
SystemFile2_Size | ( ( 取得定義サイズの総和 × 2 ) + 1つの取得定義サイズは以下の見積り式に従って求めます。 1つの配付定義サイズは以下の値です。 |
[DiskQueue]セクションに指定するキーワードの見積り式を、"表12.16 [DiskQueue]セクションに指定するキーワードの見積り式"に示します。
キーワード | 見積り式 |
---|---|
Size | 各メッセージキューに蓄積する利用ジャーナル量の総和 + (配付対象メッセージキュー数 × 16[KB]) + 100[KB] 1つのメッセージキューに蓄積する利用ジャーナル量は以下の見積り式に従って求めます。 蓄積ジャーナル量は以下の見積り式に従って求めます。 1利用ジャーナル量は以下の見積り式に従って求めます。 |
注1) 他システムへ転送する場合は、転送の遅延時間を考慮してください。また、メッセージキューから利用ジャーナルを直接取り出す場合は、取出し業務の遅延時間を考慮してください。
注2) 取得対象列のデータ属性に基づいたデータ長に4バイト加算した値。列のデータ属性に基づいたデータ長は、"B.2.2 Oracleと定義の対応関係"を参照してください。
TRM環境定義ファイルの記述例を"表12.17 環境定義ファイルの記述例"に示します。
[MQDConfiguration] # TRM環境情報 QueueMax = 100 MessageBufferMaxSize = 80 # 80Mバイト [Transaction] # トランザクション管理ファイル情報 TransactionFile = /trmdev2/tranfile Max_Size = 65536 # 65536Kバイト [SystemFile] # システム制御用ファイル情報 SystemFile1 = /trmdev2/systemfile1 SystemFile2 = /trmdev2/systemfile2 SystemFile2_Size = 8000 # 8Mバイト [QueueIndex] # メッセージキュー管理ファイル情報 File = /trmdev2/indexfile [DiskQueue] # ディスク型メッセージキューの情報 File = /trmdev2/diskfile Size = 1000000 # 1Gバイト |
[MQDConfiguration] # TRM環境情報 QueueMax = 100 MessageBufferMaxSize = 80 # 80Mバイト [Transaction] # トランザクション管理ファイル情報 TransactionFile = d:\trmdev2\transactionfile Max_Size = 65536 # 65536Kバイト [SystemFile] # システム制御用ファイル情報 SystemFile1 = d:\trmdev2\systemfile1 SystemFile2 = d:\trmdev2\systemfile2 SystemFile2_Size = 8000 # 8Mバイト [QueueIndex] # メッセージキュー管理ファイル情報 File = d:\trmdev2\queueindex [DiskQueue] # ディスク型メッセージキューの情報 File = d:\trmdev2\diskqueuefile Size = 1000000 # 1Gバイト |
TJNLの環境を作成するためには、事前にTRMを起動しておく必要があります。TRMの起動方法の詳細は、"18.1.1 TRMの起動"を参照してください。
TJNLの環境定義では、TJNLの動作環境として以下の情報を定義します。
連携するRDBMSに関する情報
TJNLに関する情報
OSに関する情報
ジャーナル取得ファイルに関する情報
TJNLの環境定義を格納するファイルをTJNL環境定義ファイルと呼びます。TJNL環境定義ファイルは、ユーザが任意の通常ファイル上にテキストファイルとして作成します。
TJNL環境定義ファイルは、viコマンドなど(Windowsではメモ帳など)の編集ツールを使用して作成してください。TJNL環境定義の記述方法の詳細については、"12.4.4 環境定義の記述"を参照してください。
TJNL環境の作成は、tjnlsetupコマンドを使用して行います。TJNLの環境作成時には、TJNLスーパバイザのユーザ名とパスワードを確認するための問合せが行われます。tjnlsetupコマンドの詳細は、"12.10.3.1 tjnlsetup(TJNL環境を作成する)"を参照してください。
なお、同一サーバ上に複数のOracleインスタンスが存在する場合、TJNLの環境定義に指定されているOracleインスタンスと連携します。
以下にtjnlsetupコマンドの入力例を示します。
------------------------------------------------
tjnlsetup -f /tjnl/def/TJNLenv.def
------------------------------------------------
------------------------------------------------
tjnlsetup -f c:\tjnl\def\TJNLenv.def
------------------------------------------------
TJNLの環境を作成した後に、環境定義の変更やジャーナル取得ファイルの追加が行えます。環境定義の変更やジャーナル取得ファイルの追加についての詳細は、"12.9 保守"を参照してください。
利用ジャーナルを配付するメッセージキューを作成します。メッセージキューの作成方法は、"18.1.2 メッセージキューの作成"を参照してください。