4. OLF/TP Adapter 実行環境の運用

4.1. 概要

本編では、OLF/TP Adapterを動作させるために必要となる運用手順を説明しています。

4.2. 運用

4.2.1. 管理環境での運用

管理環境上でOLF/TP Adapterを運用する場合、コネクションプールの作成とコネクタリソースの登録が必要になります。

コネクションプールの作成とコネクタリソースの登録は、OLF/TP Adapterのrarファイル、OLF/TP Adapterを利用するAPコンポーネントを管理環境に配備後、運用管理コマンドや統合運用管理ツールを利用して行うことができます。
詳細な方法は、[ ドメイン構築・基本設定ガイド ]を参照してください。

コネクションプールの作成、コネクタリソースの登録が正しく行われますと 統合運用管理ツールの画面は以下のようになります。

登録画面

コネクションプールの作成、コネクタリソースの登録後、次の設定を行ってください。

  1. ドメインツリー上で、「アプリケーション」-「リソースアダプタ」-「配備したrarファイル」を 選択し、「全てのEJBプロセスグループで使用するかどうかを指定」で「各プロセスグループの属性で指定する」を選択します。 また、「運用管理エージェント上でロードするかどうかを指定」にチェックが入っていないことを確認してください。 チェックが入っている場合は、チェックを外してください。

    リソースアダプタの設定

  2. ドメインツリー上で、「リソース」-「コネクタリソース」-「登録したコネクタリソース名」を 選択し、「全てのEJプロセスグループで使用するかどうかを指定」で「各プロセスグループの属性で指定する」を選択します。 また、「運用管理エージェント上でロードするかどうかを指定」にチェックが入っていないことを確認してください。 チェックが入っている場合は、チェックを外してください。

    コネクタリソースの設定

  3. ドメインツリー上で、「TPシステム」-「アプリケーショングループ」-「アプリケーショングループ名」-「プロセスグループ」-「プロセスグループ名」を 選択して右側画面で「リソース」タブを選択、 「使用するコネクタリソースリスト」で使用するコネクタリソースリストを指定します。 (使用しないコネクタリソースは削除してください。) また、「使用するリソースアダプタ」で使用するリソースアダプタを選択します。 (使用しないリソースアダプタは削除してください。)

    コネクタリソースの設定

    ※1つのプロセスグループにはリソースアダプタを1つだけ設定してください。

  4. ドメインツリー上で、「リソース」-「コネクタコネクションプール」-「登録したコネクタコネクションプール名」を 選択し、「異常時コネクション解放」にチェックが入っていないことを確認してください。 チェックが入っている場合は、チェックを外してください。

  5. 設定完了後、プロセスグループを再起動することで設定が有効になります。

4.2.2. 非管理環境での運用

非管理環境上でOLF/TP Adapterを運用する場合、WebOTX固有機能定義(nec-j2ee.xml)によりプール管理のプロパティを指定しておく必要があります。

詳細については、 [ アプリケーション開発ガイド > 2.2.4.3. WebOTX固有機能定義(nec-j2ee.xml)の編集 ] を参照してください。

4.3. 設定

OLF/TP Adapterを使用するには、OLF/TP Adapterの動作環境についての設定を行う必要があります。OLF/TP Adapterでは、実行時に通信環境定義(OLFAdapter.ini)、端末定義(OLFAdapter.xml)を参照して動作します。これらのファイルは通信に使用するリソース及び接続先の情報を定義しています。

これらの設定に加え、配備記述子(ra.xml)とよばれるOLF/TP Adapterのプロパティを設定する必要があります。配備記述子はJ2EEコネクタアーキテクチャ準拠の設定ファイルで、リソースアダプタのプロパティ情報を設定します。

WebOTXでは、プールの拡張機能を提供しています。これらの機能を使用するには、WebOTX固有機能定義(nec-j2ee.xml)で定義する必要があります。

4.3.1. 通信環境定義(OlfAdapter.ini)

OLF/TP Adapterを使用してバックエンドサーバと通信するには、まず通信に使用するリソースを定義します。通信環境定義は以下のファイルを編集してください。

<OLF/TP Adapterインストールディレクトリ>/Adapter/OLFTP/Run/conf/OlfAdapter.ini

本定義では、以下の情報を定義します。

プロパティ名 既定値 説明
RmtDefinition なし 【必須パラメータ】
端末定義ファイルパス 。
例1:RmtDefinition = /etc/olf/OlfAdapter.xml
例2:RmtDefinition = D:\\WebOTX\\Adapter\\OLFTP\\Run\\conf\\OlfAdapter.xml
UTConnection  4 OLF/TP-UT プロトコルのコネクションの開設可能総数の上限(発信、着信含む)。UTプロトコルを使用して通信する場合に指定してください。
UWConnection  4 OLF/TP-UW プロトコルのコネクションの開設可能総数の上限(発信、着信含む)。UWプロトコルを使用して通信する場合に指定してください。
MaxRecv 4 受信スレッドの最大値。リモート定義におけるdelivery=realtime のコネクションの開設可能総数の上限値。
MaxSession 4 同時開設可能な最大セッション数。1以上を指定してください。APコンポーネントの多重度以上を指定してください。 OLF/TP Adapter がプロセスグループ上で動作する場合は、プロセスグループのスレッド数以上を指定してください。
RequestNum 8 同時送受信可能なオブジェクトの最大数。
MaxListenerThread 3 非同期受信を実行するスレッド数。1以上を指定してください。
OlfByteBufferNum 8 送受信バッファの最大総数。
OlfByteBufferSize 10000 送受信バッファサイズ。送受信データの最大サイズ+64バイトを指定してください
PollingInterval  1000 delivery=polling の受信監視間隔をmsec 単位で指定する。
無通信状態でも監視動作が実行されるため、1,000(1 秒)以上が好ましい。それ以下の値ではwarning がログファイルに出力されます。 【0は指定不可】
TraceLvl  ConDis トレースレベルを指定する。以下のシンボルで指定する。
No  トレースを採取しない
ConDis  コネクションの接続・切断レベル
PoolInOut  コネクションプールからの出し入れ(利用状況)
ReqResp  アプリケーションの要求メソッド
ReqRespComplete  アプリケーションからのメソッドの結果
Protocol  セッションレベルのプロトコルプリミティブ
Message  入出力しているバッファの先頭をダンプ。MessageTraceSizeでダンプサイズを指定できる
Debug  デバッグ用
MessageTraceSize 160 TraceLvl=Message で出力されるダンプサイズ。【nolim もしくは任意の正の整数値】
TraceLogDir なし トレースやログを出力するディレクトリ。
指定配下にそれぞれ、trace, log というディレクトリが作成され、その中にファイルがサイクリックに複数作成される。−を指定すると、 トレースはstdoutに、ログはstderrに、それぞれ出力される。管理環境で動作させる場合は、既定値を使用してください。
TraceLogSuffix なし トレースやログのファイル名の拡張子を指定します。;で、トレースとログをそ
れぞれ別々の拡張子とすることができます。
例:TraceSuffix=.txt;.log
→トレースは、trace01.txt 、ログはlog01.log というように出力されます。
TraceLogFileCount 10 保存するログファイルの最大数。【1〜98 】
TraceLogFileSize 5000 ひとつのトレースファイルあたりの最大行数。【10〜100,000 】
なお、一回のトレース出力で複数行出力されるものは、一行とみなします。たとえばTraceLvl=Messageの送受信ダンプイメージは、 一回が一行とみなします。このため、実際のファイルサイズは指定行より大きくなることがあります。
TraceBufferSize 1024 バッファリングするサイズ。【10〜1,048,576 】
なお、ログファイルは行単位で即時出力され、バッファリングされません。
TraceFlushingInterval 5 トレースファイルがバッファ内に滞留する最大時間(秒)【1以上】
なお、実際は本値x1000 がPollingInterval(ms)の整数倍となります。
UTport なし OLF/TP-UTの着信ポート番号
OLF/TP-UTで着信接続を行う場合に設定します。
UWport なし OLF/TP-UWの着信ポート番号
OLF/TP-UWで着信接続を行う場合に設定します。
PortError terminate 着信ポートの準備に失敗したときの動作を指定します。
terminate  OLFライブラリの初期化に失敗します。
ignore       失敗した着信ポートは着信不可となり、初期化は成功します。
CommonInitialize yes yesの場合、アイテムマップ共通機能の初期化を行う。
cddpath なし アイテムマップファイルの初期ロードディレクトリ。CommonInitialize=yesの時に有効。
RARファイルにアイテムマップをアーカイブする場合は必要ありません。
commonTraceLvl No CommonInitialize=yesの時に有効。アイテムマップ共通機能のトレースレベル
No  トレースを採取しない
InitialLoad  アイテムマップの初期化時のトレース
ResultFail  アイテムマップI/O失敗時のトレース
Pio  アイテムマップのオープン、クローズ情報

(注意:定義を変更する場合は、APサーバを停止してください。)

4.3.2. 端末定義(OlfAdapter.xml)

OLF/TP Adapterを使用しての通信相手となるホストの情報を定義します。端末定義は以下のファイルを編集してください。

<OLF/TP Adapterインストールディレクトリ>/Adapter/OLFTP/Run/conf/OlfAdapter.xml

本定義では、以下の情報を定義します。

タグ名 既定値 説明
AckTimeout 5秒 Ack/Conf監視時間を設定します(単位:秒、あるいはnolim、0はnolimと同じ、既定値=5)。

 送信時の送達確認の受信待ち時間であり、指定時間以上経過した場合、コネクションが切断されます。 また、UWにおけるPLstopも、本時間で監視します。

DefaultRmtDef   RmtDef配下で省略された各エレメントの既定値を設定します。

 本定義はRmt定義内に一回だけ記述できますが、省略することもできます。 記述する場合、後続のRmtDefの既定値が、本設定値になります。
 配下にもてるエレメントは、次のとおり。

RmtAddr, RmtPort, MaxConnection, Type, InitTimeout, AckTimeout, ResendInterval, ResendCount, ReplyTimeout

Delivery polling 非同期メッセージの受信監視の方式を指定します。
polling OLF/TP Adapterのpolling監視スレッドで、対象となるコネクションをすべて受信監視します。
realtime 対象となるコネクションごとに監視スレッドを用意します。
 
IdleTimeout nolim 無通信監視時間を設定します(単位:秒、あるいはnolim)。
既定値は無制限(nolim)です。すなわち無通信監視を行いません。

指定時間の間、相手からのメッセージ受信が行われなかった場合、コネクションを切断します。   アライブチェック用の電文(TXreq(/NULL)や、DFctrl)も含め、あらゆる受信が行われた場合、コネクション切断にはなりません。   また、以下の時間は、処理待ち時間として無通信監視の対象となりません。

・コネクション接続直後のDFinitもしくはPStart待ち時間
・request()における、TXackもしくはTXreply待ち時間
・recv()におけるTXreq待ち時間
・UWにおけるPLstart/PLstop待ち時間

 値0は、nolimと同じです。

InitTimeout 30 接続時の活性監視時間を設定します(単位:秒、あるいはnolim、0はnolimと同じ、既定値=30)。

 コネクション接続時のDFinit、もしくはPstart、ならびにUWのセッション取得時のPLstartの監視を行います。指定時間以上経過した場合、コネクションは切断され、そのとき発行しているgetSessionは失敗します。

MaxConnection 1 最大接続コネクション数です。

 1以上の整数を指定してください。

PoolConnect atRequest OLF/TP-UTプロトコルを使用する場合は、atRequestを指定してください。OLF/TP-UWプロトコルを使用する場合は、initialを指定してください。
ReplyTimeout  30 応答時間を設定します(単位:秒、あるいはnolim、0はnolimと同じ)

 

ResendCount 5 送信再送回数を指定します。

 指定回数再送し、受け付けられなければ、送信失敗となります。0を指定した場合は再送しません。

ResendInterval 30 再送間隔を指定します(単位:秒、0は不可)。

 TXackあるいはTXconfで、RETRYを受信したとき再送する間隔です。

RmtAddr 127.0.0.1 接続先のアドレスを指定します。

ホスト名(hostsもしくはDNS登録されたもの) あるいはIPアドレス形式で指定必須。

RmtDef   一つの接続先を定義します。各種プロパティで指定していないものは、 DefaultRmtで既定値を指定できます。

 配下にもてるエレメントは、次のとおり。

RmtName, RmtAddr, RmtPort, MaxConnection, Type, Delivery, PoolConnect,  InitTimeout, AckTimeout, ResendInterval, ResendCount, ReplyTimeout

RmtName LOCALHOST 接続先のシンボリック名を指定します。

 本値は配備記述子のServerNameで指定します。
 本エレメントはRmtDef配下で必須であり、値はリモート定義全体で一意でなければなりません。
 本エレメントはDefaultRmtDef配下で指定できません。

RmtPort 55540 接続先の着信ポートを指定します。
発信接続時(ConnectWay=connectの場合)には指定が必須です。
ConnectWay connect
接続方法を指定します。
発信時はconnect、着信時はacceptを指定します。
Type  
セッションの種別を指定します。
UT-stateful OLF/TP-UTプロトコルを使用する場合に指定します。
UW OLF/TP-UWプロトコルを使用する場合に指定します。
waitConnectionTimeout nowait
getSessionEx時の待ち合わせ時間を指定します (nowait, nolim, あるいは1以上の整数値、単位:秒)。
セッションの取得では、コネクションプールのコネクションが割り当てられます。 maxConnection分のコネクションがすべて割り当てられた後では、コネクションの解放を待ち合わせることができます。
nowait 待ち合わせは行いません。getSessionExはSessionExceptionをthrowして失敗します。
nolim 他スレッドで解放されるまで無限に待ち合わせます。
1以上の整数値 指定秒数だけ待ち合わせます。タイムアウト時はgetSessionExはSessionTimeoutExceptionを throwして失敗します。
本値がnolimの場合、デッドロックに注意してください。セッションを解放し忘れたり、あるいは自スレッドで残りのセッションを取得したままでnolimのrmtidに対してgetSessionEx を実行すると、デッドロックします。

(注意:定義を変更する場合は、APサーバを停止してください。)

4.3.3. 配備記述子(ra.xml)

OLF/TP Adapterのプロパティを指定するファイルです。OLF/TP Adapterのプロパティは、<config-property>タグで指定します。

以下に、OLF/TP Adapterのプロパティ一覧を示します。

(注:大文字/小文字は区別されます)

プロパティ名 既定値 説明
ASync java.lang.Boolean false OLF/TP Adapterで非同期電文受信を行う場合にtrueを指定します。
CodeType java.lang.String "JIPSE" 接続先ホストが使用しているコード種別を指定します。以下のコード種別が指定できます。(省略可)
  • JIPSE
  • JIPS
  • SJIS
  • EUC
EndianType java.lang.String "big-endian" 接続先ホストのendianタイプを指定します。指定できる値は以下の通りです。
  • big-endian
  • little-endian
ExecutionTimeout java.lang.Integer 60000 受信待ち時間をミリ秒単位で指定します(省略可)。InteractionSpecのExecutionTmeoutに-1を指定している場合、本指定を受信待ち時間として使用します。OLF/TP Adapterでは秒単位で受信を待ち合わせます。よって、待ち時間はExecutionTimeout/1000(秒)となります。0を指定した場合は受信が完了するまでAPコンポーネントに制御が戻りません。
HostType java.lang.String "ACOS4" 接続先のホスト種別を指定します(省略可)。以下のホスト種別が指定できます。
  • ACOS2
  • ACOS4
  • ACOS6
  • Windows
  • UNIX
JISType java.lang.String "JIS78" JIS年度を指定します(省略可)。本指定はCodeTypeが"JIPSE"、"JIPS"のときのみ有効です。以下の値が指定できます。
  • JIS78
  • JIS90
JMSConnectionFactoryName java.lang.String "" 非同期電文受信機能を使用する場合、JMSのQueueConnectionFactoryのJNDI名を指定します。
LIName java.lang.String "" 業務ログイン済みのコネクションをプーリングする場合に指定します(省略可)。接続先業務名を指定します。
VDName java.lang.String "" VDログイン済みのコネクションを作成する場合に指定します(省略可)。VD名を指定します。
OLFConfigFile java.lang.String "" 通信環境定義(OLFAdapter.ini)ファイルのパスを絶対パスで指定します。日本語を含むファイルパスを指定してはいけません。

例:

E:\\winnt\\OlfAdapter.ini

ProtocolType java.lang.String "UT" 通信プロトコルを指定します(省略可)。指定できる値は以下の通りです。
  • UT
  • UW
ServerName java.lang.String "LOCALHOST" 接続先ホスト名を指定します。接続先ホスト名は、端末定義(OLFAdapter.xml)で定義しておく必要があります。
TraceLevel java.lang.Integer 0 トレースレベルを指定します(省略可)。指定できる値は以下の通りです。
  • 0…エラートレース
  • 1…エラートレース+CCIトレース
  • 2…エラートレース+CCIトレース+SPIトレース
  • 99…エラートレース+CCIトレース+SPIトレース+デバッグ情報

APサーバがJ2EEコネクタのトレース機能をサポートしている場合、APサーバで指定したファイルにトレースを出力します。APサーバがトレース機能をサポートしていない場合は標準出力にトレースを出力します。

TXIDLength java.lang.Integer 8 OLF/TP Adapterでは、OLF/TPの拡張領域に含まれているトランザクションIDを使用して受信データの解析を行います。 受信電文にOLF/TPの拡張領域が含まれていない場合、OLF/TP Adapterでは、ユーザデータ中の任意のフィールドをトランザクションIDとして扱います。 本プロパティでは、電文中に含まれるトランザクションIDの長さを指定します(省略可)。
TXIDPosition java.lang.Integer 0 OLF/TP Adapterでは、OLF/TPの拡張領域に含まれているトランザクションIDを使用して受信データの解析を行います。 受信電文にOLF/TPの拡張領域が含まれていない場合、OLF/TP Adapterでは、ユーザデータ中の任意のフィールドをトランザクションIDとして扱います。 本プロパティでは、電文中に含まれるトランザクションIDの位置を指定します(省略可)。
ScreenID java.lang.String "" 下り電文の画面IDが格納されている領域を指定します。指定できる値は以下の通りです。   
  • "TXID"…OLF/TPプロトコルヘッダの拡張領域trans_id
  • "FMTID"…OLF/TPプロトコルヘッダの拡張領域format_id
  • "OLTSDU"…ユーザデータ領域
  • ""…"TXID"→"FMTID"→"OLTSDU"の順に領域を確認し空白文字以外であれば画面IDと見なして動作します。
RecordType java.lang.String "IndexedRecord" 非同期受信データ型を指定します。IndexedRecordとMappedRecordを指定可能です。デフォルトは、IndexedRecord です。
UnpackType java.lang.String "EBCDIC_EBCDIC" 文字集合と符号の組み合わせを指定します。指定できる組み合わせは以下の通りです。   
  • EBCDIC_EBCDIC…文字集合=EBCDIC/符号=EBCDIC(ACOS4)
  • ASCII_EBCDIC…文字集合=ASCII/符号=EBCDIC(ACOS4以外)
  • ASCII_ASCII…文字集合=ASCII/符号=ASCII(ACOS4以外MF-COBOL)
FieldInfoType java.lang.String "FTYPE_ITEM" アイテムマップを使用するか電文情報クラスを使用するかを指定します。指定できる値は以下の通りです。   
  • FTYPE_ITEM…アイテムマップを使用する。
  • FTYPE_GEN…電文フォーマットクラスを使用する。
CddPath java.lang.String "/cdd" RARファイル内のアイテムマップファイルがあるディレクトリのパスを相対パスで指定します。
PackageName java.lang.String "" 電文フォーマットクラス、レコードマッピングクラスのパッケージ名を指定します(省略可)。
FieldInfoTypeにFTYPE_GENを指定した場合のみ有効です。
MCTimer java.lang.Integer 1800000 プール内のConnectionが内部的に保持している端末識別子の解放間隔を指定します。ProtocolTypeが"UW"のときのみ有効です。
LicensePort java.lang.Integer 5450 OLF/TP Adapterのライセンス管理サービスで使用するポート番号を指定します。ライセンス管理サービスで使用するポートを変更した場合のみ指定してください。
CodeConvType java.lang.String OLFTP 利用するコード変換ライブラリを指定します。指定できる値は以下の通りです。
  • OLFTP…OLF/TP Adapterのコード変換ライブラリを使用する。
  • FontAvenue…FontAvenue UniAssistのコード変換ライブラリを使用する。

JIS2004文字を利用する必要がある場合は FontAvenue を指定してください。

(注意:定義を変更する場合は、OLF/TP Adapterのrarファイルを再配備する必要があります。)

4.3.4. WebOTX固有機能定義(nec-j2ee.xml)

OLF/TP Adapterのプール管理のプロパティを指定するファイルです。この設定は非管理環境下でのみ使用されます。複数のOLF/TP Adapterプロパティを指定する場合は<connector>タグを複数記述してください。

タグ名 既定値 説明
display-name "" 【必須パラメータ】
表示名(プール識別名)

ra.xmlの<display-name>タグに対応します。

jndi-name "" 【必須パラメータ】
JNDI名
pool-param initial-capacity 1 初期プーリング数

プールの開始時の論理パス事前生成数を指定します。
初期プーリング数が最大プーリング数より大きい場合、最大プーリング数までとなります。

max-capacity 4 最大プーリング数

プーリングする論理パスの最大数

Shrink-period-minutes 0 論理パス解放間隔(分単位)

指定された時間以上未使用であるプール内論理パスを解放します。
プールチェック間隔が0以上の場合のみ有効となります。

cleanup-frequency 0 プールチェック間隔(秒単位)

論理パス解放間隔、Connection解放間隔にて使用するタイマーの間隔を指定します。

connection-duration-time 0 Connection解放間隔(秒単位)

指定された時間以上使用されているConnectionを解放します。
プールチェック間隔が0以上の場合のみ有効となります。

default-ra-principal name "" デフォルトユーザ名
password "" デフォルトパスワード
log logging-enabled false ログ採取の有無

true - ログ採取あり false - ログ採取なし

log-filename "OLFAdpt.log" ログファイル名

実際のログファイル名は、指定したログファイル名拡張子の前にファイル名を一意とする識別子が付きます。

log-filesize 1024 ログファイルサイズ(KB)
log-backupindex 1 ログファイルバックアップ数

以下に記載例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<j2ee-specific-information>
   <connector>
       <display-name>OLFTP</display-name>
       <jndi-name>ACOSAdapt</jndi-name>
       <pool-param>
           <initial-capacity>1</initial-capacity>
           <max-capacity>4</max-capacity>
           <Shrink-period-minutes>15</Shrink-period-minutes>
           <cleanup-frequency>1000</cleanup-frequency>
           <connection-duration-time>0</connection-duration-time>
           <max-wait-time-in-millis>60000</max-wait-time-in-millis>
       </pool-param>
       <default-ra-principal>
           <name>name</name>
           <password>password</password>
       </default-ra-principal>
       <log>
           <logging-enabled>false</logging-enabled>
           <log-filename>OLFAdpt.log</log-filename>
           <log-filesize>1024</log-filesize>
           <log-backupindex>1</log-backupindex>
       </log>
   </connector>
</j2ee-specific-information>