環境設定と運用
本章では、OpenFrame GWの環境設定ファイルが格納されているディレクトリ構造と環境設定ファイル、およびOpenFrame GWの運用方法について説明します。
1. ディレクトリ構造
JEUS(WAS)のディレクトリ構造は以下のとおりです。
domainsフォルダーの配下にserversフォルダーが存在し、applicationフォルダー内にOpenFrame GWのバイナリが格納されます。
$JEUS_HOME/domains
+---- <domain_name>
+---- bin
+---- config
+---- lib
+---- servers
+---- <server_name>
+---- bin
+---- logs
+---- lib
+---- application
|---- logback.xml
|---- *.jar
+---- UninstallerData
+---- scripts
+---- webterminal
+---- ofgwconf
|---- ofgw.properties
+---- cpm
+---- license
+---- initScreen
|---- initScreen.txt
|---- vtam.properties
|--- dhcp.properties
- servers/<server_name>/lib/application
-
ofgw-71-<revision>.jarとその他のライブラリが格納されています。(logback.xml設定ファイルも、このフォルダーに格納)
フォルダーまたはファイル 説明 logback.xml
ログファイルのファイル形式とログレベルを定義する設定ファイルです。詳細については、logback.xmlを参照してください。
- servers/<server_name>/lib/application/ofgwconf
-
OpenFrame GWの設定ファイルが格納されています。
フォルダーまたはファイル 説明 ofgw.properties
OpenFrame GWとWeb端末の環境を定義する設定ファイルです。詳細については、ofgw.propertiesを参照してください。
cpm
Web端末で使用するCPMファイルが格納されています。
license
OpenFrame GWのライセンス・ファイルが格納されています。
initScreen
端末の初期接続画面を表示するためのinitScreen.txtファイルが格納されています。詳細については、initScreen.txtを参照してください。
vtam.properties
マルチポートの設定と端末が各ポートに接続した場合に表示する初期画面の設定をサポートする設定ファイルです。詳細については、vtam.propertiesを参照してください。
dhcp.properties
DHCP環境でホスト名を使用してLUの自動割り当て機能をサポートする設定ファイルです。詳細については、dhcp.propertiesを参照してください。
WASに設定されているアプリケーションがデプロイされたフォルダーは、次のディレクトリに格納されます。
${JEUS_HOME}/domains/<domain_name>/servers/<server_name>/lib/application/
<application_id>/
各ディレクトリの詳細については、『JEUS アプリケーション&デプロイメントガイド』の「1.1.4. アプリケーション管理のディレクトリ構造」を参照してください。 |
2. OpenFrame GWの設定ファイル
本節では、OpenFrame GWを使用するために必要な設定ファイルの項目と設定例について説明します。
2.1. ofgw.properties
以下は、ofgw.propertiesファイルの各設定項目についての説明です。
gw.name =gateway_name datasource.name = datasource_name lu.port = port_no lu.autoalloc = {yes|no} vtamProperties = {yes|no} dhcpProperties = {yes|no} debug.time = {yes|no} translate.threadPool.core = translate_threadpool_core translate.threadPool.max = translate_threadpool_max translate.threadPool.keepAliveTime = translate_threadpool_keepalivetime db.threadPool.core = db_threadpool_core db.threadPool.max = db_threadpool_max db.threadPool.keepAliveTime = db_threadpool_keepalivetime coroutine.threadPool.core = coroutine_threadpool_core coroutine.threadPool.max = coroutine_threadpool_max coroutine.threadPool.keepAliveTime = coroutine_threadpool_keepalivetime rmi = {yes|no} rmi.ip = rmi_deployed_ip_address rmi.port = rmi_port_no rmi.serviceName = rmi_service_name rmi.proc = aim_procedure_name rmi.smqn = aim_smqn_name rmi.addLength = {yes|no} rmi.logMessage = {yes|no} cpmpath = cpmfile_path terminal.timeout = terminal_timeout terminal.aliveCheck = {yes|no} terminal.aliveInterval = terminal_alive_checktime sslEnabled = {yes|no} tmax.retrytime = tmax_retrytime tmax.node.list = node_name_list tmax.node.NODE1.name = node_name tmax.node.NODE1.ip = node_ip_address tmax.node.NODE1.port = node_port_no tmax.node.NODE1.min = node_min tmax.node.NODE1.max = node_max tmax.node.NODE1.rate = node_rate tmax.node.NODE1.timeout = node_timeput tmax.node.NODE1.idletime = node_idletime
項目 | 説明 |
---|---|
gw.name |
ゲートウェイ名を指定します。 |
datasource.name |
設定ファイル(domain.xml)に指定されたデータベース名を指定します。 |
lu.port |
3270端末が使用するポート番号を指定します。 |
lu.autoalloc |
LUの自動割り当て機能を使用するかどうかを指定します。RMIサーバーを使用する場合は、yesに指定する必要があります。(デフォルト値: yes) |
lu.checkStatus |
LUステータスのチェック機能を使用するかどうかを指定します。(デフォルト値: no) |
vtamProperties |
VTAMで各ポートごとに接続可能な端末とリージョンを指定し、各初期画面を指定して使用できる機能を有効にするかどうかを指定します。(デフォルト値: no) |
dhcpProperties |
DHCP環境でdhcp.propertiesファイルに定義されたホスト名にマッピングされるIPでLUの自動割り当て機能を使用するかどうかを指定します。(デフォルト値: no) |
debug.time |
デバッグ時に、パフォーマンスをチェックするために使用する時間ログを表示するかどうかを指定します。 |
translate.threadPool.core |
ワークスレッドの最小数を指定します。 |
translate.threadPool.max |
ワークスレッドの最大数を指定します。 |
translate.threadPool.keepAliveTime |
ワークスレッドの最小数より多くのスレッドが作成されている場合、アイドル状態のワークスレッドが終了されるための時間を指定します。(単位: s) |
db.threadPool.core |
DBスレッドの最小数を指定します。 |
db.threadPool.max |
DBスレッドの最大数を指定します。 |
db.threadPool.keepAliveTime |
DBスレッドの最小数より多くのスレッドが作成されている場合、アイドル状態のDBスレッドが終了されるための時間を指定します。(単位: s) |
coroutine.threadPool.core |
コルーチン・スレッドの最小数を指定します。 |
coroutine.threadPool.max |
コルーチン・スレッドの最大数を指定します。 |
coroutine.threadPool.keepAliveTime |
コルーチン・スレッドの最小数より多いスレッドが生成されている場合、アイドル状態のコルーチン・スレッドを終了させるための時間を指定します。(単位: s) |
rmi |
RMIサーバーを使用するかどうかを指定します。(デフォルト値: no) |
rmi.ip |
RMIサーバーのIPアドレスを指定します。(OpenFrame GWがデプロイされたサーバーのIPアドレスを指定します。) |
rmi.port |
RMIサーバーがデータを受信するポート番号を指定します。 |
rmi.serviceName |
RMIサーバーがデータを受信するサーバー名を指定します。 |
rmi.proc |
RMIサーバーがWEBAIMと通信するとき、データを送信するAIMのプロシージャを指定します。 |
rmi.smqn |
RMIサーバーがWEBAIMと通信するとき、データを送信するAIMのSMQNを指定します。 |
rmi.addLength |
RMIサーバーがWEBAIMと通信するとき、受信するデータの先頭に長さ情報を追加するかどうかを指定します。(デフォルト値: no) |
rmi.logMessage |
RMIサーバーが送受信するデータをロギングするかどうかを指定します。yesに設定する場合は、ロガー・エンコーディングをSJISに変更する必要があります。(デフォルト値: no) |
cpmpath |
Web端末で使用されるCPMファイルのパスを指定します。指定しない場合は、デフォルト・パスを使用します。 (デフォルト・パス: $OFGW_HOME/ofgwconf/cpm/) |
terminal.timeout |
サーバーと通信していないアイドル状態のWeb端末の接続を切断するためのタイムアウトを指定します。0に指定すると、タイムアウトは使用されません。(単位: s、デフォルト値: 0) |
terminal.aliveCheck |
OpenFrame GWで3270エミュレーターおよびWeb端末の接続状態をチェックするために使用します。ネットワークの消失などにより接続が切断された場合に、端末リソースを自動で解放します。
|
terminal.aliveInterval |
OpenFrame GWに接続された端末の接続状態をチェックする時間間隔を指定します。(単位: s、デフォルト値: 10、最小値: 10) |
sslEnabled |
OpenFrame GWで3270エミュレーターと通信するとき、SSLの設定に応じて以下のように指定します。
|
tmax.retrytime |
Tmaxの接続が切断されたとき、再接続を試行するまでの待機時間を指定します。(単位:ミリ秒) |
tmax.node.list |
Tmaxノード名を区切り文字(,)を使用して指定します。 (例 : NODE1、NODE2、NODE3...) |
tmax.node.[NODENAME].name |
Tmaxノード名を指定します。 |
tmax.node.[NODENAME].ip |
TmaxノードのIPを指定します。 |
tmax.node.[NODENAME].port |
Tmaxノードのポート($TMAX_HOST_PORT)を指定します。 |
tmax.node.[NODENAME].min |
Tmax接続の最小数を指定します。 |
tmax.node.[NODENAME].max |
Tmax接続の最大数を指定します。 |
tmax.node.[NODENAME].rate |
接続が不十分な場合、追加する数を指定します。 |
tmax.node.[NODENAME].timeout |
接続時の待機時間を指定します。(単位: ミリ秒) |
tmax.node.[NODENAME].idletime |
接続数が最小数より多い場合、使用していない接続を終了する時間を指定します。(単位:秒) |
|
以下は、ofgw.propertiesファイルの設定例です。
gw.name = ofgw datasource.name = ds1 lu.port = 5556 lu.autoalloc = yes lu.checkStatus = yes debug.time = no translate.threadPool.core = 5 translate.threadPool.max = 30 translate.threadPool.keepAliveTime = 60 db.threadPool.core = 5 db.threadPool.max = 30 db.threadPool.keepAliveTime = 60 coroutine.threadPool.core = 5 coroutine.threadPool.max = 30 coroutine.threadPool.keepAliveTime = 60 rmi = yes rmi.ip = 192.144.121.11 rmi.port = 5557 rmi.serviceName = ofgwaad rmi.proc = aadproc rmi.smqn = aadsmqn cpmpath = terminal.timeout = 60 sslEnabled = no tmax.node.list = NODE1 tmax.node.NODE1.name = NODE1 tmax.node.NODE1.ip = 192.168.37.11 tmax.node.NODE1.port = 6511 tmax.node.NODE1.min = 5 tmax.node.NODE1.max = 10 tmax.node.NODE1.rate = 2 tmax.node.NODE1.timeout = 20000 tmax.node.NODE1.idletime = 90 tmax.retrytime = 60000
2.2. vtam.properties
vtam.propertiesファイルは、ofgw.propertiesのvtamProperties設定が「yes」の場合にのみ動作します。
現在はOSCと連携する場合にのみサポートし、OSIとAIMではこの機能をサポートしません。 |
以下は、vtam.propertiesファイルの各設定項目についての説明です。
port.list = port_name
[PORT_NAME].port = port_no
[PORT_NAME].regionList = region_list
[PORT_NAME].initScreen = init_screen_filename
項目 | 説明 |
---|---|
port.list |
VTAMに設定されているポートを指定するためのポート名を設定します。 (例: PORT1,PORT2,PORT3...) |
[PORT_NAME].port |
PORT_NAMEのポート番号を設定します。ポート番号は、VTAMリソースに登録されているポートを使用する必要があります。 複数のポート番号のいずれか1つは、ofgw.propertiesのlu.portの値と一致する必要があります。 |
[PORT_NAME].regionList |
VTAMポートを使用して接続した端末で接続を許可するリージョン・サーバー名を設定します。(例: OSC00001, OSC00002...) |
[PORT_NAME].initScreen |
端末が該当のポートで接続された場合に表示する最初の画面ファイルを指定します。($OFGW_HOME/ofgwconf/initScreenフォルダー内に存在するファイルである必要があります) |
以下は、vtam.propertiesファイルの設定例です。
port.list = PORT1,PORT2,PORT3 PORT1.port = 5556 PORT1.regionList = OSCOIVP1 PORT1.initScreen = initScreen.txt PORT2.port= 5558 PORT2.regionList = OSCOIVP2 PORT2.initScreen = initScreen2.txt PORT3.port = 5570 PORT3.regionList = OSCOIVP1,OSCOIVP2 PORT3.initScreen = initScreen3.txt
2.3. dhcp.properties
dhcp.propertiesファイルは、ofgw.propertiesのdhcpProperties設定が「yes」の場合にのみ動作します。
以下は、dhcp.propertiesファイルの各設定項目についての説明です。
hostnames = [HOST_NAME1]:[IP1],[HOST_NAME1]:[IP2],[HOST_NAME2]:[IP3],...,\ [HOST_NAME5]:[IP10],...
項目 | 説明 |
---|---|
hostnames |
DHCP環境でWeb端末を介して入力されたホスト名にマッピングされるIP値を保存します。
|
以下は、dhcp.propertiesファイルの設定例です。
hostnames=hostname1:192.168.11.23,hostname2:192.168.14.32,hostname2:192.168.14.33,\ hostname1:192.168.11.31,hostname3:192.168.17.87
DHCPでのLU割り当て機能の使用方法
DHCP環境ではIPが動的に変わるため、固定IPを使用してLUを割り当てるには、別の方法を使用する必要があります。OpenFrame GWでは、Web端末のクエリ・パラメータとして入力されるホスト名を使用して固定IPを抽出し、このIPを使用してLUを割り当てる方法をサポートしています。
以下は、dhcpPropertiesを「yes」に設定した後、Web端末を使用してDHCP環境でLUの割り当てを受ける方法の例を示しています。

hostをキーとして、LU割り当てに使用するホスト名をBase64でエンコード(hostname1 → aG9zdG5hbWUx → YUc5emRHNWhiV1V4)を2回行い、値として設定してからWeb端末に接続します。
その後、従来の方法で接続を試みると、OpenFrame GWではdhcpPropertiesがyesに設定されていることを確認し、入力されたホスト名(hostname1)を使用してdhcp.propertiesからIPを取得します。そして、接続したWeb端末のIP(127.0.0.1)は無視し、取得したIP(192.168.11.23、192.168.11.31)を使用してLU割り当てを行います。
ホスト名を使用したLU割り当て方法は、上記の方法でWeb端末で接続した場合にのみ有効であり、RMIまたは3270エミュレーターで接続した場合は、従来のLU割り当て方法を使用します。 |
2.4. initScreen.txt
initScreen.txtファイルは、エディターを用いて端末に初めて接続するときに表示される画面構成を保存します。ファイルに作成された内容が端末画面に表示され、内容の最後の次に入力フィールドとカーソルが位置します。ファイルに以下のように設定すると、端末に同じ間隔と空白が表示されます。
ofgw.propertiesのvtamProperties項目を「yes」に設定してVTAMポート別に接続できるようにした場合は、vtam.propertiesの[PORT_NAME].initScreenに設定されたファイルの画面が表示されます。vtamProperties項目を「no」に設定した場合は、initScreen.txtの画面が表示されます。
@ THIS TERMINAL CONNECTED TO THE OPENFRAME GW ******. *******. ******. **. **. ********. *******. ********. **. **. **....**. **...... **....**. **. **. **. **. **. **. ... **. **. **. **. *******. **. **.**.**. **. **. *******. **. ****. **.**.**. **. **. **...... **. ****. **.**.**. **. **. **. **. .**. ********. ********. **. ********. ***..***. ******.. **. *******. **.. **. ...... .. ....... .. .. @ ENTER COMMAND :
以下は、初期画面の例です。

logback.xml
logback.xmlにログファイルのファイル形式とログレベルを定義します。
以下は、プロパティ・ファイルの設定例です。
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <charset>UTF-8</charset> <pattern>[%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSSS}][OFGW|%-24logger{0}][%-24t{1}][%.-1level] %msg%n</pattern> </encoder> </appender> <property name="USER_HOME" value="/home/user/logs" /> <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${USER_HOME}/ofgw-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>300MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>[%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSSS}][OFGW|%-24logger{0}][%-24t{1}][%.-1level] %msg%n</pattern> </encoder> </appender> <logger name="com.tmax.ofgw.region.LUManager" level="DEBUG" /> <logger name="com.tmax.ofgw.Main" level="INFO" /> <logger name="com.tmax.ofgw.region.Region" level="ERROR" /> <logger name="com.tmax.webtnio" level="OFF" /> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="ROLLING" /> </root> </configuration>
以下は、プロパティ・ファイルの項目についての説明です。
項目 | 説明 |
---|---|
<configuration> |
scanとscanperiod項目を設定すると、動的にログレベルを変更することができます。 |
<appender> |
LogBackで提供する形式でロガーのフォーマットを追加することができます。(イベントごとにログを記録することができます。)
|
<charset> |
ログファイルのエンコード形式を設定します。ofgw.propertiesのrmi.addLengthがyesに設定された場合は、その属性をSJISに設定する必要があります。(デフォルト値: UTF-8) |
<property> |
プロパティに設定した値は、変数のように使用することができます。このファイルでのUSER_HOMEは、ログファイルのパスとして使用されます。 |
<fileNamepatten> |
ログファイル名のパターンを指定します。 デフォルト値は、日付形式と索引("%i")が追加されます。 |
<maxFileSize> |
1ファイルあたりの最大容量を指定します。 |
<maxHistory> |
ファイルのログを記録する最大日数を指定します。この値を超えると、自動的に最も古いログから順に削除されます。 |
<pattern> |
表示されるログの形式を指定します。 |
<logger name> |
<root>に設定されたログレベルとは別に、特定のクラスを指定してログレベルを指定します。 |
<root> |
ログレベルを指定します。<appender>を追加して、該当のロガー・フォーマットのログレベルとして適用されます。 <logger name>が記述されていない場合、デフォルトで<root>に記述されたログレベルで各クラスのログレベルが設定されます。<logger name>が設定されたクラスの場合は、<root>に記述されたログレベルを上書きします。 |
上記の項目はデフォルトで提供される項目です。したがって、管理者が環境に合わせてカスタマイズして使用する必要があります。追加項目については、LogBack関連のガイドを参照してください。 |
3. OpenFrame GWの運用
本節では、OpenFrame GWの起動と終了およびログ・フォーマットについて説明します。
3.1. OpenFrame GWの起動と終了
OpenFrame GWを起動および終了する手順について説明します。
起動
JEUSのDAS上にOpenFrame GWをインストールした場合、DASを起動すると<lifecyle-invocation>属性によってOpenFrame GWも一緒に起動されます。DASを起動するスクリプトはstartDomainAdminServerであり、DASのドメイン名やJEUSを開始する権限を持つユーザー名とパスワードが必要です。
JEUS_HOME/binの下で実行する場合はこれらの値がすべて必要ですが、DASのDOMAIN_HOMEの下で実行する場合は、ドメイン名を省略することができます。
以下は、場所に応じたOpenFrame GWの起動です。
-
startDomainAdminServerでサーバーを起動します。
$JEUS_HOME/bin/startDomainAdminServer -domain <domain_name> -u <user_name> -p <password>
または
$JEUS_HOME/domains/<domain_name>/bin/startDomainAdminServer -u <user_name> -p <password>
-
startManagedServerでサーバーを起動します。
$JEUS_HOME/domains/<domain_name>/servers/<server_name>/bin/startManagedServer -u <user_name> -p <password>
または
$startManagedServer -domain <domain_name> -server <server_name> -u <user_name> -p <password> -dasurl <das_ip:das_baseport>
-
jpsツールを使用して、DomainAdminServerBootstrapperとServerBootstrapperが正常に起動されたことを確認します。
$jps 23541 Jps 22797 DomainAdminServerBootstrapper 22981 ServerBootstrapper
終了
OpenFrame GWを終了するには、OpenFrame GWがインストールされているサーバーを終了する必要があります。
-
stopServerコマンドを使用してManaged Serverサーバーを終了します。
$JEUS_HOME/bin/stopServer -u <user_name> -p <password> -host <server_ip:server_baseport>
-
stopServerコマンドを使用してDomainAdminServerサーバーを終了します。
$JEUS_HOME/bin/stopServer -u <user_name> -p <password> -host <server_ip:server_baseport>
WebAdmin、jeusadmin、またはコマンドを使用してJEUSを起動および終了することができます。本書では、UNIX環境での起動と終了についてのみ説明しています。他の方法についての詳細は、『JEUS ドメインガイド』または『JEUS WebAdminガイド』を参照してください。
起動と終了時のデータベース操作
OpenFrame GWは、OFM_BASE_VTAM_GATEWAY、OFM_BASE_VTAM_ACTIVE_LU表に情報を更新します。
起動時には、以前の異常終了により、情報が残っているかどうかを確認します。残っている場合はその情報を削除してから、新たに起動されるOpenFrame GW情報を更新します。一方、終了時には、ゲートウェイに接続されている端末の接続が切断されると同時に、そのサーバーに登録されているOpenFrame GWの情報と端末の情報をデータベースから削除します。
以下は、vtamadmツールを使用してOpenFrame GWの情報を確認する方法です。
-
ゲートウェイ情報の確認
以下は、OpenFrame GWの情報を確認するコマンドの使用方法です。
$ vtamadm -w VTAM Gateway List ================================================================================= NO. GATEWAY_NAME CLID IP_ADDR:PORT NODENAME --------------------------------------------------------------------------------- 1 ofgw_A 3 192.168.105.208:5668 NODE1 =================================================================================
-
端末LU情報の確認
以下は、OpenFrame GWに接続されている端末のLU情報を確認するコマンドの使用方法です。
$ vtamadm -l Active LU information connected to VTAM ========================================================================================================== NO. LU TYPE CLID NODENAME IP_ADDR LOGON_REGION USERID ---------------------------------------------------------------------------------------------------------- 1 OSC00001 OSC REGION NODE1 2 OIVPTRM1 IBM-3278-2-E 5 NODE1 192.168.105.208 OSC00001 ROOT 3 TSO TSO NODE1 ==========================================================================================================
vtamadmコマンドは、OpenFrameが提供するツールです。詳細については、OpenFrame Base『ツールリファレンスガイド』を参照してください。 |
オンライン・リージョンの起動と終了
基本的にOpenFrame GWは、OpenFrameのリージョン・サーバーの起動と終了に関係なく、起動状態を維持します。OpenFrame GWの実行中にオンライン・リージョンが起動されると、データベースから該当するリージョン情報を取得します。
終了時には、オンライン・リージョンに接続している(ログオンされたLU)端末の接続を切断し、データベースからも関連情報を削除します。
OpenFrameエンジンがすべて終了すると、Tmax接続が失われ、以下のようなログが発生します。
[2022-06-22T14:49:07.00976][OFGW|WebtChannelHandlerImpl ][Main [server1-67] ][I] Close connection for node[NODE1], clid=[246] [2022-06-22T14:49:07.00982][OFGW|WebTerminal ][Main [server1-67] ][D] WebTerminal disconnect status=transaction_status_none [2022-06-22T14:49:07.00984][OFGW|WebSocketEndPoint ][Main [server1-67] ][D] handleClose(...) [2022-06-22T14:49:07.00985][OFGW|WebtChannelHandlerImpl ][Main [server1-67] ][I] System channel[NODE1] (clid=[246])
このとき、ofgw.properties設定ファイルのtmax.retrytimeに指定された時間が過ぎてから再接続を試みます。そのとき、OpenFrameが起動している必要があります。
3.2. ログ・フォーマット
以下は、logback.xmlにデフォルトで提供されるログ・フォーマットです。使用環境に合わせて変更して使用します。
[時間] [ログレベル] [スレッド] [ロガー] [メッセージ]
項目 | 説明 |
---|---|
[時間] |
「時間:分:秒.ミリ秒」形式で表示されます。 |
[ログレベル] |
指定されたログレベルを表示します。OpenFrame GWでは、基本的にERROR、WARN、INFO、DEBUGの4つのレベルのログを表示します。 次は、各ログレベルについての説明です。
ログレベルの順は、ERROR < WARN < INFO < DEBUGです。上位レベルのログは、下位レベルのログを含みます。たとえば、ログレベルがINFOに設定されている場合は、ERRORとWARNレベルのログまで表示されます。 |
[スレッド] |
現行のスレッド名です。ロギングするプロセス(サーバーまたはランチャー)とスレッド番号をハイフン(-)で区切って指定します。 |
[ロガー] |
「ロガー名+{length}」です。lengthは最大桁数です。 |
[メッセージ] |
ログメッセージのエイリアスです。 |
以下は、logback.xml設定ファイルにログの表示パターンを定義した例です。
<pattern>[%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSSS}][OFGW|%-24logger{0}][%-24t{1}][%.-1level] %msg%n</pattern>
[2022-06-22T14:49:06.00599][OFGW|WebtChannelHandlerImpl ][Main [server1-67] ][D] Node name=NODE1 [2022-06-22T14:49:06.00599][OFGW|WebtChannelHandlerImpl ][Main [server1-67] ][D] Msg for OFGW [2022-06-22T14:49:06.00600][OFGW|WebtChannelHandlerImpl ][Main [server1-67] ][D] Tmax msg type: tpsendto [2022-06-22T14:49:06.00600][OFGW|VtamMessage ][Main [server1-67] ][D] [VtamMessage] vtam header: msgtype(aim(104)) clid(0) gwclid(0) regionclid(0) [2022-06-22T14:49:06.00600][OFGW|VtamMessage ][Main [server1-67] ][D] [VtamMessage] msgflag : 0, ipaddr : ... [2022-06-22T14:49:06.00650][OFGW|TranslateWorker ][Worker-3 [server1-79] ][D] Send to TransWorker channel there is something to work for terminal(id=13) [2022-06-22T14:49:06.00651][OFGW|TransWorkerChImpl ][Worker-3 [server1-79] ][D] WorkerThread > TransWorker channel [2022-06-22T14:49:06.00651][OFGW|TransWorkerChImpl ][Worker-3 [server1-79] ][D] writeQ for Web count=1 [2022-06-22T14:49:06.00654][OFGW|TransWorkerChImpl ][Worker-3 [server1-79] ][I] < Send to WebTerminal(id=13,len=2468) [2022-06-22T14:49:06.00654][OFGW|TransWorkerChImpl ][Worker-3 [server1-79] ][D] < Send data(id=13): ... [2022-06-22T14:49:06.00655][OFGW|TranslateWorker ][Worker-3 [server1-79] ][D] translation(id=13) done, WorkerThread > TransWorkChannel done
4. マルチ環境の構成
本節では、マルチ環境を構成する方法について説明します。
4.1. OpenFrame GWのマルチノード
負荷分散環境を構築するために、OpenFrame GWはOpenFrameにマルチノードを構成して運用することができます。以下は、その構成図です。

マルチノードを構成する場合、ofgw.propertiesファイルに以下のとおり設定します。ファイルの詳細については、ofgw.propertiesを参照してください。ただし、1つのOpenFrame GWから異なるOpenFrameにインストールされたノード環境への接続はサポートしていません。
tmax.node.list = NODE1,NODE2 tmax.node.NODE1.name = NODE1 tmax.node.NODE1.ip = 192.168.33.1 tmax.node.NODE1.port = 6300 tmax.node.NODE1.min = 2 tmax.node.NODE1.max = 6 tmax.node.NODE1.rate = 3 tmax.node.NODE1.timeout = 10000 tmax.node.NODE1.idletime = 30000 tmax.node.NODE2.name = NODE2 tmax.node.NODE2.ip = 192.168.33.1 tmax.node.NODE2.port = 6400 tmax.node.NODE2.min = 2 tmax.node.NODE2.max = 6 tmax.node.NODE2.rate = 3 tmax.node.NODE2.timeout = 10000 tmax.node.NODE2.idletime = 30000 … 생략
Tmaxは、OpenFrame GWとオンライン・リージョン間の通信および接続スケジューリングを担当し、OpenFrame GWは、業務スケジューリングを担当します。OpenFrame GWは、データベースに保存されている各オンライン・リージョンごとのマッピング情報を読み込んでスケジューリングします。
4.2. OpenFrame GWのマルチゲートウェイ
WASに複数のOpenFrame GWを実行する場合、以下の図のようにサーバーごとにOpenFrame GWを1つずつ実行することができます。

上記のような環境を構成するために、JEUSサーバーの設定は、domain.xml(${JEUS_HOME}/domains/ <domain_name>/config)設定ファイルに以下のように記述します。domain.xmlの各項目についての詳細は、JEUSの設定ファイルを参照してください。OpenFrame GWのバイナリは、追加したJEUSサーバーのlib/applicationディレクトリに格納する必要があります。
<servers>
<server>
<name>server1</name>
<lifecycle-invocation>
<class-name>com.tmax.ofgw.Main</class-name>
<invocation>
<invocation-method>
<method-name>init</method-name>
</invocation-method>
<invocation-type>READY</invocation-type>
</invocation>
</lifecycle-invocation>
<lifecycle-invocation>
<class-name>com.tmax.ofgw.Main</class-name>
<invocation>
<invocation-method>
<method-name>shutdown</method-name>
</invocation-method>
<invocation-type>BEFORE_UNDEPLOY</invocation-type>
</invocation>
</lifecycle-invocation>
</server>
<server>
<name>server2</name>
<lifecycle-invocation>
<class-name>com.tmax.ofgw.Main</class-name>
<invocation>
<invocation-method>
<method-name>init</method-name>
</invocation-method>
<invocation-type>READY</invocation-type>
</invocation>
</lifecycle-invocation>
<lifecycle-invocation>
<class-name>com.tmax.ofgw.Main</class-name>
<invocation>
<invocation-method>
<method-name>shutdown</method-name>
</invocation-method>
<invocation-type>BEFORE_UNDEPLOY</invocation-type>
</invocation>
</lifecycle-invocation>
</server>
...省略
</servers>
サーバーの追加についての詳細は、『JEUS サーバーガイド』の「2.2.サーバーの追加」を参照してください。 |