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

4.1. 概要

OLF/TP Adapterを使用するための手順と、OLF/TP Adapterの設定について詳細に説明します。

 

4.2. 運用

アプリケーションからOLF/TP Adapterを利用するには、APサーバに対してOLF/TP Adapterを配備しておく必要があります。OLF/TP Adapterの配備は、環境により手順が異なります。管理環境(EJBコンテナ)と、非管理環境(WebOTXアプリケーションサーバ)に配備するための手順を以下に説明します。

 

4.2.1. EJBコンテナへの配備

OLF/TP AdapterをEJBコンテナに配備するためには、配備ツールを使用します。WebOTXは配備ツールを用意しています。WebOTX 配備ツールの使用方法については、EJBコンテナのマニュアルを参照してください。OLF/TP Adapterの配備方法については、「アプリケーションの開発」を参照してください。

  • コネクションプールの作成とコネクタリソースの登録

       OLF/TP AdapterをEJBコンテナに配備した後に、コネクションプールの作成とコネクタリソースの登録を行う必要があります。
       コネクションプールの作成とコネクタリソースの登録は運用管理コマンドや統合運用管理ツールを利用して行うことが出来ます。詳細な利用方法はそれぞれのマニュアルを参照してください。

       コネクションプールの作成とコネクタリソースの登録を行うと以下のようになります。
       登録画面

       上記作業を行った後に以下の作業を行ってください。

       統合運用管理ツールを起動し、ドメインに接続します。その後、「アプリケーション」-「リソースアダプタ」-「配備したrarファイル」を選択します。
       右側の画面で「JMXエージェント上でロードするかどうかを指定」のチェックをはずし、「全てのEJBプロセスグループで使用するかどうかを指定」でプルダウンメニューから「各プロセスグループの属性で指定する」を選択します。

       設定画面は以下のようになります。
       リソースアダプタの設定

       次に、「リソース」-「コネクタリソース」-「登録したコネクタリソース名」を選択します。
       右側の画面で「JMXエージェント上でロードするかどうかを指定」のチェックをはずし、「全てのEJBプロセスグループで使用するかどうかを指定」でプルダウンメニューから「各プロセスグループの属性で指定する」を選択します。

       設定画面は以下のようになります。
       コネクタリソースの設定

       次に、「TPシステム」-「アプリケーショングループ」-「アプリケーショングループ名」-「プロセスグループ」-「プロセスグループ名」を選択します。
       右側の画面でリソースタブを選択し、使用するコネクタリソースリストに登録したコネクタリソースが表示されていることを確認します。複数のコネクタリソースを登録している場合には、使用しないコネクタリソースを削除してください。また、使用するリソースアダプタに配備したリソースアダプタが表示されていることを確認します。複数のリソースアダプタを配備している場合には、使用しないリソースアダプタを削除してください。

       コネクタリソースの設定

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

    4.2.2. WebOTXアプリケーションサーバへの配備

    非管理環境でOLF/TP Adapterを使用する場合は、OLF/TP Adapterの提供するクラスファイルをクラスパスに含める必要があります。以下にWebOTXアプリケーションサーバでOLF/TP Adapterを利用するための配備手順を示します。

    (1)通信環境定義
        WebOTXアプリケーションサーバが動作している環境の通信環境定義、端末定義ファイルを編集します。

    (2)共有コンポーネントへの登録
      以下のjarファイルをWebOTXの共有コンポーネントとしてWebOTXに登録します。共有コンポーネントの登録方法については、WebOTX運用管理ツールのマニュアルを参照してください。

    これらのjarファイルは、<OLF/TP Adapterインストールディレクトリ>/Adapter/OLFTP/Run/lib配下に格納しています。

    (3)WebOTXに登録したサーバアプリケーションのプロセスグループに、(2)で登録した共有コンポーネントを追加します。

    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コンポーネントの多重度以上を指定してください。
    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 realtime 非同期メッセージの受信監視の方式を指定します。
    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 送信再送回数を指定します。

     指定回数再送し、受け付けられなければ、送信失敗となります。

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

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

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

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

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

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

    RmtName, RmtAddr, RmtPort, MaxConnection, Type, Delivery, PoolConnect,  InitTimeout, AckTimeout, ResendInterval, ResendCount, ReplyTimeout
    RmtName   接続先のシンボリック名を指定します。

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

    RmtPort   接続先の着信ポートを指定します。
    発信接続時(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を配備する場合は、配備ツールでプロパティを設定します。非管理環境でOLF/TP Adapterを利用する場合は、サンプルのra.xmlをテキストエディタで編集してください。

    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 "" 接続先ホスト名を指定します。接続先ホスト名は、端末定義(OLFAdapter.xml)で定義しておく必要があります。
    TraceLevel java.lang.Integer 0 トレースレベルを指定します(省略可)。指定できる値は以下の通りです。
    • 0…エラートレース
    • 1…エラートレース+CCIトレース
    • 2…エラートレース+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 "TXID" 下り電文の画面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のライセンス管理サービスで使用するポート番号を指定します。ライセンス管理サービスで使用するポートを変更した場合のみ指定してください。

    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>JNDI</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>