2.3.9 J2EEサーバ用ユーザプロパティファイル(usrconf.properties)を設定する
この項では,J2EEサーバ用ユーザプロパティファイル(usrconf.properties)のうち,Service Platformで設定するシステムプロパティについて説明します。
J2EEサーバ用ユーザプロパティファイルの格納先は次のとおりです。
- usrconf.propertiesの格納先
<サービスプラットフォームのインストールディレクトリ>\CC\server\usrconf\ejb\<サーバ名称>\usrconf.properties
ファイルの記述形式については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。
J2EEサーバ用ユーザプロパティファイルは,J2EEサーバの起動時に読み込まれます。編集したファイルを有効にするには,J2EEサーバを再起動してください。
- 〈この項の構成〉
(1) コード変換テーブルのパスを設定する
文字コード変換UOCでコード変換のAPIを使用する場合,Code Converterで使用するコード変換テーブルのパスを設定する必要があります。
- usrconf.propertiesへの記述形式
csc.dt.codetablepath=<コード変換テーブル格納パスディレクトリ>/table
設定方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「2.7.1 Code Converterによる拡張」のcsc.dt.codetablepathの記載個所を参照してください。
(2) 文字コード変換UOCのクラスを登録する
開発環境で作成した文字コード変換UOCを実行環境で使用するには,クラス名を完全修飾名で登録する必要があります。
- usrconf.propertiesへの記述形式
csc.dt.ownCodeConverter.className=<文字コード変換UOCのクラス名>
設定方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「付録H.2 文字コード変換UOCを使用するための設定」を参照してください。
(3) カスタムファンクションで使用するjarファイルの格納先を変更する
カスタムファンクションで使用するjarファイルの格納先を変更する場合,変更するファイルパスを設定します。デフォルトの格納先を次に示します。
- jarファイルの格納先
<サービスプラットフォームのインストールディレクトリ>\CSC\userlib\customfunc
jarファイルの格納先を変更したい場合の記述方法を次に示します。
- usrconf.propertiesへの記述形式
csc.dt.customFuncDir=<変更先ディレクトリのパス>
- 注意事項
-
jarファイルの格納先としてサービスプラットフォームのインストールディレクトリ配下を指定すると,アンインストール時に削除されるおそれがあるため,インストールディレクトリ配下以外の場所を設定してください。
- usrconf.propertiesへの記述例
-
カスタムファンクションで使用するjarファイルの格納先を「C:\\USER\\FUNC」に変更する場合の記述例を次に示します。
csc.dt.customFuncDir=C:\\USER\\FUNC
(4) 値置換えファンクションで使用する変換テーブルを登録する
開発環境で作成したデータ変換定義に値置換えファンクションが含まれる場合,値置換えファンクションで利用する変換テーブルを登録します。
変換テーブルの格納先と文字コードの情報を一組として記述します。複数の変換テーブルについて記述できます。
usrconf.propertiesに記述する内容と形式を次に示します。
: csc.dt.valueTable.<変換テーブルID>=<変換テーブルのファイルパス> csc.dt.valueTableSize=<変換テーブルの合計ファイルサイズ> csc.dt.encodeType.<変換テーブルID>=[MS932|UTF8|UTF16_BIG|UTF16_LITTLE] :
- <変換テーブルID>
-
変換テーブルIDとして任意の名称を指定します。変換テーブルIDは,開発環境の値置換えダイアログで値置換えファンクションを定義する際,使用する変換テーブルの指定に使用します。
- csc.dt.valueTable.<変換テーブルID>=<変換テーブルのファイルパス>
-
変換テーブルのファイルパスを絶対パスで指定します。
- csc.dt.valueTableSize=<変換テーブルの合計ファイルサイズ><<10>>
-
変換テーブルの合計ファイルサイズ(単位:キロバイト)の上限値を正の整数で指定します。指定範囲は1〜2097151です。指定を省略した場合は,10が仮定されます。
上限値を超えるサイズの変換テーブルを読み込むと,KDEC40730-EをJ2EEサーバのログファイルに出力し,HCSCサーバの起動を中断します。
- csc.dt.encodeType.<変換テーブルID>=[MS932|UTF8|UTF16_BIG|UTF16_LITTLE]
-
変換テーブルに使用している文字コードを指定します。
- 変換テーブルのファイルに関する注意事項
-
BOM付きのファイルは使用できません。
(5) XMLパーサプール機能オプションを使用する
XMLパーサプール機能を使用する場合,必要に応じて初期割り当て数や最大プール数を指定します。
HCSCサーバでは,次に示すJavaのXMLパーサによってXMLを解析しています。
-
DOMパーサ(javax.xml.DocumentBuilderクラス)
-
SAXパーサ(org.xml.sax.XMLReaderクラス)
これらのXMLパーサのインスタンスは複数のスレッドで共有できないため,複数のスレッドで同時使用する場合は,スレッドごとにXMLパーサを生成しています。XMLパーサの生成処理は時間を要するため,解析ごとに生成すると性能が劣化します。
XMLパーサプール機能を使用すると,メモリ上に作成されたXMLパーサプールに生成したXMLパーサを保存しておくことができます。XMLパーサプールへ保存したXMLパーサは,システム全体で共有し,再利用できるため,処理の効率向上が図れます。
XMLパーサプール機能の各オプションについて次に説明します。
(a) DOMパーサプール機能オプション
HCSCサーバで,XMLを解析する場合に使用するDOMパーサのプールオプションを次のように指定します。
項番 |
キー名称 |
内容 |
デフォルト値 |
---|---|---|---|
1 |
csc.dt.pool.DocumentBuilder.initialSize |
DOMパーサプールを作成するときの初期割り当て数を0〜2,147,483,647の整数で指定します。 最初のDOMパーサ生成時に,初期割り当て数分をまとめて作成し,プールに格納します。これによって,以降の生成時間を削減できます。 最大プール数(csc.dt.pool.DocumentBuilder.maxSizeで指定)よりも大きな値を指定した場合,最大プール数で初期化されます。 負の整数または整数以外の文字列を指定した場合はデフォルト値で動作します。 |
0 |
2 |
csc.dt.pool.DocumentBuilder.maxSize |
DOMパーサの最大プール数を0〜2,147,483,647の整数で指定します。ここで指定した最大プール数を超えてDOMパーサを使用する場合,他スレッドでの使用が終了するまで,待ち状態となります。 0以下の整数を指定した場合は,プール機能は無効となります。また,整数以外の文字列を指定した場合はデフォルト値で動作します。 |
64 |
初期割り当て数(csc.dt.pool.DocumentBuilder.initialSizeで指定)と最大プール数(csc.dt.pool.DocumentBuilder.maxSizeで指定)は,次の関係を満たすよう設定してください。
初期割り当て数 ≦ 最大プール数 ≦ リクエストの最大同時実行数
(b) SAXパーサプール機能オプション
次の処理で,XMLを解析する場合に使用するSAXパーサのプールオプションを指定します。
-
ビジネスプロセスの検証アクティビティ処理
-
データ検証機能(HCSCサーバランタイム定義ファイルでtelegram-validationプロパティにONを指定)
SAXパーサのプールオプションを次に示します。
項番 |
キー名称 |
内容 |
デフォルト値 |
---|---|---|---|
1 |
csc.dt.pool.XMLReader.initialSize |
SAXパーサプールを作成するときの初期割り当て数を0〜2,147,483,647の整数で指定します。 最初のSAXパーサ生成時に,初期割り当て数分をまとめて作成し,プールに格納します。これによって,以降の生成時間を削減できます。 最大プール数(csc.dt.pool.XMLReader.maxSizeで指定)よりも大きな値を指定した場合,最大プール数で初期化されます。 負の整数または整数以外の文字列を指定した場合はデフォルト値で動作します。 |
0 |
2 |
csc.dt.pool.XMLReader.maxSize |
SAXパーサの最大プール数を0〜2,147,483,647の整数で指定します。ここで指定した最大プール数を超えてSAXパーサを使用する場合,他スレッドでの使用が終了するまで,待ち状態となります。 0以下の整数を指定した場合は,プール機能は無効となります。また,整数以外の文字列を指定した場合はデフォルト値で動作します。 |
64 |
初期割り当て数(csc.dt.pool.XMLReader.initialSizeで指定)と最大プール数(csc.dt.pool.XMLReader.maxSizeで指定)は,次の関係を満たすよう設定してください。
初期割り当て数 ≦ 最大プール数 ・データ検証機能を使用する場合 最大プール数 ≦ 各ビジネスプロセス・サービスアダプタの最大同時実行数(多重度) ・データ検証機能を使用しない場合 最大プール数 ≦ 各ビジネスプロセスの検証アクティビティの最大同時実行数の総和
(6) サイズノードの機能を拡張する
サイズノードの拡張機能を使用するかどうかを指定します。
データ変換のサイズノードは,バイナリフォーマット定義の要素(単純内容要素または複合内容要素)のサイズをその前に存在するノードで指定できる機能です。通常のサイズノードは,指定元である要素のサイズだけが対象となります(サイズノード自身のサイズは含まない)。サイズノードの拡張機能を使用すると,指定元である要素のほかに,サイズノード自身のサイズも加算されます。
サイズノードの拡張機能については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「付録M サイズノードの機能拡張」を参照してください。
なお,拡張機能が有効なのは,次の条件を満たすサイズノードだけです。
-
サイズノード指定元要素が,サイズノード指定可能な単純内容要素または複合内容要素であること
-
サイズノードのサイズが固定長であること
このプロパティの指定は,HCSCサーバ上のすべてのバイナリフォーマット定義のサイズノードのデフォルト動作に対して有効となります。
usrconf.propertiesに記述する内容と形式を次に示します。プロパティ値の大文字/小文字は区別されません。
: csc.dt.sizeNode.includeSelfSize={true|false} :
- csc.dt.sizeNode.includeSelfSize={true|false}
-
サイズノードの拡張機能を使用するかどうかを指定します。
- true
-
サイズノードの拡張機能を使用します。
- false
-
サイズノードの拡張機能を使用しません。
(7) 未定義コードを任意の文字へ置換する
バイナリデータとUnicode文字列との間で変換する場合,未定義の文字コードはデフォルトでは空白文字へ置換されますが,任意の文字へ置換することもできます。
任意の文字へ置換する場合は,事前に次に示す2つのファイル定義が必要です。
-
HCSCサーバランタイム定義ファイルに,telegram-undefined-character-code=REPLACE(未定義部分の文字コードをスペースに置換する)を定義する
HCSCサーバランタイム定義ファイルの定義方法については,マニュアル「サービスプラットフォーム リファレンス」の「6.5.6 HCSCサーバランタイム定義ファイル」を参照してください。
-
J2EEサーバ用ユーザプロパティファイル(usrconf.properties)に,置換する任意の文字を指定する
指定方法については,(a)以降を参照してください。
(a) システムプロパティの指定形式
未定義コードを任意の文字へ置換する場合,J2EEサーバ用ユーザプロパティファイル(usrconf.properties)に次に示す形式でシステムプロパティを指定します。
: <プロパティキー>=<置換文字コード> :
- 注意事項
-
プロパティキーだけ指定して置換文字コードを指定しないと,データが壊れるおそれがあります。
- <プロパティキー>
-
指定するシステムプロパティは,データの変換内容や,全角と半角のどちらに置換するか(置換種別)によって異なります。指定するシステムプロパティについては,変換内容に応じて次に示す個所を参照してください。
-
「(b) システムプロパティ(バイナリデータをUnicode文字列に変換する場合)」
-
「(c) システムプロパティ(Unicode文字列をバイナリデータに変換する場合)」
置換種別は,[フォーマット]ダイアログの[未定義コード置換時の処理]の選択([全角・半角スペースに置換する]または[全角スペースに置換する])と,文字コードのシフト状態(全角または半角)で決まります。
置換種別については,マニュアル「サービスプラットフォーム リファレンス」の「1.3.1 フォーマットダイアログ」の[未定義コード置換時の処理]の説明を参照してください。
-
- <置換文字コード>
-
置換後の任意の文字を16進文字列の文字コードで指定します。
- 任意文字として指定できる文字
-
任意文字は全角・半角のどちらも指定できます。なお,置換種別の指定と異なる全角文字または半角文字へ置換する場合,シフトコードやエスケープシーケンスで全角・半角を区別している文字コードに関しては,置換文字コードにシフトコードまたはエスケープシーケンスを記述する必要があります。
また,任意文字を指定することで,次のような置換処理もできます。
-
未定義コードの削除(0バイトへの置換)
-
バイト数が異なる文字への置換
-
未定義文字,シフトコード,エスケープシーケンス,BOMなどの,特殊文字への置換
-
シフト状態(半角・全角)の切り替え
ただし,業務データに応じた設定をしてください。設定が適切でない場合,シフト状態の崩れやバイト数のずれが生じ,置換後のデータが壊れるおそれがあります。
-
- 置換文字コードの指定に関する注意事項
-
-
32文字以内の半角英数字(0〜9,a〜f,A〜F)で指定してください。16進数を意味する「0x」の部分は指定しないでください。
-
バイナリデータをUnicode文字列へ変換する場合,半角文字に置換する場合でも,2バイト単位で指定してください。1バイトで指定するとデータにずれが生じ,正しく置換されません。
-
32文字を超える文字数や,16進数でない値を指定した場合は,エラーになります。
-
置換文字コードにセパレータやエスケープ文字を指定した場合,置換時にエスケープ文字が直前に付加されるため,セパレータやエスケープ文字として解釈されなくなります。
-
未定義文字,シフトコード,エスケープシーケンス,BOMなどの特殊な文字を指定した場合や,バイト数がずれる場合は,データが壊れるおそれがあります。
-
設定例は,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「付録O バイナリデータの未定義コードを置換する文字の定義」を参照してください。
(b) システムプロパティ(バイナリデータをUnicode文字列に変換する場合)
バイナリデータからUnicode文字列への変換時に検知される未定義コードを任意の文字へ置換するためには,該当するシステムプロパティに置換文字コードをUnicode big endianの16進数で指定します。
指定できるシステムプロパティを次の表に示します。システムプロパティは,入力バイナリデータの置換種別ごとに指定できます。
項番 |
キー名称 |
置換種別 |
変換先のUnicode文字列の文字コード |
---|---|---|---|
1 |
csc.dt.undefined.replace.bin2xml |
半角 |
Unicode big endian |
2 |
csc.dt.undefined.replace.bin2xml.full |
全角 |
(c) システムプロパティ(Unicode文字列をバイナリデータに変換する場合)
Unicode文字列からバイナリデータへの変換時に検知される未定義コードを任意の文字へ置換するためには,該当するシステムプロパティに置換文字コードを16進数で指定します。
指定できるシステムプロパティを次の表に示します。システムプロパティは,変換先のバイナリデータの文字コードと置換種別ごとに指定できます。
項番 |
キー名称 |
置換種別 |
変換先のバイナリデータの文字コード |
---|---|---|---|
1 |
csc.dt.undefined.replace.xml2utf16be |
半角 |
UTF16 big endian |
2 |
csc.dt.undefined.replace.xml2utf16be.full |
全角 |
|
3 |
csc.dt.undefined.replace.xml2utf16le |
半角 |
UTF16 little endian |
4 |
csc.dt.undefined.replace.xml2utf16le.full |
全角 |
|
5 |
csc.dt.undefined.replace.xml2utf8 |
半角 |
UTF8 |
6 |
csc.dt.undefined.replace.xml2utf8.full |
全角 |
|
7 |
csc.dt.undefined.replace.xml2ms932 |
半角 |
MS932 |
8 |
csc.dt.undefined.replace.xml2ms932.full |
全角 |
|
9 |
csc.dt.undefined.replace.xml2keisC |
半角 |
KEIS+EBCDIC |
10 |
csc.dt.undefined.replace.xml2keisC.full |
全角 |
|
11 |
csc.dt.undefined.replace.xml2keisK |
半角 |
KEIS+EBCDIK |
12 |
csc.dt.undefined.replace.xml2keisK.full |
全角 |
|
13 |
csc.dt.undefined.replace.xml2keis.full |
全角 |
KEIS |
14 |
csc.dt.undefined.replace.xml2ibmC.latin |
半角 |
IBM+EBCDIC(LATIN) |
15 |
csc.dt.undefined.replace.xml2ibmC.latin.full |
全角 |
|
16 |
csc.dt.undefined.replace.xml2ibmC.kana |
半角 |
IBM+EBCDIC(KANA) |
17 |
csc.dt.undefined.replace.xml2ibmC.kana.full |
全角 |
|
18 |
csc.dt.undefined.replace.xml2ibm.full |
全角 |
IBM |
19 |
csc.dt.undefined.replace.xml2jefC |
半角 |
JEF+EBCDIC |
20 |
csc.dt.undefined.replace.xml2jefC.full |
全角 |
|
21 |
csc.dt.undefined.replace.xml2jefK |
半角 |
JEF+EBCDIK |
22 |
csc.dt.undefined.replace.xml2jefK.full |
全角 |
|
23 |
csc.dt.undefined.replace.xml2jef.full |
全角 |
JEF |
24 |
csc.dt.undefined.replace.xml2jis |
半角 |
JIS |
25 |
csc.dt.undefined.replace.xml2jis.full |
全角 |
|
26 |
csc.dt.undefined.replace.xml2euc |
半角 |
EUC |
27 |
csc.dt.undefined.replace.xml2euc.full |
全角 |
|
28 |
csc.dt.undefined.replace.xml2euchj |
半角 |
EUC_HJ |
29 |
csc.dt.undefined.replace.xml2euchj.full |
全角 |
(8) データ変換APIの動作を指定する
データ変換APIの動作を指定できます。データ変換APIについては,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「12.1 データ変換APIを使用したデータ変換」を参照してください。
データ変換APIで指定できるシステムプロパティを次に示します。
項番 |
キー名称 |
内容 |
デフォルト値 |
---|---|---|---|
1 |
csc.dt.formatdef.maxcache.num.<グループ名> |
バイナリフォーマット定義のキャッシュの上限数を1〜2,147,483,647の範囲で指定します。 キャッシュは再利用されるため,定義したバイナリフォーマット定義の数以上の値を指定してください。 |
2147483647 |
2 |
csc.dt.transformdef.maxcache.num.<グループ名> |
データ変換定義のキャッシュの上限数を1〜2,147,483,647の範囲で指定します。 キャッシュは再利用されるため,定義したデータ変換の数以上の値を指定してください。 |
2147483647 |
3 |
csc.dt.telegram.undefined.characterCode.<グループ名> |
バイナリデータの文字コード変換処理で未定義の文字コードが検出された場合に,次のどちらの対処とするか指定します。
|
ERROR |
4 |
csc.dt.codeTable.rootPath.<グループ名> |
コード変換ライブラリで使用するコード変換テーブル格納パスのルートパスを絶対パスで指定します。 ディレクトリ区切りには「/」または「\\」を使用してください。 存在しないディレクトリやファイルが指定された場合,インスタンスの生成に失敗します。 |
<サービスプラットフォームのインストールディレクトリ>\\CSC\\userlib\\codetables |
5 |
csc.dt.debugtrace |
デバッグ情報の出力有無を指定します。
|
OFF |
6 |
csc.dt.debugtrace.filepath |
csc.dt.debugtraceにONを指定した場合に,デバッグ情報の出力先パスを絶対パスで指定します。ディレクトリ区切りには「/」または「\\」を使用してください。 |
<J2EEサーバのログ出力ディレクトリ>\\CSC ディレクトリが存在しない場合は作成されます。 |
7 |
csc.dt.debugtrace.filenum |
csc.dt.debugtraceにONを指定した場合に,デバッグ情報ファイルの最大面数を1〜16の範囲で指定します。 |
4 |
8 |
csc.dt.debugtrace.filesize |
csc.dt.debugtraceにONを指定した場合に,デバッグ情報ファイルの1面当たりの最大サイズを4,096〜2,147,483,647の範囲(単位:バイト)で指定します。 |
2097152 |
デバッグ情報の出力ファイル名には,データ変換APIのインスタンス(グループ)の名称が付加されます。デバッグ情報の出力ファイル名を次に示します。
cscdebug_<グループ名>_<面数>.log