環境設定と運用
本章では、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
|---- META-INF
|---- persistence.xml
|---- logback.xml
|---- *.jar
+---- UninstallerData
+---- scripts
+---- webterminal
+---- ofgwconf
|---- ofgw.properties
+---- cpm
+---- license
+---- initScreen
|---- initScreen.txt
|---- vtam.properties
|--- dhcp.properties
-
servers/<server_name>/lib/application
ofgw-73-<revision>.jarとその他のライブラリが格納されます。(logback.xml設定ファイルも、このフォルダーに格納されます)
フォルダーまたはファイル 説明 META-INF/persistence.xml
JPAを使用するために、エンティティとJPA関連のオプションを定義します。詳細については、persistence.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 アプリケーション&デプロイメントガイド』の「アプリケーション管理のディレクトリ構造」を参照してください。 |
2. OpenFrame GWの設定ファイル
本節では、OpenFrame GWを使用するために必要な設定ファイルの項目と設定例について説明します。
2.1. persistence.xml
persistence.xmlにOpenFrame GWで使用されるJPAエンティティとオプションを定義します。
以下は、プロパティファイルの設定例です。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="ofgw" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>="
<non-jta-data-source>DATASOURCE_NAME</non-jta-data-source>
<!-- Don't modify these class names -->
<class>com.tmax.ofgw.entity.vtam.LuMap</class>
<class>com.tmax.ofgw.entity.vtam.LuGroup</class>
<class>com.tmax.ofgw.entity.vtam.ActiveLu</class>
<class>com.tmax.ofgw.entity.vtam.LuStatus</class>
<class>com.tmax.ofgw.entity.vtam.Gateway</class>
<class>com.tmax.ofgw.entity.osc.OscTerminalInfo</class>
<class>com.tmax.ofgw.entity.osc.OscTran2svc</class>
<class>com.tmax.ofgw.entity.osc.OscConfig</class>
<class>com.tmax.ofgw.entity.osc.OscKey2tran</class>
<class>com.tmax.ofgw.entity.osc.OscNetName</class>
<class>com.tmax.ofgw.entity.osc.OscSACEE</class>
<class>com.tmax.ofgw.entity.osc.OscCspg</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
以下は、各項目についての説明です。
項目 | 説明 |
---|---|
<persistence-unit> |
OpenFrame GWの内部でJPAを使用するためのIDです。この設定を任意に変更した場合、OpenFrame GWが誤動作する可能性があるため、注意が必要です。 |
<transaction-type= "RESOURCE_LOCAL"> |
OpenFrame GWの内部でJPAを介してデータベースにアクセスするために、EntityManagerFactoryを直接定義して使用します。この設定を任意に変更した場合、OpenFrame GWが誤動作する可能性があるため、注意が必要です。 |
<provider> |
JPAプロバイダとしてHibernateを設定します。他のJPAプロバイダに変更する場合、OpenFrame GWが誤動作する可能性があるため、注意が必要です。 |
<non-jta-data-source> |
OpenFrame GWがデプロイされたサーバーに登録されているデータソースのいずれかを設定します。OpenFrame GWが接続するデータベースを選択するオプションです。 |
<class> |
OpenFrame GW内で定義されたEntityクラスのパスを指定します。この設定を任意に変更した場合、OpenFrame GWが誤動作する可能性があるため、注意が必要です。 |
<property name="hibernate.dialect"> |
JPAがデータベースへのアクセス時に使用する文法を設定します。 Tiberoは、Oracle文法に従うため、「org.hibernate.dialect.Oracle10gDialect」に設定します。この設定を任意に変更した場合、OpenFrame GWが誤動作する可能性があるため、注意が必要です。 |
<property name="hibernate.format _sql"> |
JPAがSQLをロギングする際、出力形式を設定できます。 |
<property name="hibernate.use_ sql_comments"> |
JPAがSQLを出力する際、コメントも一緒に出力するように設定します。 |
<property name="hibernate.show_ sql"> |
JPAが発行したSQLを出力するように設定します。 |
2.2. 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" /> <logger name="org.hibernate" level="INFO" /> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="ROLLING" /> </root> </configuration>
以下は、各項目についての説明です。
項目 | 説明 |
---|---|
<configuration> |
scanとscanperiod項目を設定すると、ログレベルを動的に変更できます。 |
<appender> |
LogBackが提供する形式でロガー形式を追加できます。(Eventごとにログを記録することを可能にする)
|
<charset> |
ログファイルのエンコード形式を設定します。ofgw.propertiesのrmi.addLengthがyesに設定された場合は、その属性をSJISに設定する必要があります。(デフォルト:UTF-8) |
<property> |
プロパティに設定した値は変数のように使用できます。このファイルでは、USER_HOMEがログファイルのパス(Log File Path)として使用されます。 |
<fileNamepatten> |
ログファイル名のパターンを設定します。 デフォルト値は、日付形式と索引(「%i」)が追加されます。 |
<maxFileSize> |
ファイルごとに最大容量を設定します。 |
<maxHistory> |
ファイルのログを保持する最大日数を指定します。指定した値に到達すると、最も古いログから順に削除されます。 |
<pattern> |
出力されるログの形式を設定します。 |
<logger name> |
<root>に設定されたログレベルとは別に、特定のクラスを指定してログレベルを設定します。 |
<root> |
ログレベルを設定して<appender>を追加し、そのロガーのログレベルで出力されます。<logger name>が記述されていない場合は、基本的に<root>に記述されているログレベルが各クラスのログレベルとして設定され、<logger name>が設定されたクラスの場合は、<root>に記述されたログレベルを上書きします。 |
この項目は基本的に提供される項目であり、管理者が環境に合わせてカスタマイズする必要があります。追加の項目については、logbackの関連ガイドを参照してください。 |
2.3. ofgw.properties
以下は、ofgw.propertiesファイルの各設定項目についての説明です。
gw.name =gateway_name
lu.port = port_no
lu.autoalloc = {yes|no}
vtamProperties = {yes|no}
dhcpProperties = {yes|no}
debug.time = {yes|no}
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}
webAIM.proc = webAIM_procedure_name
webAIM.smqn = webAIM_smqn_name
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 |
ゲートウェイ名を指定します。 同じOpenFrameに接続するゲートウェイ名は、必ず一意でなければなりません。 |
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 |
デバッグ時に、パフォーマンスをチェックするために使用するタイムログを出力するかどうかを設定します。 |
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) |
webAIM.proc |
HTTPリクエストを通じてwebAIMと通信する際、データを送信するAIMのプロシージャを設定します。 |
webAIM.smqn |
HTTPリクエストを通じてwebAIMと通信する際、データを送信するAIMのSMQNを設定します。 |
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 lu.port = 5556 lu.autoalloc = yes debug.time = no 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 webAIM.proc = aadproc webAIM.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.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 :
以下は、初期画面の例です。

2.5. 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.6. 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
ofgw.propertiesのdhcpPropertiesがyesで、dhcp.propertiesに何の値も設定されていない場合、DBのOFM_BASE_VTAM_DHCPテーブルの情報を参照します。 |
-
DHCPでのLU割り当て機能の使用方法
DHCP環境ではIPが動的に変わるため、固定IPを使用してLUを割り当てるには、別の方法を使用する必要があります。OpenFrame GWでは、Web端末のクエリ・パラメータとして入力されるホスト名を使用して固定IPを抽出し、このIPを使用してLUを割り当てる方法をサポートしています。
以下は、dhcpPropertiesを「yes」に設定した後、Web端末を使用してDHCP環境でLUの割り当てを受ける方法の例を示しています。
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割り当て方法を使用します。
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 -server <server_name> -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ガイド』を参照してください。
-
3.1.1. 起動と終了時のデータベース操作
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『ツールリファレンスガイド』を参照してください。 |
3.1.2. オンライン・リージョンの起動と終了
基本的にOpenFrame GWは、OpenFrameのリージョン・サーバーの起動と終了に関係なく、起動状態を維持します。OpenFrame GWの実行中にオンライン・リージョンが起動されると、データベースから該当するリージョン情報を取得します。
終了時には、オンライン・リージョンに接続している(ログオンされたLU)端末の接続を切断し、データベースからも関連情報を削除します。
OpenFrameエンジンがすべて終了すると、Tmax接続が失われ、以下のようなログが発生します。
[2022-06-22T14:49:07.00976][OFGW|WebtChannelHandlerImpl ][Main ][I] Close connection for node[NODE1], clid=[246] [2022-06-22T14:49:07.00982][OFGW|WebTerminal ][Main ][D] WebTerminal disconnect status=transaction_status_none [2022-06-22T14:49:07.00984][OFGW|WebSocketEndPoint ][Main ][D] handleClose(...) [2022-06-22T14:49:07.00985][OFGW|WebtChannelHandlerImpl ][Main ][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 ][D] Node name=NODE1 [2022-06-22T14:49:06.00599][OFGW|WebtChannelHandlerImpl ][Main ][D] Msg for OFGW [2022-06-22T14:49:06.00600][OFGW|WebtChannelHandlerImpl ][Main ][D] Tmax msg type: tpsendto [2022-06-22T14:49:06.00600][OFGW|VtamMessage ][Main ][D] [VtamMessage] vtam header: msgtype(aim(104)) clid(0) gwclid(0) regionclid(0) [2022-06-22T14:49:06.00600][OFGW|VtamMessage ][Main ][D] [VtamMessage] msgflag : 0, ipaddr : ... [2022-06-22T14:49:06.00650][OFGW|TranslateWorker ][Worker-3 ][D] Send to TransWorker channel there is something to work for terminal(id=13) [2022-06-22T14:49:06.00651][OFGW|TransWorkerChImpl ][Worker-3 ][D] WorkerThread > TransWorker channel [2022-06-22T14:49:06.00651][OFGW|TransWorkerChImpl ][Worker-3 ][D] writeQ for Web count=1 [2022-06-22T14:49:06.00654][OFGW|TransWorkerChImpl ][Worker-3 ][I] < Send to WebTerminal(id=13,len=2468) [2022-06-22T14:49:06.00654][OFGW|TransWorkerChImpl ][Worker-3 ][D] < Send data(id=13): ... [2022-06-22T14:49:06.00655][OFGW|TranslateWorker ][Worker-3 ][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 サーバーガイド』の「サーバーの追加」を参照してください。 |