次の表は、発行者レベルのパラメータとそのプロパティの概要を示します。
Table 4-44 発行者レベルのパラメータおよびプロパティ
1 トリガ付き発行モードでは必須です。2 これらのパラメータは相互排他的です。
発行パラメータは、大きく4つのサブカテゴリに分けられます。
「発行者を使用不可にしますか?」パラメータは、発行者チャネルが使用不可かどうかを指定します。使用不可にした場合、発行者チャネルはデータベースイベントを問い合わせません。ただし、その場合も、「購読者を使用不可にしますか?」パラメータとは異なり、発行者チャネルでデータベースクエリを発行して、代わりの発行アルゴリズムを容易にすることはできます。
このパラメータを論理値のTrueに設定した場合、発行者チャネルは使用不可です。このパラメータを論理値のFalseに設定した場合、発行者チャネルはアクティブです。
「ステートメントレベルのロックを使用不可にしますか?」パラメータは、各SQLステートメントを実行する前にデータベースリソースがこのチャネルで明示的にロックする必要があるかどうかを指定します。このパラメータは、「ステートメントレベルのロックを有効にしますか?」パラメータが論理値のTrueに設定されている場合のみアクティブです。
このパラメータを論理値のTrueに設定した場合、データベースリソースは明示的にロックされます。このパラメータを論理値のFalseに設定した場合、データベースリソースは明示的にはロックされません。
「発行モード」パラメータは、使用する発行アルゴリズムを指定します。
1 (トリガ付き)に設定した場合、発行者チャネルは、イベントログテーブルでイベントをポールします。2 (トリガなし)に設定した場合、発行者チャネルは、同期スキーマ内のすべてのテーブル/ビューで変更を探し、イベントを同期します。
次の表は、このパラメータのプロパティのリストです。
トリガ付き発行の場合、「将来のイベント処理を有効にしますか?」パラメータは、イベントログテーブル内の行が挿入順(record_id列)と年代順(event_time列)のどちらで並べられ処理されるかを指定します。
このパラメータを論理値のTrueに設定した場合、イベントログテーブルの行は、挿入順に発行されます。このパラメータを論理値のFalseに設定した場合、イベントログテーブルの行は、年代順に発行されます。
トリガなしの発行の場合、「将来のイベント処理を有効にしますか?」パラメータは、データベースのローカル時刻が各イベントと共に発行されるかどうかを指定します。この追加情報は、スケジュール指定されたイベントを強制的に再試行するために使用されます。これを機能させるには、イベントをいつ処理するかを指定する列が、この機能を使用する各論理データベースクラスに含まれ、発行者フィルタに通知のみの属性として配置されている必要があります。Section H.0, データベース記述子のDTDを参照してください。
データベースのローカル時刻は、各XDSイベント(追加、変更、削除など)の属性として発行されます。属性名は、jdbc:database-local-timeです。ここで、名前空間のプリフィックスjdbcは、urn:dirxml:jdbcにバインドされます。形式は、Java文字列表現のjava.sql.Timestamp: yyyy-mm-dd hh:mm:ss.fffffffffです。イベントをいつ処理するかを示す値は、「時間構文」パラメータの値に応じて、整数、標準文字列、またはJava文字列として発行できます。時間構文を参照してください。
発行構文にかかわらず、この値を解析してデータベースローカル時刻の値と比較できます。次の表は、時間構文と適切な解析メソッドのマッピングを示しています。
Table 4-48 時間構文と解析メソッドのマッピング
|
時間構文 |
解析メソッド |
|---|---|
|
整数 |
java.sql.Timestamp.valueOf(java.lang.String):java.sql.Timestamp |
|
標準文字列 |
com.novell.nds.dirxml.driver.jdbc.db.DSTime(java.lang.String, java.lang.String, java.lang.String, java.lang.String) |
|
Java文字列 |
java.sql.Timestamp.valueOf(java.lang.String):java.sql.Timestamp |
両方の時刻を同じタイムスタンプオブジェクト表現にした後、次のメソッドを使用して比較できます。
ポリシーの例については、Section H.0, データベース記述子のDTDを参照してください。
このパラメータを論理値のTrueに設定した場合、各イベントと共にローカルデータベース時刻が発行されます。このパラメータを論理値のFalseに指定した場合、この情報は省略されます。
次の表は、このパラメータのプロパティのリストです。
JDBC用ドライバは、4つのトリガ付き発行パラメータをどれでも使用できます。
「イベントログのテーブル名」パラメータは、発行イベントが保存されるイベントログテーブルの名前を指定します。
ここで指定する名前は、イベントログテーブルの定義に従う必要があります。
テーブル/ビュー名を使用する場合は、通常このテーブル名を明示的にスキーマ修飾する必要があります。スキーマ名を使用する場合は、このテーブル名は、そのスキーマ名で暗黙的にスキーマ修飾されます。このテーブルが暗黙的なスキーマ以外のスキーマにある場合は、スキーマ修飾する必要があります。
次の表は、このパラメータのプロパティのリストです。
Table 4-50 イベントログのテーブル名: プロパティ
|
プロパティ |
値 |
|---|---|
|
タグ名 |
log-table |
|
必須? |
×1 |
|
大文字と小文字を区別? |
区切りのない識別子での大文字と小文字の区別を参照してください。 |
|
サンプル値 |
eventlog |
|
デフォルト値 |
(なし) |
|
スキーマ依存 |
True |
1 このパラメータは、発行モードを1 (トリガ付き発行)に設定した場合は必須です。
「処理された行を削除しますか?」パラメータは、処理された行をイベントログテーブルから削除するかどうかを指定します。
このパラメータを論理値のTrueに設定した場合、処理された行は削除されます。このパラメータを論理値のFalseに設定した場合、処理された行のstatusフィールド値が更新されます。
処理された行がイベントログテーブルに残ることによって起こるパフォーマンスへの影響を緩和するために、定期的に行を履歴テーブルに移動することをお勧めします。このためには、次のいずれかを実行します。
次の表は、このパラメータのプロパティのリストです。
Table 4-51 処理された行を削除しますか?: プロパティ
|
プロパティ |
値 |
|---|---|
|
タグ名 |
delete-from-log |
|
必須? |
× |
|
デフォルト値 |
0 (いいえ) |
|
有効な値 |
1、yes、true (はい) 0、no、false (いいえ) |
|
スキーマ依存 |
True |
NOTE:このパラメータを論理値のFalseに設定した場合、処理済みの行を定期的にイベントログテーブルから削除しない限り、発行のパフォーマンスが低下します。
「ループバックを許可しますか?」パラメータは、ドライバのデータベースユーザアカウントによるイベントを発行するかどうかを指定します。
このパラメータを論理値のTrueに設定した場合、ループバックイベントが発行されます。このパラメータを論理値のFalseに設定した場合、ループバックイベントは無視されます。
次の表は、このパラメータのプロパティのリストです。
Table 4-52 ループバックを許可しますか?: プロパティ
|
プロパティ |
値 |
|---|---|
|
タグ名 |
allow-loopback |
|
必須? |
× |
|
デフォルト値 |
0 (いいえ) |
|
有効な値 |
1、yes、true (はい) 0、no、false (いいえ) |
|
スキーマ依存 |
True |
NOTE:このパラメータを論理値のTrueに設定した場合、外部からのイベントが発行されることがあるので、パフォーマンスが低下する可能性があります。
JDBC用のドライバは、1つのトリガなし発行パラメータを使用できます。ただし、状態ディレクトリパラメータも、トリガなし発行に影響します。
「起動オプション」パラメータは、トリガなし発行の開始時に何を行うかを指定します。
Table 4-53 起動オプション: 設定および結果
|
設定 |
結果 |
|---|---|
|
1 |
すべてのオブジェクトが変更されたと見なされ、再発行されます。 |
|
2 |
過去および現在の変更は無視されます。 |
|
3 |
過去および現在のすべての変更が発行されます。 |
次の表は、このパラメータのプロパティのリストです。
「ポーリング間隔(秒)」パラメータは、ポーリングサイクルの間にアクティブでない状態で経過する秒数を指定します。
次の表は、このパラメータのプロパティのリストです。
Table 4-55 ポーリング間隔(秒): プロパティ
|
プロパティ |
値 |
|---|---|
|
タグ名 |
polling-interval |
|
必須? |
× |
|
デフォルト値 |
10 (秒) |
|
有効な値 |
1~604800 (1週間) |
|
スキーマ依存 |
True |
NOTE:この値は10秒以上に設定することをお勧めします。
「Publication Time of Day (発行時刻)」パラメータは、各日の何時に発行を開始するかを指定します。時刻は、サーバのローカル時刻(ドライバが実行されているサーバでの時刻)を意味すると解釈されます。
次の表は、このパラメータのプロパティのリストです。
Table 4-56 Publication Time of Day (発行時刻): プロパティ
|
プロパティ |
値 |
|---|---|
|
タグ名 |
time-of-day |
|
必須? |
× |
|
サンプル値 |
13:00:00 (午後1時) |
|
デフォルト値 |
(なし) |
|
有効な値 |
hh:mm:ss (h =時、m =分、s =秒) |
|
スキーマ依存 |
True |
NOTE:このパラメータは、「ポーリング間隔(秒)」パラメータを上書きします。ポーリング間隔(秒)を参照してください。
「ポストポーリングステートメント」パラメータは、各アクティブポーリングサイクルの最後に実行されるSQLステートメントを指定します。アクティブポーリングサイクルは、何らかの発行アクティビティが発生するサイクルです。
このパラメータは、主に、発行アクティビティ後のイベントログテーブルのクリーンアップを可能にするために使用されます。
通常は、これらのステートメントで参照されるデータベースオブジェクト(テーブル、ストアドプロシージャ、関数など)を明示的にスキーマ修飾する必要があります。
次の表は、このパラメータのプロパティのリストです。
Table 4-57 ポストポーリングステートメント: プロパティ
|
プロパティ |
値 |
|---|---|
|
タグ名 |
post-poll-stmt |
|
必須? |
× |
|
大文字と小文字を区別? |
区切りのない識別子での大文字と小文字の区別を参照してください。 |
|
区切り文字 |
セミコロン |
|
サンプル値 |
DELETE FROM direct.direct_process |
|
デフォルト値 |
(なし) |
|
有効な値 |
(有効なSQLステートメントの任意のセット) |
|
スキーマ依存 |
True |
「バッチサイズ」パラメータは、1つの発行ドキュメントで送信されるイベント数を指定します。
基本的に、バッチが大きいほどパフォーマンスが向上します。
コミットにもコストがかかる場合があります。
このパラメータは、上限を定義します。発行者チャネルは、指定した値を一定の条件下で上書きする可能性があります。Javaヒープのオーバーフローの可能性を最小化し、ドライバのシャットダウン時に発行者スレッド終了が遅延するのを短縮するために、上限として128が選択されています。
次の表は、このパラメータのプロパティのリストです。
「ハートビート間隔(分)」パラメータは、発行者チャネルが非アクティブになってからハートビートドキュメントを送信するまでに待機する時間(分)を指定します。実際には、指定した分数よりも長い時間が経過することがあります。つまり、このパラメータは下限を定義します。発行者チャネルは、それが非アクティブ状態になってから指定した時間(分)が経過した場合にだけ、ハートビートドキュメントを送信します。送信される発行ドキュメントは、実質上、ハートビートドキュメントです。
次の表は、このパラメータのプロパティのリストです。