您可以在 JSON 檔案中新增必要設定,並使用 qsam decode 指令搭配 --input-parameter pubsub-publish-configuration=DataPath 選項指定這個檔案,藉此設定 Mainframe Connector 轉碼器的 Pub/Sub 發布格式。您必須定義 Pub/Sub 發布設定,如「PubsubConfiguration」一節所述。
本頁面說明可設定為轉碼輸入參數的各種 Pub/Sub 參數。PubsubPublishConfiguration 物件包含所有 Pub/Sub 解碼器設定選項。
PubsubPublishConfiguration
PubsubPublishConfiguration 物件可讓您設定要傳送至 Pub/Sub 的訊息,並搭配 qsam decode 指令使用。
| JSON 表示法 |
|---|
{ "attributes_configuration": object ( |
| 欄位 | |
|---|---|
attributes_configuration |
指定屬性設定。您可以將設定指定為鍵/值組合,並附加至 Pub/Sub 訊息。 設定完成後,即可用於篩選訊息或傳達其他中繼資料。 |
batching_settings |
指定發布訊息的批次設定。批次處理功能預設為停用。 詳情請參閱「使用批次設定發布」。 |
concurrency_control_settings |
為發布端用戶端指定並行和訊息處理設定。 這些設定可控制發布訊息的平行處理、確認成功傳送,以及處理發布程序期間發生的任何錯誤。詳情請參閱「並行控制」。 |
flow_control_settings |
指定要用於發布訊息的流量控制設定。根據預設,系統會停用流量控制設定。 詳情請參閱「發布訊息並設定流量控制」。 |
ordering_key_configuration |
指定排序鍵設定。這項設定會驗證排序鍵相同的訊息是否依序傳送。 如果未設定這項設定,系統無法保證訊息順序。 |
spillover_configuration |
指定溢出郵件的傳送方式設定。
如果未設定,溢出訊息會傳送至輸入主題,並加上 |
AttributesConfiguration
AttributesConfiguration 訊息會指定一組固定的屬性,定義如何為 Pub/Sub 訊息取得屬性。
| JSON 表示法 |
|---|
{ "attributes": object ( |
| 欄位 | |
|---|---|
attributes |
要附加至 Pub/Sub 訊息的固定鍵值屬性集合。 |
屬性
Attributes 訊息會指定一組 Attribute 鍵/值組合,用於定義屬性的判斷方式。
| JSON 表示法 |
|---|
{ "attribute": object ( |
| 欄位 | |
|---|---|
attribute |
指定鍵/值組合的集合。 |
屬性
Attribute 訊息代表單一鍵/值組合,用做 Pub/Sub 訊息屬性。
| JSON 表示法 |
|---|
{ "key": string, "value": string |
| 欄位 | |
|---|---|
key |
指定屬性的鍵。 |
value |
指定屬性的值。 |
BatchingSettings
BatchingSettings 訊息可讓您指定將訊息發布至 Pub/Sub 的批次設定。
請確認批次設定已設定為遵守定義的 Pub/Sub 配額和限制。
如要停用批次處理,請設定 message_count_threshold=1。
| JSON 表示法 |
|---|
{ "delay_threshold": string, "element_count_threshold": long, "request_byte_threshold": long |
| 欄位 | |
|---|---|
delay_threshold |
指定用於批次處理的延遲門檻。經過 |
element_count_threshold |
指定用於批次處理的訊息計數門檻。累積達到 |
request_byte_threshold |
指定要累積的訊息位元組數上限,達到這個上限後,系統就會將批次訊息傳送至 Pub/Sub。 即使尚未超過延遲或訊息計數門檻,也適用這項規定。 如果訊息一向很小,建議提高位元組門檻。 預設值為 1 個位元組。 |
ConcurrencyControlSettings
您可以使用 ConcurrencyControlSettings 訊息設定訊息發布的平行處理程序。
這些設定會影響可同時傳送的訊息數量。
| JSON 表示法 |
|---|
{ "publishing_threads": int, "result_processing_threads": int |
| 欄位 | |
|---|---|
publishing_threads |
指定發布訊息的處理執行緒數量。這個值應小於或等於可用的核心數。 如果執行緒數為 0,系統會同步處理發布作業。 |
result_processing_threads |
指定處理 Pub/Sub 訊息結果的執行緒數量。 包括確認訊息是否成功傳送,以及處理發布期間發生的任何錯誤。 如果值為 0,表示結果處理平行處理作業會同步處理。 預設值為 1。 |
FlowControlSettings
FlowControlSettings 訊息可讓您指定發布端用戶端管理訊息流向 Pub/Sub 的方式。
這些設定可避免用戶端耗用過多資源,或對 Pub/Sub 造成負擔。
| JSON 表示法 |
|---|
{ "limit_exceeded_behavior": enum ( |
| 欄位 | |
|---|---|
limit_exceeded_behavior |
指定超出流量控制限制時的行為。預設值為 |
max_outstanding_element_count |
指定可待處理的訊息數量上限 (已傳送但尚未由 Pub/Sub 確認)。 如果大型主機的記憶體充足,且您想提高總處理量,可以嘗試增加計數。 |
max_outstanding_request_bytes |
指定未處理郵件的總大小上限 (以位元組為單位)。 |
OrderingKeyConfiguration
OrderingKeyConfiguration 訊息會將靜態字串指定為排序鍵,定義如何判斷 Pub/Sub 訊息的排序鍵。
| JSON 表示法 |
|---|
{ "key": string |
| 欄位 | |
|---|---|
key |
要用做 Pub/Sub 訊息排序鍵的字串值。 |
SpilloverConfiguration
SpilloverConfiguration 訊息定義如何為溢出訊息指定替代主題。
您可以指定完整主題名稱,或附加至輸入主題名稱的後置字串。
這兩個選項互斥,您必須選擇其中一個。
| JSON 表示法 |
|---|
{ "name": string, "suffix": string |
| 欄位 | |
|---|---|
name |
以 |
suffix |
指定要附加至溢出訊息輸入主題名稱的字尾。
舉例來說,如果輸入主題是 |
列舉
LimitExceededBehavior
您可以使用 LimitExceededBehavior 列舉,設定超出流量控制限制時的行為。
| 列舉 | |
|---|---|
BLOCK |
超出限制時,Pub/Sub 發布者會封鎖。資源可用前,系統會禁止發布其他訊息。 |
IGNORE |
超過限制時,Pub/Sub 發布者會忽略限制並繼續發布。這可能會導致資源耗用量增加。 |
THROW_EXCEPTION |
如果超過限制,Pub/Sub 發布者會擲回例外狀況,表示發布失敗。 |