プライマリ・コンテンツへ移動
Oracle® Fusion Middleware Oracle GoldenGate for Big Dataの管理
リリース12c (12.3.0.1)
E85689-01
目次へ移動
目次

前
次

6 メッセージ取得プロパティ

この章の内容は次のとおりです。

トピック:

6.1 ロギングおよび接続のプロパティ

次のプロパティは、JMSへの接続、ログ・ファイル名、エラー処理およびメッセージ出力を制御します。

6.1.1 ロギング・プロパティ

ロギングは次のプロパティによって制御されます。

6.1.1.1 gg.log

使用されるロギングのタイプを指定します。デフォルトの実装は、JDKオプションです。これは、java.util.logging (JUL)という名前の組込みJavaロギングです。その他のロギング・オプションは、log4jまたはlogbackです。構文は次のとおりです。

gg.log={JDK|log4j|logback}

たとえば、ロギングのタイプをlog4jに設定するには、次のようにします。

gg.log=log4j 

ログ・ファイルは、インストールのレポート・サブディレクトリに作成されます。デフォルトのログ・ファイル名には、関連付けられているExtractのグループ名が含まれ、ファイル拡張子はlogです。

6.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

6.1.1.3 gg.log.file

ログ・ファイルのパスを指定します。構文は次のとおりです。

gg.log.file=path_to_file

ここで、path_to_fileは完全に定義されたログ・ファイルの場所です。これによってログの名前の変更が可能になりますが、複数のReplicatがある場合、誤って他のログを上書きすることがないようReplicat名を含める必要があります。

6.1.1.4 gg.log.classpath

ロギングの実装に使用されるJARのクラスパスを指定します。

gg.log.classpath=path_to_jars

6.1.2 JMS接続プロパティ

JMS接続プロパティでは、JMS統合用のJVMの起動方法など、接続を設定します。

6.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 (非常に詳細なロギング)のいずれかを使用することもできます。

6.1.2.2 jms.report.output

JMSレポートを書き込む場所を指定します。構文は次のとおりです。

jms.report.output={report|log|both}

説明:

  • reportは、JMSレポートをOracle GoldenGateレポート・ファイルに送信します。これはデフォルトです。

  • logは、Javaログ・ファイル(構成されている場合)に書き込みます。

  • bothは、両方の場所に送信します。

6.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

6.1.2.4 jms.report.records

レポート生成の頻度をレコード数に基づいて指定します。構文は次のとおりです。

jms.report.records=number

次の例では、1000レコードごとにレポートを書き込みます。

jms.report.records=1000

6.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メッセージ・ヘッダー(JMSMessageIDJMSCorrelationIDJMSTimestampなど)を含めるよう指定します。

  • custom_java_class - IDとして使用される文字列を作成するカスタムJavaクラスを指定します。

次に例を示します。

jms.id=time
jms.id=JMSMessageID

返されるIDは、一意、増分かつ固定長です。数字が重複する場合、重複はスキップされます。メッセージIDの長さを変更すると、Extractプロセスが異常終了します。

6.1.2.6 jms.destination

JNDIを使用して検索されるキュー名またはトピック名を指定します。

jms.destination=jndi_name

次に例を示します。

jms.destination=sampleQ

6.1.2.7 jms.connectionFactory

JNDIを使用して検索される接続ファクトリ名を指定します。

jms.connectionFactory=jndi_name

次に例を示します。

jms.connectionFactory=ConnectionFactory

6.1.2.8 jms.user、jms.password

JMSプロバイダで指定される、JMS接続のユーザー名とパスワードを設定します。

jms.user=user_name
jms.password=password

これは、JNDIセキュリティに使用されません。JNDI認証を設定するには、JNDI java.naming.securityプロパティを参照してください。

次に例を示します。

jms.user=myuser
jms.password=mypasswd

6.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

6.2 パーサー・プロパティ

プロパティで、各タイプのパーサー(固定、区切り、XML)のメッセージの形式および翻訳ルールを指定します。parser.typeプロパティを設定して、使用するパーサーを指定します。残りのプロパティは、パーサー固有です。

6.2.1 パーサーのタイプの設定

次のプロパティはパーサー・タイプを設定します。

6.2.1.1 parser.type

使用するパーサーを指定します。

parser.type={fixed|delim|xml}

説明:

  • fixedは、固定幅パーサーを起動します。

  • delimは、区切りパーサーを起動します。

  • xmlは、XMLパーサーを起動します。

次に例を示します。

parser.type=delim

6.2.2 固定パーサー・プロパティ

固定パーサーには次のプロパティが必要です。

6.2.2.1 fixed.schematype

メッセージ取得のメタデータとして使用されるファイルのタイプを指定します。有効なオプションは、sourcedefsおよびcopybookの2つです。

fixed.schematype={sourcedefs|copybook}

次に例を示します。

fixed.schematype=copybook

このプロパティの値によって、受信データを正常に解析するために設定する必要がある他のプロパティが決まります。

6.2.2.2 fixed.sourcedefs

fixed.schematype=sourcedefsの場合、このプロパティで、使用されるソース定義ファイルの場所を指定します。

fixed.sourcedefs=file_location

次に例を示します。

fixed.sourcedefs=dirdef/hrdemo.def

6.2.2.3 fixed.copybook

fixed.schematype=copybookの場合、このプロパティで、メッセージ取得プロセスで使用されるコピーブック・ファイルの場所を指定します。

fixed.copybook=file_location

次に例を示します。

fixed.copybook=test_copy_book.cpy

6.2.2.4 fixed.header

データ・ブロック構造の決定に使用されるヘッダー情報を含むsourcedefsエントリまたはコピーブック・レコードの名前を指定します。

fixed.header=record_name

次に例を示します。

fixed.header=HEADER

6.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

6.2.2.6 fixed.timestamp

タイムスタンプを含むフィールドの名前、JMSプロパティまたはシステム値を指定します。

fixed.timestamp={field_name|$jms_property|*ts}

次に例を示します。

fixed.timestamp=TIMESTAMP
fixed.timestamp=$JMSTimeStamp
fixed.timestamp=*ts

6.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

6.2.2.8 fixed.txid

トランザクションを一意に識別するために使用されるtxidを含むフィールドの名前、JMSプロパティまたはシステム値を指定します。この値は、トランザクションごとに増分されます。

fixed.txid={field_name|$jms_property|*txid}

ほとんどの場合、システム値*txidを使用することが推奨されます。

次に例を示します。

fixed.txid=$JMSTxId
fixed.txid=*txid

6.2.2.9 fixed.txowner

トランザクションに関連付けられているユーザー名を含むフィールドの名前、JMSプロパティまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。これは、オプションのプロパティです。

fixed.txowner={field_name|$jms_property|"value"}

次に例を示します。

fixed.txowner=$MessageOwner
fixed.txowner="jsmith"

6.2.2.10 fixed.txname

トランザクションに関連付けられている任意の名前を含むフィールドの名前、JMSプロパティまたは静的値を指定します。これは、オプションのプロパティです。

fixed.txname={field_name|$jms_property|"value"}

次に例を示します。

fixed.txname="fixedtx"

6.2.2.11 fixed.optype

操作タイプを含むフィールドの名前またはJMSプロパティを指定します。これは、後述の項で指定されるfixed.optype値に対して検証されます。

fixed.header.optype={field_name|$jms_property}

次に例を示します。

fixed.header.optype=FUNCTION

6.2.2.12 fixed.optype.insertval

この値は、挿入操作を識別します。デフォルトは、Iです。

fixed.optype.insertval={value|\xhex_value}

次に例を示します。

fixed.optype.insertval=A

6.2.2.13 fixed.optype.updateval

この値は、更新操作を識別します。デフォルトは、Uです。

fixed.optype.updateval={value|\xhex_value}

次に例を示します。

fixed.optype.updateval=M

6.2.2.14 fixed.optype.deleteval

この値は削除操作を識別します。デフォルトは、Dです。

fixed.optype.deleteval={value|\xhex_value}

次に例を示します。

fixed.optype.deleteval=R

6.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

6.2.2.16 fixed.schema

SCHEMA.TABLE表名を生成する際のスキーマの静的な名前を指定します。

fixed.schema="value"

次に例を示します。

fixed.schema="OGG"

6.2.2.17 fixed.txind

トランザクション・インジケータ値に対して検証される、トランザクション・インジケータを含むフィールドの名前またはJMSプロパティを指定します。これが定義されていない場合、1つのメッセージ内のすべての操作がトランザクション全体に出現するとみなされます。定義されている場合、これによってトランザクションの先頭、中間および末尾が決まります。このように定義されたトランザクションは複数メッセージにわたることができます。これは、オプションのプロパティです。

fixed.txind={field_name|$jms_property}

次に例を示します。

fixed.txind=$TX_IND

6.2.2.18 fixed.txind.beginval

この値は、操作をトランザクションの先頭として識別します。デフォルトは、Bです。

fixed.txind.beginval={value|\xhex_value}

次に例を示します。

fixed.txind.beginval=0

6.2.2.19 fixed.txind.middleval

この値は、操作をトランザクションの中間として識別します。デフォルトは、Mです。

fixed.txind.middleval={value|\xhex_value}

次に例を示します。

fixed.txind.middleval=1

6.2.2.20 fixed.txind.endval

この値は、操作をトランザクションの末尾として識別します。デフォルトは、Eです。

fixed.txind.endval={value|\xhex_value}

次に例を示します。

fixed.txind.endval=2

6.2.2.21 fixed.txind.wholeval

この値は、操作をトランザクション全体として識別します。デフォルトは、Wです。

fixed.txind.wholeval={value|\xhex_value}

次に例を示します。

fixed.txind.wholeval=3

6.2.3 区切りパーサー・プロパティ

特に記載のないかぎり、区切りパーサーには次のプロパティが必要です。

6.2.3.1 delim.sourcedefs

使用するソース定義ファイルの場所を指定します。

delim.sourcedefs=file_location

次に例を示します。

delim.sourcedefs=dirdef/hrdemo.def

6.2.3.2 delim.header

データの前に配置される値のリストを指定し、各々に名前を割り当てます。

delim.header=name[,name2][. . .]

名前は一意である必要があります。これらは、他のdelimプロパティまたはヘッダー・フィールドが使用可能な場所で参照されます。

次に例を示します。

delim.header=optype, tablename, ts
delim.timestamp=ts

6.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

6.2.3.4 delim.timestamp

タイムスタンプを含むJMSプロパティの名前、ヘッダー・フィールドまたはシステム値を指定します。

delim.timestamp={field_name|$jms_property|*ts}

次に例を示します。

delim.timestamp=TIMESTAMP
delim.timestamp=$JMSTimeStamp
delim.timestamp=*ts

6.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

6.2.3.6 delim.txid

トランザクションを一意に識別するために使用されるtxidを含むJMSプロパティの名前、ヘッダー・フィールドまたはシステム値を指定します。この値は、トランザクションごとに増分されます。

delim.txid={field_name|$jms_property|*txid}

ほとんどの場合、システム値*txidを使用することが推奨されます。

次に例を示します。

delim.txid=$JMSTxId
delim.txid=*txid

6.2.3.7 delim.txowner

トランザクションに関連付けられている任意のユーザー名を含むJMSプロパティの名前、ヘッダー・フィールドまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。これは、オプションのプロパティです。

delim.txowner={field_name|$jms_property|"value"}

次に例を示します。

delim.txowner=$MessageOwner
delim.txowner="jsmith"

6.2.3.8 delim.txname

トランザクションに関連付けられている任意の名前を含むJMSプロパティの名前、ヘッダー・フィールドまたは静的値を指定します。これは、オプションのプロパティです。

delim.txname={field_name|$jms_property|"value"}

次に例を示します。

delim.txname="fixedtx"

6.2.3.9 delim.optype

操作タイプを含むJMSプロパティの名前またはヘッダー・フィールドを指定します。これは、delim.optype.insertval、delim.optype.updatevalおよびdelim.optype.deletevalの値と比較されて、操作が決まります。

delim.optype={field_name|$jms_property}

次に例を示します。

delim.optype=optype

6.2.3.10 delim.optype.insertval

この値は、挿入操作を識別します。デフォルトは、Iです。

delim.optype.insertval={value|\xhex_value}

次に例を示します。

delim.optype.insertval=A

6.2.3.11 delim.optype.updateval

この値は、更新操作を識別します。デフォルトは、Uです。

delim.optype.updateval={value|\xhex_value}

次に例を示します。

delim.optype.updateval=M

6.2.3.12 delim.optype.deleteval

この値は、削除操作を識別します。デフォルトは、Dです。

delim.optype.deleteval={value|\xhex_value}

次に例を示します。

delim.optype.deleteval=R

6.2.3.13 delim.schemaandtable

SCHEMA.TABLE形式でスキーマおよび表の名前を含むJMSプロパティの名前またはヘッダー・フィールドを指定します。

delim.schemaandtable={field_name|$jms_property}

次に例を示します。

delim.schemaandtable=$FullTableName

6.2.3.14 delim.schema

スキーマ名を含むJMSプロパティの名前、ヘッダー・フィールドまたはハードコードされた値を指定します。

delim.schema={field_name|$jms_property|"value"}

次に例を示します。

delim.schema="OGG"

6.2.3.15 delim.table

表名を含むJMSプロパティまたはヘッダー・フィールドの名前を指定します。

delim.table={field_name|$jms_property}

次に例を示します。

delim.table=TABLE_NAME

6.2.3.16 delim.txind

beginvalmiddlevalendvalまたはwholevalに対して検証される、トランザクション・インジケータを含むJMSプロパティまたはヘッダー・フィールドの名前を指定します。このプロパティが設定されていない場合、1つのメッセージ内のすべての操作が1つのトランザクション内にあるとみなされます。設定されている場合、これによってトランザクションの先頭、中間および末尾が決まります。このように定義されたトランザクションは複数メッセージにわたることができます。これは、オプションのプロパティです。

delim.txind={field_name|$jms_property}

次に例を示します。

delim.txind=txind

6.2.3.17 delim.txind.beginval

操作をトランザクションの先頭として識別する値。デフォルトは、Bです。

delim.txind.beginval={value|\xhex_value}

次に例を示します。

delim.txind.beginval=0

6.2.3.18 delim.txind.middleval

操作をトランザクションの中間として識別する値。デフォルトは、Mです。

delim.txind.middleval={value|\xhex_value}

次に例を示します。

delim.txind.middleval=1

6.2.3.19 delim.txind.endval

操作をトランザクションの末尾として識別する値。デフォルトは、Eです。

delim.txind.endval={value|\xhex_value}

次に例を示します。

delim.txind.endval=2

6.2.3.20 delim.txind.wholeval

操作をトランザクション全体として識別する値。デフォルトは、Wです。

delim.txind.wholeval={value|\xhex_value}

次に例を示します。

delim.txind.wholeval=3

6.2.3.21 delim.fielddelim

データ内のフィールド(列)の区切りに使用されるデリミタ値を指定します。この値は、文字または16進値を使用して定義されます。

delim.fielddelim={value|\xhex_value}

次に例を示します。

delim.fielddelim=,
delim.fielddelim=\xc7

6.2.3.22 delim.linedelim

データ内の行(レコード)の区切りに使用されるデリミタ値を指定します。この値は、文字または16進値を使用して定義されます。

delim.linedelim={value|\xhex_value}

次に例を示します。

delim.linedelim=||
delim.linedelim=\x0a

6.2.3.23 delim.quote

引用符付きのデータの識別に使用される値を指定します。この値は、文字または16進値を使用して定義されます。

delim.quote={value|\xhex_value}

次に例を示します。

delim.quote="

6.2.3.24 delim.nullindicator

NULLデータの識別に使用される値を指定します。この値は、文字または16進値を使用して定義されます。

delim.nullindicator={value|\xhex_value}

次に例を示します。

delim.nullindicator=NULL

6.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

6.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.\

6.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."

6.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

6.2.3.29 delim.hasbefores

データ内にビフォア値が存在するかどうかを指定します。

delim.hasbefores={true|false}

デフォルトは、falseです。delim.hasbeforesがtrueに設定されている場合、パーサーは、すべてのレコードについて列のビフォア値とアフター値があると想定します。ビフォア値は更新と削除に使用され、アフター値は更新と挿入に使用されます。afterfirstプロパティは、ビフォア・イメージがアフター・イメージの前か後かを指定します。delim.hasbeforesがfalseの場合、ビフォア値は想定されません。

次に例を示します。

delim.hasbefores=true

6.2.3.30 delim.hasnames

データ内に列名が存在するかどうかを指定します。

delim.hasnames={true|false}

デフォルトは、falseです。trueの場合、パーサーはすべてのレコードに対して列名を検出すると想定します。パーサーは、想定される列名に対して列名を検証します。falseの場合、列名は想定されません。

次に例を示します。

delim.hasnames=true

6.2.3.31 delim.afterfirst

アフター値がビフォア値の前に配置されているか、後に配置されているかを指定します。

delim.afterfirst={true|false}

デフォルトは、falseです。trueの場合、パーサーは、アフター値をビフォア値の前に検出すると想定します。falseの場合、アフター値はビフォア値の前にあります。

次に例を示します。

delim.afterfirst=true

6.2.3.32 delim.isgrouped

すべての列の列名、ビフォア・イメージおよびアフター・イメージがグループ化されるか、列ごとに順に配置されるかを指定します。

delim.isgrouped={true|false}

デフォルトは、falseです。trueの場合、パーサーは、列名のグループ(hasnamesがtrueの場合)、次にビフォア値のグループ(hasbeforesの場合)、その次にアフター値のグループがある(afterfirst設定によってはビフォア値とアフター値の順序が逆になる)と想定します。falseの場合、パーサーは、列名(hasnamesの場合)、ビフォア値(hasbeforesの場合)およびアフター値が列ごとにあると想定します。

次に例を示します。

delim.isgrouped=true

6.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

6.2.4 XMLパーサー・プロパティ

次のプロパティがXMLパーサーによって使用されます。

6.2.4.1 xml.sourcedefs

ソース定義ファイルの場所を指定します。

xml.sourcedefs=file_location

次に例を示します。

xml.sourcedefs=dirdef/hrdemo.def

6.2.4.2 xml.rules

メッセージの解析とトランザクション、操作および列の変換のXMLルールのリストを指定します。

xml.rules=xml_rule_name[, . . .]

指定されたXMLルールは、リストされた順に処理されます。特定のXMLドキュメントに対応するすべてのルールによって、トランザクション、操作および列を作成できます。指定されるXMLルールは、トランザクション・タイプまたは操作タイプのルールである必要があります。

次に例を示します。

xml.rules=dyntxrule, statoprule

6.2.4.3 rulename.type

XMLルールのタイプを指定します。

rulename.type={tx|op|col}

説明:

  • txは、トランザクション・ルールを示します。

  • opは、操作ルールを示します。

  • colは、列ルールを示します。

次に例を示します。

dyntxrule.type=tx
statoprule.type=op

6.2.4.4 rulename.match

ルールが特定のドキュメントに対してアクティブ化されるかどうかの決定に使用されるXPath式を指定します。

rulename.match=xpath_expression

XPath式がドキュメントからノードを返す場合、ルールが対応付けられ、後続の処理が行われます。ノードを返さない場合、そのドキュメントに対してルールは無視されます。

次の例では、ドキュメントにルート要素Transactionがある場合、dyntxruleがアクティブ化されます。

dyntxrule.match=/Transaction

statoprulestattxtuleのサブルールです。次の例では、親ルールの一致ノードに子要素NewMyTableEntryがある場合、statopruleがアクティブ化されます。

statoprule.match=./NewMyTableEntry

6.2.4.5 rulename.subrules

親ルールが一致によってアクティブ化された場合、一致をチェックするルール名のリストを指定します。

rulename.subrules=xml_rule_name[, . . .]

指定されたXMLルールは、リストされた順に処理されます。すべての一致ルールで、トランザクション、操作および列が作成される場合があります。

有効なサブルールは、親タイプによって決まります。トランザクション・ルールは、操作サブルールのみ持つことができます。操作ルールは、操作または列サブルールを持つことができます。列ルールは、サブルールを持つことはできません。

次に例を示します。

dyntxrule.subrules=dynoprule
statoprule.subrules=statkeycolrule, statcol1rule

6.2.4.6 txrule.timestamp

1) 指定されたXPath式またはJMSプロパティに含まれたトランザクション・コミット・タイムスタンプの使用、または2) 現在のシステム時間の使用をアダプタに指定することで、トランザクションのタイムスタンプを制御します。これは、オプションのプロパティです。

txrule.timestamp={xpath_expression|$jms_property|*ts}

トランザクションのタイムスタンプは操作レベルでオーバーライドすることも、操作レベルでのみ存在することもできます。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

次に例を示します。

dyntxrule.timestamp=@ts

6.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

6.2.4.8 txrule.seqid

特定のトランザクションのseqidを指定します。これは、各メッセージに複数のトランザクションがある場合に使用できます。トランザクションのseqidを含むXPath式、JMSプロパティまたはシステム値を決定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

txrule.seqid={xpath_expression|$jms_property|*seqid}

次に例を示します。

dyntxrule.seqid=@seqid

6.2.4.9 txrule.txid

トランザクションを一意に識別するために使用されるtxidを含むXPath式、JMSプロパティまたはシステム値を指定します。この値は、トランザクションごとに増分されます。

txrule.txid={xpath_expression|$jms_property|*txid}

ほとんどの場合、システム値*txidを使用することが推奨されます。

次に例を示します。

dyntxrule.txid=$JMSTxId
dyntxrule.txid=*txid

6.2.4.10 txrule.txowner

トランザクションに関連付けられている任意のユーザー名を含むXPath式、JMSプロパティまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。

txrule.txowner={xpath_expression|$jms_property|"value"}

次に例を示します。

dyntxrule.txowner=$MessageOwner
dyntxrule.txowner="jsmith"

6.2.4.11 txrule.txname

トランザクションに関連付けられている任意の名前を含むXPath式、JMSプロパティまたは静的値を指定します。これは、オプションのプロパティです。

txrule.txname={xpath_expression|$jms_property|"value"}

次に例を示します。

dyntxrule.txname="fixedtx"

6.2.4.12 oprule.timestamp

1) 指定されたXPath式またはJMSプロパティに含まれたトランザクション・コミット・タイムスタンプの使用、または2) 現在のシステム時間の使用をアダプタに指定することで、操作のタイムスタンプを制御します。これは、オプションのプロパティです。

oprule.timestamp={xpath_expression|$jms_property|*ts}

操作のタイムスタンプは、トランザクション・レベルのタイムスタンプをオーバーライドします。

XPath式は、@atttext()などの値アクセッサで終わる必要があります。

次に例を示します。

statoprule.timestamp=./CreateTime/text()

6.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

6.2.4.14 oprule.seqid

特定の操作のseqidを指定します。操作のseqidを含むXPath式、JMSプロパティまたはシステム値を使用します。これは、親トランザクション・ルールで定義されたseqidをオーバーライドします。親トランザクション・ルールがない場合、必須です。

XPath式は、@atttext()などの値アクセッサで終わる必要があります。

oprule.seqid={xpath_expression|$jms_property|*seqid}

次に例を示します。

dynoprule.seqid=@seqid

6.2.4.15 oprule.txid

トランザクションを一意に識別するために使用されるtxidを含むXPath式、JMSプロパティまたはシステム値を指定します。これは、親トランザクション・ルールで定義されたtxidをオーバーライドし、親トランザクション・ルールがない場合、必須です。この値は、トランザクションごとに増分されます。

oprule.txid={xpath_expression|$jms_property|*txid}

ほとんどの場合、システム値*txidを使用することが推奨されます。

次に例を示します。

dynoprule.txid=$JMSTxId
dynoprule.txid=*txid

6.2.4.16 oprule.txowner

トランザクションに関連付けられている任意のユーザー名を含むXPath式、JMSプロパティまたは静的値を指定します。この値は、特定のトランザクションを処理から除外する場合に使用できます。これは、オプションのプロパティです。

oprule.txowner={xpath_expression|$jms_property|"value"}

次に例を示します。

dynoprule.txowner=$MessageOwner
dynoprule.txowner="jsmith"

6.2.4.17 oprule.txname

トランザクションに関連付けられている任意の名前を含むXPath式、JMSプロパティまたは静的値を指定します。これは、オプションのプロパティです。

oprule.txname={xpath_expression|$jms_property|"value"}

次に例を示します。

dynoprule.txname="fixedtx"

6.2.4.18 oprule.schemandtable

SCHEMA.TABLE形式でスキーマおよび表の名前を含むXPath式、JMSプロパティまたはハードコードされた値を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。値を検証して表がソース定義に存在するかどうかが確認されます。

oprule.schemaandtable={xpath_expression|$jms_property|"value"}

次に例を示します。

statoprule.schemaandtable="MY.TABLE"

6.2.4.19 oprule.schema

スキーマ名を含むXPath式、JMSプロパティまたはハードコードされた値を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

oprule.schema={xpath_expression|$jms_property|"value"}

次に例を示します。

statoprule.schema=@schema

6.2.4.20 oprule.table

表名を含むXPath式、JMSプロパティまたはハードコードされた値を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

oprule.table={xpath_expression|$jms_property|"value"}

次に例を示します。

statoprule.table=$TableName

6.2.4.21 oprule.optype

optype insertvalについて評価されるoptypeを含むXPath式、JMSプロパティまたはリテラル値を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

oprule.optype={xpath_expression|$jms_property|"value"}

次に例を示します。

dynoprule.optype=@type
statoprule.optype="I"

6.2.4.22 oprule.optype.insertval

挿入操作を識別する値を指定します。デフォルトは、Iです。

oprule.optype.insertval={value|\xhex_value}

次に例を示します。

dynoprule.optype.insertval=A

6.2.4.23 oprule.optype.updateval

更新操作を識別する値を指定します。デフォルトは、Uです。

oprule.optype.updateval={value|\xhex_value}

次に例を示します。

dynoprule.optype.updateval=M

6.2.4.24 oprule.optype.deleteval

削除操作を識別する値を指定します。デフォルトは、Dです。

oprule.optype.deleteval={value|\xhex_value}

次に例を示します。

dynoprule.optype.deleteval=R

6.2.4.25 oprule.txind

beginvalまたはトランザクション内の位置を識別する他の値に対して検証されるトランザクション・インジケータを含むXPath式またはJMSプロパティを指定します。このプロパティが定義されていない場合、1つのメッセージ内のすべての操作がトランザクション全体に出現するとみなされます。トランザクションの先頭、中間および末尾を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。このように定義されたトランザクションは複数メッセージにわたることができます。これは、オプションのプロパティです。

oprule.txind={xpath_expression|$jms_property}

次に例を示します。

dynoprule.txind=@txind

6.2.4.26 oprule.txind.beginval

操作をトランザクションの先頭として識別する値を指定します。デフォルトは、Bです。

oprule.txind.beginval={value|\xhex_value}

次に例を示します。

dynoprule.txind.beginval=0

6.2.4.27 oprule.txind.middleval

操作をトランザクションの中間として識別する値を指定します。デフォルトは、Mです。

oprule.txind.middleval={value|\xhex_value}

次に例を示します。

dynoprule.txind.middleval=1

6.2.4.28 oprule.txind.endval

操作をトランザクションの末尾として識別する値を指定します。デフォルトは、Eです。

oprule.txind.endval={value|\xhex_value}

次に例を示します。

dynoprule.txind.endval=2

6.2.4.29 oprule.txind.wholeval

操作をトランザクション全体として識別する値を指定します。デフォルトは、Wです。

oprule.txind.wholeval={value|\xhex_value}

次に例を示します。

dynoprule.txind.wholeval=3

6.2.4.30 colrule.name

列名を含むXPath式またはハードコードされた値を指定します。指定しない場合、列索引を指定する必要があります。列索引から列名が解決されます。指定された場合、列名がソース定義ファイルに対して検証されます。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

colrule.name={xpath_expression|"value"}

次に例を示します。

dyncolrule.name=@name
statkeycolrule.name="keycol"

6.2.4.31 colrule.index

列索引を含むXPath式またはハードコードされた値を指定します。指定しない場合、列名を指定する必要があります。列名から列索引が解決されます。指定された場合、列索引がソース定義ファイルに対して検証されます。XPath式は、@atttext()などの値アクセッサで終わる必要があります。

colrule.index={xpath_expression|"value"}

次に例を示します。

dyncolrule.index=@index
statkeycolrule.index=1

6.2.4.32 colrule.value

列値を含むXPath式またはハードコードされた値を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。ノードまたは属性が存在せず、XPath式が値を返さない場合、列値はnullとみなされます。nullと欠落値を区別するために(更新の場合)、isnullおよびismissingプロパティを設定する必要があります。返される値は、ビフォア値の削除およびアフター値の更新/挿入に使用されます。

colrule.value={xpath_expression|"value"}

次に例を示します。

statkeycolrule.value=./text()

6.2.4.33 colrule.isnull

列値がnullかどうかの検出に使用されるXPath式を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。XPath式が値を返す場合、列値はnullです。これは、オプションのプロパティです。

colrule.isnull=xpath_expression

次に例を示します。

dyncolrule.isnull=@isnull

6.2.4.34 colrule.ismissing

列値が欠落しているかどうかの検出に使用されるXPath式を指定します。XPath式は、@atttext()などの値アクセッサで終わる必要があります。XPath式が値を返す場合、列値は欠落しています。これは、オプションのプロパティです。

colrule.ismissing=xpath_expression

次に例を示します。

dyncolrule.ismissing=./missing

6.2.4.35 colrule.before.value

colrule.valueをオーバーライドし、更新または削除に使用されるビフォア値の取得方法を明示的に指定します。この形式は、colrule.valueと同じ形式です。これは、オプションのプロパティです。

次に例を示します。

dyncolrule.before.value=./beforevalue/text()

6.2.4.36 colrule.before.isnull

colrule.isnullをオーバーライドし、更新または削除用のビフォア値がnullかどうかの決定方法を明示的に指定します。この形式は、colrule.isnullと同じ形式です。これは、オプションのプロパティです。

次に例を示します。

dyncolrule.before.isnull=./beforevalue/@isnull

6.2.4.37 colrule.before.ismissing

colrule.ismissingをオーバーライドし、更新または削除用のビフォア値が欠落しているかどうかの決定方法を明示的に指定します。この形式は、colrule.ismissingの形式と同じです。これは、オプションのプロパティです。

次に例を示します。

dyncolrule.before.ismissing=./beforevalue/missing

6.2.4.38 colrule.after.value

colrule.valueをオーバーライドし、更新または削除に使用されるアフター値の取得方法を明示的に指定します。この形式は、colrule.valueと同じ形式です。これは、オプションのプロパティです。

次に例を示します。

dyncolrule.after.value=./aftervalue/text()

6.2.4.39 colrule.after.isnull

colrule.isnullをオーバーライドし、更新または削除用のアフター値がnullかどうかの決定方法を明示的に指定します。この形式は、colrule.isnullと同じ形式です。これは、オプションのプロパティです。

次に例を示します。

dyncolrule.after.isnull=./aftervalue/@isnull

6.2.4.40 colrule.after.ismissing

colrule.ismissingをオーバーライドし、更新または削除用のアフター値が欠落しているかどうかの決定方法を明示的に指定します。この形式は、colrule.ismissingの形式と同じです。これは、オプションのプロパティです。

次に例を示します。

dyncolrule.after.ismissing=./aftervalue/missing