5.4.6 XMLデータ変換コマンド(phdxmlcnv)によるESIS-B形式データの生成
この節では,XML変換ライブラリの提供するコマンドを使ったESIS-B形式データ生成について説明します。
- 〈この項の構成〉
(1) 機能
XMLデータから,ESIS-B形式のデータを作成します。
(2) 形式
phdxmlcnv -h ESIS-B形式データ変換定義ファイル -e エラー情報出力ファイル -m 変換後データ文字コード種別 [-r]
(3) 引数
- -h ESIS-B形式データ変換定義ファイル
-
変換前のXMLデータ,出力先ファイル名を定義した,定義ファイル名を指定します。
このファイル形式の詳細については,「(7)ESIS-B形式データ変換定義ファイルの項目」を参照してください。
- -e エラー情報出力ファイル
-
XMLデータ変換中にエラーが発生した場合,変換に失敗したXMLデータとエラー要因を出力するファイル名を指定します。このとき,エラー情報の文字コードは,-mの指定値に合わせて出力されます。
エラー要因については,「(6)エラー要因とリターンコード」を参照してください。
- -m 変換後データ文字コード種別
-
変換後のデータの文字コード種別を指定します。この文字コード種別は,変換後のデータ(ESIS-B形式ファイル)を登録するHiRDBの文字コードに合わせて指定します。ただし,文字コード種別がUS-ASCIIの場合は,文字コードがsjis,ujis,utf-8のHiRDBに登録できます。
指定できる文字コード種別を次に示します。
-
SJIS_MS
-
SJIS_JIS
-
SJIS※
-
UTF_8_MS
-
UTF_8_JIS
-
EUC_JP
-
US_ASCII
- 注※
-
「SJIS」と指定した場合,実行環境として使用しているJavaのバージョンによって「SJIS_MS」と「SJIS_JIS」のどちらかで認識されます。Cosminexus Developer's Kit for Javaでは「SJIS_JIS」として認識します。
-
- -r
-
同じ名称のファイルがすでに登録されている場合は,新しいファイルに置き換えます。
引数に指定するファイル名およびディレクトリ名に使用できる文字は,半角文字の英数字および記号です。使用できる記号を次に示します。
-
”_”(アンダーバー)
-
”.”(ドット)
-
”@”
-
”#”
-
”-”(ハイフン)
Windowsで引数のパス名に空白を含めたい場合は,前後を引用符(”)で囲んでください。
(4) 実行時の設定
XMLデータ変換コマンドを使用するための環境変数の設定について説明します。
(a) UNIXの場合
- 環境変数名
-
PDDIR
- 指定値
HiRDB運用ディレクトリ
HiRDB/Run Time,またはHiRDB/Developer's Kitでphdxmlcnvコマンドを使用する場合は,環境変数PDDIRの代わりに環境変数PDXMLCNVPATHに次の値を指定します。
PDXMLCNVPATH=/opt/HiRDB/client/lib
なお,PDDIRとPDXMLCNVPATHが同時に指定されている場合はPDXMLCNVPATHの値が優先されます。
(b) Windowsの場合
- 環境変数名
-
PATH
- 指定値
Cosminexusのインストールフォルダ\jdk\bin
- 環境変数名
-
PHD_XMLCNV_COSMINEXUS_PATH
- 指定値
Cosminexusのインストールフォルダ
- 環境変数名
-
PDDIR
- 指定値
-
HiRDB運用ディレクトリ
HiRDB/Run Time,またはHiRDB/Developer's Kitでphdxmlcnvコマンドを使用する場合は,環境変数PDDIRの代わりに環境変数PDXMLCNVPATHに次の値を指定します。
PDXMLCNVPATH=HiRDB/Run Time,HiRDB/Developer's Kitインストールディレクトリ\utl
なお,PDDIRとPDXMLCNVPATHが同時に指定されている場合はPDXMLCNVPATHの値が優先されます。
(c) UNIX,Windows共通
EJB クライアントアプリケーションとしてXMLデータ変換コマンド(phdxmlcnv)を動作させるため,ユーザ定義ファイルの作成,および環境変数を設定することを推奨します。これによってトラブルシュート用の情報が出力され,障害調査に使用できます。なお,この設定を省略した場合でも,XMLデータ変換コマンドは動作します。
- 環境変数名
-
PHD_XMLCNV_CONFPATH
- 指定値
-
EJB クライアントアプリケーション用のユーザ定義ファイル格納ディレクトリパス
EJB クライアントアプリケーション用のユーザ定義ファイルを次に示します。
-
usrconf.cfg
-
usrconf.properties
各ファイルを次の説明に従って作成してください。
■ usrconf.cfgファイルの定義内容
次の定義を記述してください。
ejb.client.log.directory=<log_directory_base> ejb.client.ejb.log=<log_directory_name> ejb.client.log.stdout.enabled=false add.jvm.arg=-XX:-HitachiOutOfMemoryAbort
定義内容 |
説明 |
---|---|
<log_directory_base> |
ログファイルの出力先ディレクトリを絶対パスで指定します。 |
<log_directory_name> |
ejb.client.log.directoryキーに指定したディレクトリ下の,EJBクライアントアプリケーションが出力するメッセージログ出力先ディレクトリ名を指定します。 |
- 注意事項
-
-
<log_directory_base>,および<log_directory_name>以外は固定です。
-
ログファイルは,<log_directory_base>+<log_directory_name>のディレクトリ下に作成されます。
-
<log_directory_base>,および<log_directory_name>に指定するディレクトリには,XMLデータ変換コマンドを実行するユーザのアクセス権が必要です。
-
複数のXMLデータ変換コマンドを同時に実行する場合,それぞれログ出力が異なる内容のユーザ定義ファイルを作成し,PHD_XMLCNV_CONFPATH設定値を各定義ファイル格納ディレクトリパスに設定してください。
-
指定値については,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
-
■ usrconf.propertiesファイルの定義内容
usrconf.propertiesファイルには,ログファイルの出力量を指定します。デフォルトでのログファイル出力量は数十MBです。ログファイルの出力量を変更する場合は,次の定義を記述してください。
ejbserver.logger.channels.define.<チャネル名>.filenum=<file_num> ejbserver.logger.channels.define.<チャネル名>.filesize=<file_size>
定義内容 |
説明 |
---|---|
<file_num> |
ログファイル面数を指定します。 |
<file_size> |
1面あたりのログファイルサイズを指定します。 |
<チャネル名> |
次のどれかを指定できます。
|
- 注意事項
-
-
usrconf.propertiesファイルは,デフォルトでも十分な情報を取得できます。デフォルトでXMLデータ変換コマンドを実行する場合,0バイトの空ファイルとしてusrconf.propertiesファイルを作成してください。
-
指定値については,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
-
(5) 環境変数によるESIS-B形式データ生成時の設定変更
次の表に示す環境変数を定義することによりXML変換時の設定を変更してESIS-B形式データを生成することができます。
環境変数に正しくない値を設定しているとphdxmlcnvコマンド実行時にエラ−となります。
環境変数名 |
設定可能な値 (括弧内はデフォルト値) |
説明 |
---|---|---|
PHD_XMLCONVERTER_VALIDATE |
ON/OFF(OFF) |
変換するXMLデータに対して妥当性検証を行います。 |
PHD_XMLCONVERTER_EXTERNAL_ENTITY |
ON/OFF(ON) |
変換するXMLデータ内で指定している解析対象外部エンティティをESIS-B形式データに含めます。 |
PHD_XMLCONVERTER_XMLSCHEMA |
ON/OFF(OFF) |
変換するXMLデータに対してXMLSchemaによる妥当性検証を行います。 |
PHD_XMLCONVERTER_REGULAR_FOR_TEXT |
ON/OFF(ON) |
XMLデータ内のタグ間のテキストを正規化します。 |
PHD_XMLCONVERTER_ORIGINAL_XML |
ON/OFF(ON) |
原文を保持します。 |
(6) エラー要因とリターンコード
コマンド実行時にエラーが発生した場合は,次に示す原因が考えられます。
-
引数が指定されていない
-
エラー情報出力ファイルのアクセスエラー
-
ESIS-B形式データ変換定義ファイルの形式不正
-
ESIS-B形式データ変換定義ファイルのアクセスエラー
-
ESIS-B形式データ変換定義ファイル内に指定したXMLが不正
phdxmlcnvコマンドのリターンコードを次の表に示します。
リターンコード |
要因 |
---|---|
0 |
正常終了 |
1 |
一部のXMLで変換を失敗 |
-1 |
上記要因以外でエラー終了 |
(7) ESIS-B形式データ変換定義ファイルの項目
-
ESIS-B形式変換定義ファイルは,変換対象ファイルごとに次の表に示す項目を順番に「,(コンマ)」で区切って指定します。なお,パス名に「,」は使用できません。
ESIS-B形式データ変換定義ファイルの項目を次の表に示します。
項目 |
指定内容 |
省略可否 |
---|---|---|
変換前XMLデータ絶対パス名 |
変換するXMLデータファイル名を絶対パスで指定します。 |
不可 |
変換後データ格納先ファイル名 |
変換後のESIS-B形式データを格納するファイル名を絶対パスで指定します。 |
不可 |
フィルタ情報定義ファイル名 |
変換するXMLデータに対して,XML構造によるフィルタリングを行う場合は,フィルタ情報定義ファイル名を絶対パスで指定します。 |
可 |
-
ファイルパス名は200バイト以内で指定してください。
-
ファイル名は絶対パスで指定してください。相対パスで指定した場合,正常に動作しないことがあります。
指定例を次に示します。
- 指定例
/users/xmldoc/xml1.xml,/users/outdoc/outdoc1 /users/xmldoc/xml2.xml,/users/outdoc/outdoc2,/users/filter1.txt /userx/xmldoc/xml3.xml,/users/outdoc/outdoc3,/users/filter2.txt : :
(8) メモリ不足の対処
XMLデータ変換コマンド(phdxmlcnv)実行中にメモリ不足が発生した場合,次の環境変数名を指定して,XMLデータ変換コマンド(phdxmlcnv)が使用できるメモリを増やしてください。
- 環境変数名
-
PHD_XMLCNV_MAXMEM
- 指定値
-
2〜システムで利用できる仮想メモリ量(単位:MB)
- 指定値の目安
max ( 64,XMLファイルの最大サイズ[MB]×100)
(9) 注意事項
-
XMLデータ変換中に変換エラーが発生した場合,障害要因とXMLデータファイル名をエラー情報出力ファイルに出力し,変換処理を続行します。変換に失敗したXMLデータがある場合は,コマンド終了時に一部のXMLデータの変換に失敗したとの警告メッセージを出力し,正常終了します。エラー情報ファイルの出力ファイルを参照して,エラー要因を取り除いてから再度コマンドを実行してください。
-
エラー情報は,出力ごとにエラー情報出力ファイルに追加されます。
-
出力するESIS-B形式データの文字コードは,必ず-mで指定してください。
この指定は,HiRDBのセットアップ環境に合わせる必要があります。
-
入力するXMLデータの文字コードは,登録するHiRDBの文字コードに合わせてください。
-
PHD_XMLCNV_MAXMEMの値が不正,または大き過ぎる場合は,エラーコードのないエラーメッセージが出力されます。その場合は,設定値を見直してください。