啟用批次工作事件發佈

透過「Java 傳訊系統 (JMS)」,批次伺服器可以將工作相關事件發佈至外部用戶端。

關於這項作業

當批次伺服器能夠將工作相關事件發佈至外部用戶端時,監視器就能夠查看工作相關事件,並報告失敗情況。批次分派器伺服器可以在分派階段發佈工作事件。批次執行程式伺服器可以在穿梭於不同的執行階段時,發佈工作事件。這些事件是以下列的主題樹狀結構來發佈:

表 1. 事件發佈的主題樹狀檔案結構
結構 說明
batch 主題樹狀結構的預設根位置。
[17.0.0.1 以及更新版本]註: 在 17.0.0.1 版以及更新版本中,主題樹狀結構的根位置是可配置的。
batch/jobs 所有工作相關事件的主題樹狀結構。
   
batch/jobs/instance 與工作實例相關之所有事件的主題樹狀結構。
batch/jobs/instance/submitted 主題樹狀結構節點。當批次伺服器針對新的工作提交建立工作實例時,會發佈訊息。
batch/jobs/instance/jms_queued 主題樹狀結構節點。當批次 JMS 分派器將工作提交放在工作提交佇列時,會發佈訊息。
batch/jobs/instance/jms_consumed 主題樹狀結構節點。當批次執行程式收到工作提交佇列中的工作提交時,會發佈訊息。
batch/jobs/instance/dispatched 主題樹狀結構節點。當批次執行程式接受工作實例執行時,會發佈訊息。
batch/jobs/instance/completed 主題樹狀結構節點。當工作實例完成時,會發佈訊息。
batch/jobs/instance/stopped 主題樹狀結構節點。當工作實例停止時,會發佈訊息。
batch/jobs/instance/stopping 主題樹狀結構節點。當工作實例正在停止時,會發佈訊息。
batch/jobs/instance/failed 主題樹狀結構節點。當工作實例失敗時,會發佈訊息。
batch/jobs/instance/purged 主題樹狀結構節點。當順利清除工作實例時,會發佈訊息。
   
batch/jobs/execution 與工作執行相關之所有事件的主題樹狀結構。
   
batch/jobs/execution/restarting 主題樹狀結構節點。當批次執行程式正在重新開始執行時,會發佈訊息。
batch/jobs/execution/starting 主題樹狀結構節點。當工作執行正在啟動時,會發佈訊息。
   
batch/jobs/execution/completed 主題樹狀結構節點。當工作執行順利結束時,會發佈訊息。
batch/jobs/execution/failed 主題樹狀結構節點。當工作執行因失敗而結束時,會發佈訊息。
batch/jobs/execution/stopped 主題樹狀結構節點。當工作執行停止時,會發佈訊息。
batch/jobs/execution/jobLogPart 主題樹狀結構節點。當建立新的工作日誌部分、工作停止或工作結束時,會發佈訊息。
   
batch/jobs/execution/step/started 主題樹狀結構節點。當步驟執行啟動時,會發佈訊息。
batch/jobs/execution/step/completed 主題樹狀結構節點。當步驟執行順利完成時,會發佈訊息。
batch/jobs/execution/step/failed 主題樹狀結構節點。當步驟執行失敗時,會發佈訊息。
batch/jobs/execution/step/stopped 主題樹狀結構節點。當步驟執行停止時,會發佈訊息。
batch/jobs/execution/step/checkpoint 主題樹狀結構節點。當取得檢查點時,會發佈訊息。
   
batch/jobs/execution/partition/started 主題樹狀結構節點。當分割區啟動時,會發佈訊息。
batch/jobs/execution/partition/completed 主題樹狀結構節點。當分割區順利完成時,會發佈訊息。
batch/jobs/execution/partition/failed 主題樹狀結構節點。當分割區失敗時,會發佈訊息。
batch/jobs/execution/partition/stopped 主題樹狀結構節點。當分割區停止時,會發佈訊息。
   
batch/jobs/execution/split-flow/started 主題樹狀結構節點。當分割流程啟動時,會發佈訊息。
batch/jobs/execution/split-flow/ended 主題樹狀結構節點。當分割流程完成時,會發佈訊息。
每一個主題的發佈訊息都是 JMS TextMessage。此訊息的內容是 JSON 格式的字串,代表主題的物件,例如:工作實例、工作執行、步驟執行或分割區。此外,此訊息亦包含下列的 JMS 訊息內容集:
  • com_ibm_ws_batch_internal_jobInstanceId:工作實例 ID(若有的話)。
  • com_ibm_ws_batch_internal_jobExecutionId:工作執行 ID(若有的話)。
  • com_ibm_ws_batch_internal_stepExecutionId:工作步驟執行 ID(若有的話)。

批次伺服器必須配置成能夠發佈工作相關事件。批次分派器和批次執行程式的配置相同。下列步驟可發佈批次伺服器的工作相關事件。

程序

  1. server.xml 檔中,將適當 JMS 特性新增至特性管理程式,以啟用 JMS 支援。 如果您使用 WebSphere® Application Server Liberty 預設傳訊提供者,請針對訊息引擎,新增 wasJmsClient-2.0 特性及相關 JMS 配置。如果您使用 WebSphere MQ 傳訊提供者,請新增 wmqJmsClient-2.0 特性。如果您在 z/OS 上以 BINDINGS 模式來使用 WebSphere MQ 傳訊提供者,請新增 zosTransaction-1.0 特性。
  2. batchJmsEvents 元素新增至 server.xml 檔。
    <batchJmsEvents connectionFactoryRef="batchConnectionFactory" />
    註: 如果您沒有指定 connectionFactoryRef 屬性,connectionFactoryRef 的預設值為 batchConnectionFactory。您仍然必須在 server.xml 檔中配置 batchConnectionFactory JMS Connection Factory。
    [17.0.0.1 以及更新版本]
    1. 如果要更新批次事件根主題,請將 topicRoot 屬性新增至 batchJmsEvents 元素。
      <batchJmsEvents connectionFactoryRef="batchConnectionFactory" topicRoot="NEW_ROOT" />

      topicRoot 屬性值取代預設根 batch,所以 batch/jobs/* 變成 NEW_ROOT/jobs/*

  3. 在伺服器配置中新增對應的 JMS Connection Factory。不是只有批次配置,才這樣做。
    下列範例利用 WebSphere MQ 傳訊提供者,來說明批次事件配置和其 JMS 配置。
    <!-- wmq resource adapter -->
    <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/>
    <!-- required for BINDINGS mode -->
    <wmqJmsClient nativeLibraryPath="/mqm/jms/java/lib"/>
    
    <batchJmsEvents connectionFactoryRef="batchConnectionFactory" />
    
    <jmsConnectionFactory id="batchConnectionFactory" jndiName="jms/batch/connectionFactory">
      <properties.wmqJms
        transportType="BINDINGS"
        queueManager="WMQX" />
    </jmsConnectionFactory>
    下列範例利用 Liberty 預設傳訊提供者來說明批次事件配置及其 JMS 配置。
    <batchJmsEvents connectionFactoryRef="batchConnectionFactory" />
    <jmsConnectionFactory id="batchConnectionFactory" jndiName="jms/batch/connectionFactory">
      <properties.wasJms></properties.wasJms>
    </jmsConnectionFactory>

範例

下列範例說明基本執行流程的事件順序。
  • 提交並執行含有檢查點的單一步驟工作。
    batch/jobs/instance/submitted
    batch/jobs/instance/jms_queued
    batch/jobs/instance/jms_consumed
    batch/jobs/execution/starting
    batch/jobs/instance/dispatched
    batch/jobs/execution/started
    batch/jobs/execution/step/started
    batch/jobs/execution/step/checkpoint
    batch/jobs/execution/step/checkpoint
    ...
    batch/jobs/execution/step/checkpoint
    batch/jobs/execution/step/completed
    batch/jobs/execution/completed
    batch/jobs/instance/completed
  • 提交並執行含有分割區的單一步驟工作。
    batch/jobs/instance/submitted
    batch/jobs/instance/jms_queued
    batch/jobs/instance/jms_consumed
    batch/jobs/execution/starting
    batch/jobs/instance/dispatched
    batch/jobs/execution/started
    batch/jobs/execution/step/started
    batch/jobs/execution/partition/started
    batch/jobs/execution/partition/started
    batch/jobs/execution/partition/started
    batch/jobs/execution/partition/completed
    batch/jobs/execution/partition/completed
    batch/jobs/execution/partition/completed
    batch/jobs/execution/step/completed
    batch/jobs/execution/completed
    batch/jobs/instance/completed

指示主題類型的圖示 作業主題

檔名:twlp_batch_monitoring.html