下表概述發行者層級參數及其內容:
Table 4-44 發行者層級參數和內容
1已觸發發行模式的必要項目。 2這些參數互斥。
發行參數分為四個主要子類別:
「停用發行者?」參數可指定是否停用「發行者」通道。 停用時,「發行者」通道不會查詢資料庫事件。 與停用訂閱者?參數不同,您仍然可以在「發行者」通道上發出資料庫查詢,以促進不同的發行演算法進行。
此參數設為布林值 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.sql.Timestamp 的 Java 字串表示: 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 |
兩種時間值都是以一般 Timstamp 物件表示時,可以使用下列方法比較它們:
Section H.0, 資料庫描述元 DTD 中提供範例規則。
此參數設為布林值 True 時,每個事件都會發行本地資料庫時間。 此參數設為布林值 False 時,會省略此資訊。
下表列出此參數的內容:
Driver for JDBC 可以使用四種已觸發發行參數中的任何一種。
「事件記錄表格名稱」參數指定儲存發行事件的事件記錄表格名稱。
此處指定的表格必須符合事件記錄表格的定義。
使用表格/檢視窗名稱 時,您很可能需要對此表格名稱進行明確的綱要限定。使用綱要名稱時,會使用該綱要名稱對此表格名稱進行隱含的綱要限定。如果此表格位於非隱含綱要的綱要中,則必須對其進行綱要限定。
下表列出此參數的內容:
Table 4-50 事件記錄表格名稱:內容
|
內容 |
值 |
|---|---|
|
標籤名稱 |
log-table |
|
必要? |
no1 |
|
區分大小寫? |
請參閱未分隔的識別碼區分大小寫。 |
|
範例值 |
eventlog |
|
預設值 |
(無) |
|
與綱要相依 |
True |
1如果發行模式設為 1 (已觸發發行),則此參數是必要項目。
「刪除已處理的列?」參數指定是否從事件記錄表格刪除已處理的列。
此參數設為布林值 True 時,會刪除已處理的列。 此參數設為布林值 False 時,會更新已處理列的 status 欄位值。
若要減輕已處理列留存在事件記錄表格中對於效能所造成的影響,建議您定期將這些列移入歷程表格。 請進行下列其中一項操作:
下表列出此參數的內容:
Table 4-51 刪除已處理的列?:內容
|
內容 |
值 |
|---|---|
|
標籤名稱 |
delete-from-log |
|
必要? |
no |
|
預設值 |
0 (否) |
|
正確的值 |
1、yes、true (是) 0、no、false (否) |
|
與綱要相依 |
True |
NOTE:除非定期從事件記錄表格移除已處理的列,否則將此參數設為布林值 False 會降低發行效能。
Driver for JDBC 可以使用一個無觸發發行參數。 然而,狀態目錄參數也會影響無觸發發行。
「輪詢間隔 (以秒為單位)」參數指定輪詢週期間無活動的秒數。
下表列出此參數的內容:
Table 4-55 輪詢間隔 (以秒為單位):內容
|
內容 |
值 |
|---|---|
|
標籤名稱 |
polling-interval |
|
必要? |
no |
|
預設值 |
10 (秒) |
|
正確的值 |
1-604800 (1 週) |
|
與綱要相依 |
True |
NOTE:建議您將此值設為至少 10 秒。
「每日發行時間」參數指定在每天發行開始的時間。 時間視為表示伺服器本地時間 (執行驅動程式之伺服器上的時間)。
下表列出此參數的內容:
Table 4-56 每日發行時間:內容
|
內容 |
值 |
|---|---|
|
標籤名稱 |
time-of-day |
|
必要? |
no |
|
範例值 |
13:00:00 (1PM) |
|
預設值 |
(無) |
|
正確的值 |
hh:mm:ss (h = 小時、m = 分鐘、s = 秒) |
|
與綱要相依 |
True |
NOTE:此參數會置換「輪詢間隔 (以秒為單位)」參數。 請參閱輪詢間隔 (以秒為單位)。
「輪詢後陳述式」參數指定在每個使用中輪詢週期結束時執行的 SQL 陳述式。 使用中輪詢週期是發生部份發行活動的週期。
此參數的主要目的是允許清理發行活動之後的事件記錄表格。
您很可能需要對這些陳述式中參考的所有資料庫物件 (例如,表格、預存程序和函數) 進行明確的綱要限定。
下表列出此參數的內容:
Table 4-57 輪詢後陳述式:內容
|
內容 |
值 |
|---|---|
|
標籤名稱 |
post-poll-stmt |
|
必要? |
no |
|
區分大小寫? |
請參閱未分隔的識別碼區分大小寫。 |
|
分隔符 |
分號 (;) |
|
範例值 |
DELETE FROM direct.direct_process |
|
預設值 |
(無) |
|
正確的值 |
(任何正確的 SQL 陳述式集) |
|
與綱要相依 |
True |
「批次大小」參數指定單一發行文件中傳送的事件數目。
基本上,批次越大,效能越佳。
認可的成本也會很高。
此參數會定義上限。 「發行者」通道可能會在某些條件下置換指定的值。 選擇上限 128,可以將 Java 堆積溢位的可能性降至最低,且會減少驅動程式關閉時「發行者」線串的終止延遲。
下表列出此參數的內容:
「活動訊號間隔 (以分鐘為單位)」參數指定「發行者」通道在傳送活動訊號文件之前可以處於非使用中的分鐘數。 實際上,經過的時間會超過指定的分鐘數。 也就是說,此參數是定義下限。 只有當「發行者」通道處於非使用中的時間已達指定的分鐘數後,才會傳送活動訊號文件。 實際上,傳送的任何發行文件都是活動訊號文件。
下表列出此參數的內容: