7 メッセージ取得プロパティ
7.1 ロギングおよび接続のプロパティ
次のプロパティは、JMSへの接続、ログ・ファイル名、エラー処理およびメッセージ出力を制御します。
7.1.1 ロギング・プロパティ
ロギングは次のプロパティによって制御されます。
7.1.1.1 gg.log
使用されるロギングのタイプを指定します。デフォルトの実装は、JDK
オプションです。これは、java.util.logging
(JUL
)という名前の組込みJavaロギングです。その他のロギング・オプションは、log4j
またはlogback
です。構文は次のとおりです。
gg.log={JDK|log4j|logback}
たとえば、ロギングのタイプをlog4j
に設定するには、次のようにします。
gg.log=log4j
ログ・ファイルは、インストールのレポート・サブディレクトリに作成されます。デフォルトのログ・ファイル名には、関連付けられているExtractのグループ名が含まれ、ファイル拡張子はlog
です。
7.1.1.2 gg.log.level
すべてのモジュールを対象とする全体的なログ・レベルを指定します。構文は次のとおりです。
gg.log.level={ERROR|WARN|INFO|DEBUG}
ログ・レベルは次のように定義されています。
-
ERROR
- エラーが発生した場合にのみメッセージを書き込ます。 -
WARN
- エラーおよび警告メッセージを書き込みます。 -
INFO
- エラー、警告および情報メッセージを書き込みます。 -
DEBUG
- デバッグ・メッセージを含むすべてのメッセージを書き込みます。
デフォルトのロギング・レベルはINFO
です。この場合、メッセージは、起動時、停止時および操作中に定期的に生成されます。レベルをDEBUG
に切り替えると、メッセージが大量に生成され、パフォーマンスに影響する場合があります。たとえば、次の例ではグローバル・ロギング・レベルをINFO
に設定します。
# global logging level gg.log.level=INFO
7.1.1.3 gg.log.file
ログ・ファイルのパスを指定します。構文は次のとおりです。
gg.log.file=path_to_file
ここで、path_to_file
は完全に定義されたログ・ファイルの場所です。これによってログの名前の変更が可能になりますが、複数のReplicatがある場合、誤って他のログを上書きすることがないようReplicat名を含める必要があります。
7.1.2 JMS接続プロパティ
7.1.2.1 jvm.boot options
JVMの起動時に適用されるクラスパスおよび起動オプションを指定します。パスには、UNIX/Linuxの場合コロン(:)、Windowsの場合セミコロン(;)の区切り文字が必要です。
構文は次のとおりです。
jvm.bootoptions=option[, option][. . .]
options
は、コマンドラインから実行されるJavaに渡されるものと同じです。これには、クラスパス、システム・プロパティ、使用されているJavaのバージョンに対して有効なJVMメモリー・オプション(最大メモリー、初期メモリーなど)などがあります。有効なオプションは、JVMのバージョンおよびプロバイダによって異なります。
次に例を示します(すべて1行に記述します)。
jvm.bootoptions= -Djava.class.path=ggjava/ggjava.jar -Dlog4j.configuration=my-log4j.properties
log4j.configuration
プロパティには、log4jプロパティ・ファイルの完全修飾URLを指定できます。デフォルトでは、このファイルはクラスパスで検索されます。独自のlog4j構成を使用することも、あらかじめ構成されたlog4j設定であるlog4j.properties
(デフォルト・レベルのロギング)、debug-log4j.properties
(デバッグ・ロギング)またはtrace-log4j.properties
(非常に詳細なロギング)のいずれかを使用することもできます。
7.1.2.2 jms.report.output
JMSレポートを書き込む場所を指定します。構文は次のとおりです。
jms.report.output={report|log|both}
説明:
-
report
は、JMSレポートをOracle GoldenGateレポート・ファイルに送信します。これはデフォルトです。 -
log
は、Javaログ・ファイル(構成されている場合)に書き込みます。 -
both
は、両方の場所に送信します。
7.1.2.3 jms.report.time
レポート生成の頻度を時間に基づいて指定します。
jms.report.time=time_specification
次の例では、30秒ごと、45分ごと、8時間ごとにレポートを書き込みます。
jms.report.time=30sec jms.report.time=45min jms.report.time=8hr
7.1.2.4 jms.report.records
レポート生成の頻度をレコード数に基づいて指定します。構文は次のとおりです。
jms.report.records=number
次の例では、1000レコードごとにレポートを書き込みます。
jms.report.records=1000
7.1.2.5 jms.id
指定された形式の一意の識別子がJMS統合からメッセージ取得VAMに渡されることを指定します。これをレコードの一意のシーケンスIDとしてVAMで使用できます。
jms.id={ogg|time|wmq|activemq|message_header|custom_java_class
}
説明:
-
ogg -
Oracle GoldenGate JMS配信によって設定されるメッセージ・ヘッダー・プロパティGG_ID
を返します。 -
time -
システム・タイムスタンプをメッセージIDの開始点として使用します。 -
wmq -
WebSphere MQ Message IDをVAMとともに使用するために再フォーマットします。 -
activemq -
ActiveMQ Message IDをVAMとともに使用するために再フォーマットします。 -
message_header -
カスタマイズしたJMSメッセージ・ヘッダー(JMSMessageID
、JMSCorrelationID
、JMSTimestamp
など)を含めるよう指定します。 -
custom_java_class
- IDとして使用される文字列を作成するカスタムJavaクラスを指定します。
次に例を示します。
jms.id=time jms.id=JMSMessageID
返されるIDは、一意、増分かつ固定長です。数字が重複する場合、重複はスキップされます。メッセージIDの長さを変更すると、Extractプロセスが異常終了します。
7.1.2.7 jms.connectionFactory
JNDIを使用して検索される接続ファクトリ名を指定します。
jms.connectionFactory=jndi_name
次に例を示します。
jms.connectionFactory=ConnectionFactory
7.1.3 JNDIプロパティ
JMS統合では、メッセージ取得VAMの特定のプロパティ以外に、接続ファクトリと宛先を検索するための初期コンテキストへの接続に必要なJNDIプロパティの設定もサポートされます。次のプロパティを設定する必要があります。
java.naming.provider.url=url
java.naming.factory.initial=java_class_name
JNDIセキュリティが有効な場合、次のプロパティを設定できます。
java.naming.security.principal=user_name java.naming.security.credentials=password_or_other_authenticator
次に例を示します。
java.naming.provider.url= t3://localhost:7001 java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory java.naming.security.principal=jndiuser java.naming.security.credentials=jndipw
7.2 パーサー・プロパティ
プロパティで、各タイプのパーサー(固定、区切り、XML)のメッセージの形式および翻訳ルールを指定します。parser.type
プロパティを設定して、使用するパーサーを指定します。残りのプロパティは、パーサー固有です。
7.2.2 固定パーサー・プロパティ
固定パーサーには次のプロパティが必要です。
7.2.2.3 fixed.copybook
fixed.schematype
=copybook
の場合、このプロパティで、メッセージ取得プロセスで使用されるコピーブック・ファイルの場所を指定します。
fixed.copybook=file_location
次に例を示します。
fixed.copybook=test_copy_book.cpy
7.2.2.4 fixed.header
データ・ブロック構造の決定に使用されるヘッダー情報を含むsourcedefs
エントリまたはコピーブック・レコードの名前を指定します。
fixed.header=record_name
次に例を示します。
fixed.header=HEADER
7.2.2.5 fixed.seqid
各レコードを一意に識別するために使用されるseqid
を含むヘッダー・フィールドの名前、JMSプロパティまたはシステム値を指定します。この値は継続的に増分され、最後の文字が最下位である必要があります。
fixed.seqid={field_name|$jms_property|*seqid}
説明:
-
field_name
は、seqid
を含むヘッダー・フィールドの名前を示します。 -
jms_property
は、指定されたJMSヘッダー・プロパティの値を使用します。これの特別な値は$jmsid
で、jms.id
プロパティで選択されたメカニズムによって返される値を使用します -
seqid
は、システムによって生成される、単純増分の64ビット整数を示します。
次に例を示します。
fixed.seqid=$jmsid
7.2.2.6 fixed.timestamp
タイムスタンプを含むフィールドの名前、JMSプロパティまたはシステム値を指定します。
fixed.timestamp={field_name|$jms_property|*ts}
次に例を示します。
fixed.timestamp=TIMESTAMP fixed.timestamp=$JMSTimeStamp fixed.timestamp=*ts
7.2.2.7 fixed.timestamp.format
タイムスタンプ・フィールドの形式を指定します。
fixed.timestamp.format=format
形式には、句読文字と次のものを含めることができます。
-
YYYY
- 4桁の年 -
YY
- 2桁の年 -
M[M]
- 1桁または2桁の月 -
D[D]
- 1桁または2桁の日 -
HH
- 24時間表記の時間 -
MI
– 分 -
SS
- 秒 -
Fn
- n個の小数部
デフォルトの形式は、"YYYY-MM-DD:HH:MI:SS.FFF
"です。
次に例を示します。
fixed.timestamp.format=YYYY-MM-DD-HH.MI.SS
7.2.2.8 fixed.txid
トランザクションを一意に識別するために使用されるtxid
を含むフィールドの名前、JMSプロパティまたはシステム値を指定します。この値は、トランザクションごとに増分されます。
fixed.txid={field_name
|$jms_property|*txid}
ほとんどの場合、システム値*txid
を使用することが推奨されます。
次に例を示します。
fixed.txid=$JMSTxId fixed.txid=*txid
7.2.2.9 fixed.txowner
トランザクションに関連付けられているユーザー名を含むフィールドの名前、JMSプロパティまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。これは、オプションのプロパティです。
fixed.txowner={field_name|$jms_property
|"value"}
次に例を示します。
fixed.txowner=$MessageOwner fixed.txowner="jsmith"
7.2.2.10 fixed.txname
トランザクションに関連付けられている任意の名前を含むフィールドの名前、JMSプロパティまたは静的値を指定します。これは、オプションのプロパティです。
fixed.txname={field_name
|$jms_property|"value"}
次に例を示します。
fixed.txname="fixedtx"
7.2.2.11 fixed.optype
操作タイプを含むフィールドの名前またはJMSプロパティを指定します。これは、後述の項で指定されるfixed.optype
値に対して検証されます。
fixed.header.optype={field_name|$jms_property}
次に例を示します。
fixed.header.optype=FUNCTION
7.2.2.12 fixed.optype.insertval
この値は、挿入操作を識別します。デフォルトは、I
です。
fixed.optype.insertval={value|\xhex_value}
次に例を示します。
fixed.optype.insertval=A
7.2.2.13 fixed.optype.updateval
この値は、更新操作を識別します。デフォルトは、U
です。
fixed.optype.updateval={value|\xhex_value}
次に例を示します。
fixed.optype.updateval=M
7.2.2.14 fixed.optype.deleteval
この値は削除操作を識別します。デフォルトは、D
です。
fixed.optype.deleteval={value|\xhex_value}
次に例を示します。
fixed.optype.deleteval=R
7.2.2.15 fixed.table
表の名前を指定します。これによって、ヘッダー以外のデータ部分の翻訳に必要なデータ・レコード定義をパーサーが検索できます。
fixed.table=field_name|$jms_property[, . . .]
カンマ区切りの複数のフィールド名を使用して表の名前を決定できます。各フィールド名は、fixed.header
プロパティまたはJMSプロパティによって定義されるヘッダー・レコード内のフィールドに対応します。これらのフィールドの値は連結されてデータ・レコードを識別します。
次に例を示します。
fixed.table=$JMSTableName fixed.table=SOURCE_Db,SOURCE_Db_Rec_Version
7.2.2.16 fixed.schema
SCHEMA.TABLE
表名を生成する際のスキーマの静的な名前を指定します。
fixed.schema="value"
次に例を示します。
fixed.schema="OGG"
7.2.2.17 fixed.txind
トランザクション・インジケータ値に対して検証される、トランザクション・インジケータを含むフィールドの名前またはJMSプロパティを指定します。これが定義されていない場合、1つのメッセージ内のすべての操作がトランザクション全体に出現するとみなされます。定義されている場合、これによってトランザクションの先頭、中間および末尾が決まります。このように定義されたトランザクションは複数メッセージにわたることができます。これは、オプションのプロパティです。
fixed.txind={field_name|$jms_property}
次に例を示します。
fixed.txind=$TX_IND
7.2.2.18 fixed.txind.beginval
この値は、操作をトランザクションの先頭として識別します。デフォルトは、B
です。
fixed.txind.beginval={value|\xhex_value}
次に例を示します。
fixed.txind.beginval=0
7.2.2.19 fixed.txind.middleval
この値は、操作をトランザクションの中間として識別します。デフォルトは、M
です。
fixed.txind.middleval={value|\xhex_value}
次に例を示します。
fixed.txind.middleval=1
7.2.2.20 fixed.txind.endval
この値は、操作をトランザクションの末尾として識別します。デフォルトは、Eです。
fixed.txind.endval={value|\xhex_value}
次に例を示します。
fixed.txind.endval=2
7.2.3 区切りパーサー・プロパティ
特に記載のないかぎり、区切りパーサーには次のプロパティが必要です。
7.2.3.2 delim.header
データの前に配置される値のリストを指定し、各々に名前を割り当てます。
delim.header=name[,name2][. . .]
名前は一意である必要があります。これらは、他のdelim
プロパティまたはヘッダー・フィールドが使用可能な場所で参照されます。
次に例を示します。
delim.header=optype, tablename, ts delim.timestamp=ts
7.2.3.3 delim.seqid
各レコードを一意に識別するために使用されるseqid
を含むヘッダー・フィールドの名前、JMSプロパティまたはシステム値を指定します。この値は増分され、最後の文字が最下位である必要があります。
delim.seqid={field_name|$jms_property|*seqid}
説明:
-
field_name
は、seqid
を含むヘッダー・フィールドの名前を示します。 -
jms_property
では、指定されたJMSヘッダー・プロパティの値を使用します。この特別な値は$jmsid
で、jms.id
プロパティで選択されたメカニズムによって返される値を使用します。 -
seqid
は、システムによって生成される、単純で継続的に増分される64ビット整数を示します。
次に例を示します。
delim.seqid=$jmsid
7.2.3.4 delim.timestamp
タイムスタンプを含むJMSプロパティの名前、ヘッダー・フィールドまたはシステム値を指定します。
delim.timestamp={field_name|$jms_property|*ts}
次に例を示します。
delim.timestamp=TIMESTAMP delim.timestamp=$JMSTimeStamp delim.timestamp=*ts
7.2.3.5 delim.timestamp.format
タイムスタンプ・フィールドの形式を指定します。
delim.timestamp.format=format
format
には、句読文字と次のものを含めることができます。
-
YYYY
- 4桁の年 -
YY
- 2桁の年 -
M[M]
- 1桁または2桁の月 -
D[D]
- 1桁または2桁の日 -
HH
- 24時間表記の時間 -
MI
– 分 -
SS
- 秒 -
Fn
- n個の小数部
デフォルトの形式は、"YYYY-MM-DD:HH:MI:SS.FFF
"です。
次に例を示します。
delim.timestamp.format=YYYY-MM-DD-HH.MI.SS
7.2.3.6 delim.txid
トランザクションを一意に識別するために使用されるtxid
を含むJMSプロパティの名前、ヘッダー・フィールドまたはシステム値を指定します。この値は、トランザクションごとに増分されます。
delim.txid={field_name|$jms_property|*txid}
ほとんどの場合、システム値*txid
を使用することが推奨されます。
次に例を示します。
delim.txid=$JMSTxId delim.txid=*txid
7.2.3.7 delim.txowner
トランザクションに関連付けられている任意のユーザー名を含むJMSプロパティの名前、ヘッダー・フィールドまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。これは、オプションのプロパティです。
delim.txowner={field_name
|$jms_property|"value"}
次に例を示します。
delim.txowner=$MessageOwner delim.txowner="jsmith"
7.2.3.8 delim.txname
トランザクションに関連付けられている任意の名前を含むJMSプロパティの名前、ヘッダー・フィールドまたは静的値を指定します。これは、オプションのプロパティです。
delim.txname={field_name|$jms_property|"value"}
次に例を示します。
delim.txname="fixedtx"
7.2.3.9 delim.optype
操作タイプを含むJMSプロパティの名前またはヘッダー・フィールドを指定します。これは、delim.optype.insertval、delim.optype.updateval
およびdelim.optype.deleteval
の値と比較されて、操作が決まります。
delim.optype={field_name|$jms_property}
次に例を示します。
delim.optype=optype
7.2.3.10 delim.optype.insertval
この値は、挿入操作を識別します。デフォルトは、Iです。
delim.optype.insertval={value
|\xhex_value}
次に例を示します。
delim.optype.insertval=A
7.2.3.11 delim.optype.updateval
この値は、更新操作を識別します。デフォルトは、Uです。
delim.optype.updateval={value
|\xhex_value}
次に例を示します。
delim.optype.updateval=M
7.2.3.12 delim.optype.deleteval
この値は、削除操作を識別します。デフォルトは、D
です。
delim.optype.deleteval={value|\xhex_value}
次に例を示します。
delim.optype.deleteval=R
7.2.3.13 delim.schemaandtable
SCHEMA.TABLE
形式でスキーマおよび表の名前を含むJMSプロパティの名前またはヘッダー・フィールドを指定します。
delim.schemaandtable={field_name|$jms_property}
次に例を示します。
delim.schemaandtable=$FullTableName
7.2.3.14 delim.schema
スキーマ名を含むJMSプロパティの名前、ヘッダー・フィールドまたはハードコードされた値を指定します。
delim.schema={field_name|$jms_property|"value"}
次に例を示します。
delim.schema="OGG"
7.2.3.15 delim.table
表名を含むJMSプロパティまたはヘッダー・フィールドの名前を指定します。
delim.table={field_name|$jms_property}
次に例を示します。
delim.table=TABLE_NAME
7.2.3.16 delim.txind
beginval
、middleval
、endval
またはwholeval
に対して検証される、トランザクション・インジケータを含むJMSプロパティまたはヘッダー・フィールドの名前を指定します。このプロパティが設定されていない場合、1つのメッセージ内のすべての操作が1つのトランザクション内にあるとみなされます。設定されている場合、これによってトランザクションの先頭、中間および末尾が決まります。このように定義されたトランザクションは複数メッセージにわたることができます。これは、オプションのプロパティです。
delim.txind={field_name|$jms_property}
次に例を示します。
delim.txind=txind
7.2.3.17 delim.txind.beginval
操作をトランザクションの先頭として識別する値。デフォルトは、B
です。
delim.txind.beginval={value|\xhex_value}
次に例を示します。
delim.txind.beginval=0
7.2.3.18 delim.txind.middleval
操作をトランザクションの中間として識別する値。デフォルトは、M
です。
delim.txind.middleval={value|\xhex_value}
次に例を示します。
delim.txind.middleval=1
7.2.3.19 delim.txind.endval
操作をトランザクションの末尾として識別する値。デフォルトは、E
です。
delim.txind.endval={value|\xhex_value}
次に例を示します。
delim.txind.endval=2
7.2.3.20 delim.txind.wholeval
操作をトランザクション全体として識別する値。デフォルトは、W
です。
delim.txind.wholeval={value|\xhex_value}
次に例を示します。
delim.txind.wholeval=3
7.2.3.21 delim.fielddelim
データ内のフィールド(列)の区切りに使用されるデリミタ値を指定します。この値は、文字または16進値を使用して定義されます。
delim.fielddelim={value|\xhex_value}
次に例を示します。
delim.fielddelim=, delim.fielddelim=\xc7
7.2.3.22 delim.linedelim
データ内の行(レコード)の区切りに使用されるデリミタ値を指定します。この値は、文字または16進値を使用して定義されます。
delim.linedelim={value|\xhex_value}
次に例を示します。
delim.linedelim=|| delim.linedelim=\x0a
7.2.3.23 delim.quote
引用符付きのデータの識別に使用される値を指定します。この値は、文字または16進値を使用して定義されます。
delim.quote={value|\xhex_value}
次に例を示します。
delim.quote="
7.2.3.24 delim.nullindicator
NULL
データの識別に使用される値を指定します。この値は、文字または16進値を使用して定義されます。
delim.nullindicator={value|\xhex_value}
次に例を示します。
delim.nullindicator=NULL
7.2.3.25 delim.fielddelim.escaped
入力フィールドにフィールド・デリミタが出現する場合にフィールド・デリミタを置き換える値を指定します。構文は次のとおりです。
delim.fielddelim.escaped={value|\xhex_value}
たとえば、プロパティ設定が次のとおりであるとします。
delim.fielddelim=- delim.fielddelim.escaped=$#$
データのいずれのフィールド値にもハイフンのデリミタが含まれていない場合:
one two three four
結果の区切りデータは次のようになります。
one-two-three-four
フィールド値にハイフン(-)のデリミタが含まれている場合:
one two three four-fifths two-fifths
結果の区切りデータは次のようになります。
one-two-three-four$#$fifths-two$#$fifths
7.2.3.26 delim.linedelim.escaped
入力データに行デリミタが出現する場合に行デリミタを置き換える値を指定します。構文は次のとおりです。
delim.linedelim.escaped={value|\xhex_value}
たとえば、プロパティ設定が次のとおりであるとします。
delim.linedelim=\ delim.linedelim.escaped=%/%
入力行が次のような場合:
These are the lines and they do not contain the delimiter.
行にバックスラッシュ(\)が含まれていないため、結果は次のようになります。
These are the lines and they\ do not contain the delimiter.\
ただし、入力行にデリミタが含まれる場合:
These are the lines\data values and they do contain the delimiter.
結果は次のとおりです。
These are the lines%/%data values\ and they do contain the delimiter.\
7.2.3.27 delim.quote.escaped
入力データに引用符デリミタが出現する場合に引用符デリミタを置き換える値を指定します。構文は次のとおりです。
delim.quote.escaped={value|\xhex_value}
たとえば、プロパティ設定が次のとおりであるとします。
delim.quote=" delim.quote.escaped="'"
入力データに引用符(")デリミタが含まれない場合:
It was a very original play.
結果は次のとおりです。
"It was a very original play."
ただし、入力データに引用符デリミタが含まれる場合:
It was an "uber-original" play.
結果は次のとおりです。
"It was an "'"uber-original"'" play."
7.2.3.28 delim.nullindicator.escaped
入力データにnullインジケータが出現する場合にnullインジケータを置き換える値を指定します。構文は次のとおりです。
delim.nullindicator.escaped={value|\xhex_value}
たとえば、プロパティ設定が次のとおりであるとします。
delim.fielddelim=, delim.nullindicator=NULL delim.nullindicator.escaped=$NULL$
入力データにNULL
値またはNULL
インジケータが含まれない場合:
1 2 3 4 5
結果は次のとおりです
1,2,3,4,5
入力データにNULL
値が含まれる場合:
1 2 4 5
結果は次のとおりです
1,2,NULL,4,5
入力データにNULL
インジケータが含まれる場合:
1 2 NULL 4 5
結果は次のとおりです。
1,2,$NULL$,4,5
7.2.3.29 delim.hasbefores
データ内にビフォア値が存在するかどうかを指定します。
delim.hasbefores={true|false}
デフォルトは、false
です。delim.hasbefores
がtrueに設定されている場合、パーサーは、すべてのレコードについて列のビフォア値とアフター値があると想定します。ビフォア値は更新と削除に使用され、アフター値は更新と挿入に使用されます。afterfirst
プロパティは、ビフォア・イメージがアフター・イメージの前か後かを指定します。delim.hasbefores
がfalseの場合、ビフォア値は想定されません。
次に例を示します。
delim.hasbefores=true
7.2.3.30 delim.hasnames
データ内に列名が存在するかどうかを指定します。
delim.hasnames={true|false}
デフォルトは、falseです。trueの場合、パーサーはすべてのレコードに対して列名を検出すると想定します。パーサーは、想定される列名に対して列名を検証します。falseの場合、列名は想定されません。
次に例を示します。
delim.hasnames=true
7.2.3.31 delim.afterfirst
アフター値がビフォア値の前に配置されているか、後に配置されているかを指定します。
delim.afterfirst={true|false}
デフォルトは、falseです。trueの場合、パーサーは、アフター値をビフォア値の前に検出すると想定します。falseの場合、アフター値はビフォア値の前にあります。
次に例を示します。
delim.afterfirst=true
7.2.3.32 delim.isgrouped
すべての列の列名、ビフォア・イメージおよびアフター・イメージがグループ化されるか、列ごとに順に配置されるかを指定します。
delim.isgrouped={true|false}
デフォルトは、falseです。trueの場合、パーサーは、列名のグループ(hasnames
がtrueの場合)、次にビフォア値のグループ(hasbefores
の場合)、その次にアフター値のグループがある(afterfirst
設定によってはビフォア値とアフター値の順序が逆になる)と想定します。falseの場合、パーサーは、列名(hasnames
の場合)、ビフォア値(hasbefores
の場合)およびアフター値が列ごとにあると想定します。
次に例を示します。
delim.isgrouped=true
7.2.3.33 delim.dateformat | delim.dateformat.table | delim.dateform.table.column
列データの日付形式を指定します。これは、グローバル・レベル、表レベルまたは列レベルで指定されます。日付の解析に使用される形式は、parser.timestamp.format
に使用される形式のサブセットです。
delim.dateformat=format delim.dateformat.TABLE=format delim.dateformat.TABLE.COLUMN=format
説明:
-
format
は、parser.timestamp.format
に定義された形式です。 -
table
は、現在処理されている表の完全修飾名です。 -
column
は、指定された表の列です。
次に例を示します。
delim.dateformat=YYYY-MM-DD HH:MI:SS delim.dateformat.MY.TABLE=DD/MM/YY-HH.MI.SS delim.dateformat.MY.TABLE.EXP_DATE=YYMM
7.2.4 XMLパーサー・プロパティ
次のプロパティがXMLパーサーによって使用されます。
7.2.4.2 xml.rules
メッセージの解析とトランザクション、操作および列の変換のXMLルールのリストを指定します。
xml.rules=xml_rule_name[, . . .]
指定されたXMLルールは、リストされた順に処理されます。特定のXMLドキュメントに対応するすべてのルールによって、トランザクション、操作および列を作成できます。指定されるXMLルールは、トランザクション・タイプまたは操作タイプのルールである必要があります。
次に例を示します。
xml.rules=dyntxrule, statoprule
7.2.4.3 rulename.type
XMLルールのタイプを指定します。
rulename.type={tx|op|col}
説明:
-
tx
は、トランザクション・ルールを示します。 -
op
は、操作ルールを示します。 -
col
は、列ルールを示します。
次に例を示します。
dyntxrule.type=tx statoprule.type=op
7.2.4.4 rulename.match
ルールが特定のドキュメントに対してアクティブ化されるかどうかの決定に使用されるXPath式を指定します。
rulename.match=xpath_expression
XPath式がドキュメントからノードを返す場合、ルールが対応付けられ、後続の処理が行われます。ノードを返さない場合、そのドキュメントに対してルールは無視されます。
次の例では、ドキュメントにルート要素Transaction
がある場合、dyntxrule
がアクティブ化されます。
dyntxrule.match=/Transaction
statoprule
はstattxtule
のサブルールです。次の例では、親ルールの一致ノードに子要素NewMyTableEntry
がある場合、statoprule
がアクティブ化されます。
statoprule.match=./NewMyTableEntry
7.2.4.5 rulename.subrules
親ルールが一致によってアクティブ化された場合、一致をチェックするルール名のリストを指定します。
rulename.subrules=xml_rule_name[, . . .]
指定されたXMLルールは、リストされた順に処理されます。すべての一致ルールで、トランザクション、操作および列が作成される場合があります。
有効なサブルールは、親タイプによって決まります。トランザクション・ルールは、操作サブルールのみ持つことができます。操作ルールは、操作または列サブルールを持つことができます。列ルールは、サブルールを持つことはできません。
次に例を示します。
dyntxrule.subrules=dynoprule statoprule.subrules=statkeycolrule, statcol1rule
7.2.4.6 txrule.timestamp
1) 指定されたXPath式またはJMSプロパティに含まれたトランザクション・コミット・タイムスタンプの使用、または2) 現在のシステム時間の使用をアダプタに指定することで、トランザクションのタイムスタンプを制御します。これは、オプションのプロパティです。
txrule.timestamp={xpath_expression|$jms_property|*ts}
トランザクションのタイムスタンプは操作レベルでオーバーライドすることも、操作レベルでのみ存在することもできます。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
次に例を示します。
dyntxrule.timestamp=@ts
7.2.4.7 txrule.timestamp.format
タイムスタンプ・フィールドの形式を指定します。
txrule.timestamp.format=format
形式には、句読文字と次のものを含めることができます。
-
YYYY
- 4桁の年 -
YY
- 2桁の年 -
M[M]
- 1桁または2桁の月 -
D[D]
- 1桁または2桁の日 -
HH
- 24時間表記の時間 -
MI
– 分 -
SS
–秒
-
Fn
- n個の小数部
デフォルトの形式は、"YYYY-MM-DD:HH:MI:SS.FFF
"です。
次に例を示します。
dyntxrule.timestamp.format=YYYY-MM-DD-HH.MI.SS
7.2.4.8 txrule.seqid
特定のトランザクションのseqid
を指定します。これは、各メッセージに複数のトランザクションがある場合に使用できます。トランザクションのseqid
を含むXPath式、JMSプロパティまたはシステム値を決定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
txrule.seqid={xpath_expression|$jms_property|*seqid}
次に例を示します。
dyntxrule.seqid=@seqid
7.2.4.9 txrule.txid
トランザクションを一意に識別するために使用されるtxid
を含むXPath式、JMSプロパティまたはシステム値を指定します。この値は、トランザクションごとに増分されます。
txrule.txid={xpath_expression|$jms_property|*txid}
ほとんどの場合、システム値*txid
を使用することが推奨されます。
次に例を示します。
dyntxrule.txid=$JMSTxId dyntxrule.txid=*txid
7.2.4.10 txrule.txowner
トランザクションに関連付けられている任意のユーザー名を含むXPath式、JMSプロパティまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。
txrule.txowner={xpath_expression|$jms_property|"value"}
次に例を示します。
dyntxrule.txowner=$MessageOwner dyntxrule.txowner="jsmith"
7.2.4.11 txrule.txname
トランザクションに関連付けられている任意の名前を含むXPath式、JMSプロパティまたは静的値を指定します。これは、オプションのプロパティです。
txrule.txname={xpath_expression|$jms_property|"value"}
次に例を示します。
dyntxrule.txname="fixedtx"
7.2.4.12 oprule.timestamp
1) 指定されたXPath式またはJMSプロパティに含まれたトランザクション・コミット・タイムスタンプの使用、または2) 現在のシステム時間の使用をアダプタに指定することで、操作のタイムスタンプを制御します。これは、オプションのプロパティです。
oprule.timestamp={xpath_expression|$jms_property|*ts}
操作のタイムスタンプは、トランザクション・レベルのタイムスタンプをオーバーライドします。
XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
次に例を示します。
statoprule.timestamp=./CreateTime/text()
7.2.4.13 oprule.timestamp.format
タイムスタンプ・フィールドの形式を指定します。
oprule.timestamp.format=format
format
には、句読文字と次のものを含めることができます。
-
YYYY
- 4桁の年 -
YY
- 2桁の年 -
M[M]
- 1桁または2桁の月 -
D[D]
- 1桁または2桁の日 -
HH
- 24時間表記の時間 -
MI
– 分 -
SS
- 秒 -
Fn
- n個の小数部
デフォルトの形式は、"YYYY-MM-DD:HH:MI:SS.FFF
"です。
次に例を示します。
statoprule.timestamp.format=YYYY-MM-DD-HH.MI.SS
7.2.4.14 oprule.seqid
特定の操作のseqid
を指定します。操作のseqid
を含むXPath式、JMSプロパティまたはシステム値を使用します。これは、親トランザクション・ルールで定義されたseqid
をオーバーライドします。親トランザクション・ルールがない場合、必須です。
XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
oprule.seqid={xpath_expression|$jms_property|*seqid}
次に例を示します。
dynoprule.seqid=@seqid
7.2.4.15 oprule.txid
トランザクションを一意に識別するために使用されるtxid
を含むXPath式、JMSプロパティまたはシステム値を指定します。これは、親トランザクション・ルールで定義されたtxid
をオーバーライドし、親トランザクション・ルールがない場合、必須です。この値は、トランザクションごとに増分されます。
oprule.txid={xpath_expression|$jms_property|*txid}
ほとんどの場合、システム値*txid
を使用することが推奨されます。
次に例を示します。
dynoprule.txid=$JMSTxId dynoprule.txid=*txid
7.2.4.16 oprule.txowner
トランザクションに関連付けられている任意のユーザー名を含むXPath式、JMSプロパティまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。これは、オプションのプロパティです。
oprule.txowner={xpath_expression|$jms_property|"value"}
次に例を示します。
dynoprule.txowner=$MessageOwner dynoprule.txowner="jsmith"
7.2.4.17 oprule.txname
トランザクションに関連付けられている任意の名前を含むXPath式、JMSプロパティまたは静的値を指定します。これは、オプションのプロパティです。
oprule.txname={xpath_expression|$jms_property|"value"}
次に例を示します。
dynoprule.txname="fixedtx"
7.2.4.18 oprule.schemandtable
SCHEMA.TABLE
形式でスキーマおよび表の名前を含むXPath式、JMSプロパティまたはハードコードされた値を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。値を検証して表がソース定義に存在するかどうかが確認されます。
oprule.schemaandtable={xpath_expression|$jms_property|"value"}
次に例を示します。
statoprule.schemaandtable="MY.TABLE"
7.2.4.19 oprule.schema
スキーマ名を含むXPath式、JMSプロパティまたはハードコードされた値を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
oprule.schema={xpath_expression|$jms_property|"value"}
次に例を示します。
statoprule.schema=@schema
7.2.4.20 oprule.table
表名を含むXPath式、JMSプロパティまたはハードコードされた値を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
oprule.table={xpath_expression|$jms_property|"value"}
次に例を示します。
statoprule.table=$TableName
7.2.4.21 oprule.optype
optype
insertval
について評価されるoptype
を含むXPath式、JMSプロパティまたはリテラル値を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
oprule.optype={xpath_expression|$jms_property|"value"}
次に例を示します。
dynoprule.optype=@type statoprule.optype="I"
7.2.4.22 oprule.optype.insertval
挿入操作を識別する値を指定します。デフォルトは、I
です。
oprule.optype.insertval={value|\xhex_value}
次に例を示します。
dynoprule.optype.insertval=A
7.2.4.23 oprule.optype.updateval
更新操作を識別する値を指定します。デフォルトは、U
です。
oprule.optype.updateval={value|\xhex_value}
次に例を示します。
dynoprule.optype.updateval=M
7.2.4.24 oprule.optype.deleteval
削除操作を識別する値を指定します。デフォルトは、D
です。
oprule.optype.deleteval={value|\xhex_value}
次に例を示します。
dynoprule.optype.deleteval=R
7.2.4.25 oprule.txind
beginval
またはトランザクション内の位置を識別する他の値に対して検証されるトランザクション・インジケータを含むXPath式またはJMSプロパティを指定します。このプロパティが定義されていない場合、1つのメッセージ内のすべての操作がトランザクション全体に出現するとみなされます。トランザクションの先頭、中間および末尾を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。このように定義されたトランザクションは複数メッセージにわたることができます。これは、オプションのプロパティです。
oprule.txind={xpath_expression|$jms_property}
次に例を示します。
dynoprule.txind=@txind
7.2.4.26 oprule.txind.beginval
操作をトランザクションの先頭として識別する値を指定します。デフォルトは、B
です。
oprule.txind.beginval={value|\xhex_value}
次に例を示します。
dynoprule.txind.beginval=0
7.2.4.27 oprule.txind.middleval
操作をトランザクションの中間として識別する値を指定します。デフォルトは、M
です。
oprule.txind.middleval={value|\xhex_value}
次に例を示します。
dynoprule.txind.middleval=1
7.2.4.28 oprule.txind.endval
操作をトランザクションの末尾として識別する値を指定します。デフォルトは、E
です。
oprule.txind.endval={value|\xhex_value}
次に例を示します。
dynoprule.txind.endval=2
7.2.4.29 oprule.txind.wholeval
操作をトランザクション全体として識別する値を指定します。デフォルトは、W
です。
oprule.txind.wholeval={value|\xhex_value}
次に例を示します。
dynoprule.txind.wholeval=3
7.2.4.30 colrule.name
列名を含むXPath式またはハードコードされた値を指定します。指定しない場合、列索引を指定する必要があります。列索引から列名が解決されます。指定された場合、列名がソース定義ファイルに対して検証されます。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
colrule.name={xpath_expression|"value"}
次に例を示します。
dyncolrule.name=@name statkeycolrule.name="keycol"
7.2.4.31 colrule.index
列索引を含むXPath式またはハードコードされた値を指定します。指定しない場合、列名を指定する必要があります。列名から列索引が解決されます。指定された場合、列索引がソース定義ファイルに対して検証されます。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。
colrule.index={xpath_expression|"value"}
次に例を示します。
dyncolrule.index=@index statkeycolrule.index=1
7.2.4.32 colrule.value
列値を含むXPath式またはハードコードされた値を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。ノードまたは属性が存在せず、XPath式が値を返さない場合、列値はnullとみなされます。nullと欠落値を区別するために(更新の場合)、isnull
およびismissing
プロパティを設定する必要があります。返される値は、ビフォア値の削除およびアフター値の更新/挿入に使用されます。
colrule.value={xpath_expression|"value"}
次に例を示します。
statkeycolrule.value=./text()
7.2.4.33 colrule.isnull
列値がnullかどうかの検出に使用されるXPath式を指定します。XPath式は、@att
、text()
などの値アクセッサで終わる必要があります。XPath式が値を返す場合、列値はnullです。これは、オプションのプロパティです。
colrule.isnull=xpath_expression
次に例を示します。
dyncolrule.isnull=@isnull
7.2.4.34 colrule.ismissing
列値が欠落しているかどうかの検出に使用されるXPath式を指定します。XPath式は、@att
、 text()
などの値アクセッサで終わる必要があります。XPath式が値を返す場合、列値は欠落しています。これは、オプションのプロパティです。
colrule.ismissing=xpath_expression
次に例を示します。
dyncolrule.ismissing=./missing
7.2.4.35 colrule.before.value
colrule
.value
をオーバーライドし、更新または削除に使用されるビフォア値の取得方法を明示的に指定します。この形式は、colrule
.value
と同じ形式です。これは、オプションのプロパティです。
次に例を示します。
dyncolrule.before.value=./beforevalue/text()
7.2.4.36 colrule.before.isnull
colrule
.isnull
をオーバーライドし、更新または削除用のビフォア値がnullかどうかの決定方法を明示的に指定します。この形式は、colrule
.isnull
と同じ形式です。これは、オプションのプロパティです。
次に例を示します。
dyncolrule.before.isnull=./beforevalue/@isnull
7.2.4.37 colrule.before.ismissing
colrule
.ismissing
をオーバーライドし、更新または削除用のビフォア値が欠落しているかどうかの決定方法を明示的に指定します。この形式は、colrule
.ismissing
の形式と同じです。これは、オプションのプロパティです。
次に例を示します。
dyncolrule.before.ismissing=./beforevalue/missing
7.2.4.38 colrule.after.value
colrule
.value
をオーバーライドし、更新または削除に使用されるアフター値の取得方法を明示的に指定します。この形式は、colrule
.value
と同じ形式です。これは、オプションのプロパティです。
次に例を示します。
dyncolrule.after.value=./aftervalue/text()
7.2.4.39 colrule.after.isnull
colrule
.isnull
をオーバーライドし、更新または削除用のアフター値がnullかどうかの決定方法を明示的に指定します。この形式は、colrule
.isnull
と同じ形式です。これは、オプションのプロパティです。
次に例を示します。
dyncolrule.after.isnull=./aftervalue/@isnull