MIDHermesProducer - グローバル

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:5分
  • MIDHermesProducer API は、MID サーバー からHermesトピックにデータを送信するメソッドを提供します。

    MID Server ECC Queue を使用するのではなく Hermes Messaging Service 経由でデータを送信する方が、ServiceNowインスタンスにデータを取得する効率的な方法です。

    この API には、 ServiceNow MID Hermes API (com.glide.mid.hermes_api) プラグインが必要です。呼び出し元ユーザーにはkafka_adminロールが必要です。この API を呼び出す前に、次の手順に従って Configure the MID Hermes API Extensionしてください。

    この API は、 MID サーバー で実行されるスクリプト ( MID サーバー バックグラウンドスクリプトなど) で使用します。 ワークフロースタジオ [ 必要なランタイム ] を MID に設定したアクションスクリプトステップ。

    MIDHermesProducer:MIDHermesProducer()

    Hermesトピックにメッセージを送信するための MIDHermesProducer を作成します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし

    この例では、 MIDHermesProducer をインスタンス化します。

    var producer = new MIDHermesProducer();

    MIDHermesProducer - send(オブジェクトオプション)

    MID サーバーから指定されたHermesトピックにメッセージを送信します。

    Hermesトピックにメッセージを送信するには、4000 〜 4050 ポート範囲が開いている必要があります。詳細については、「Producing and consuming messages from a Kafka client」を参照してください。

    表 : 2. パラメーター
    名前 タイプ 説明
    オプション オブジェクト メッセージの設定パラメーターが含まれます。
    {
       applicationId: "String",
       callbackFunction: function(),
       headers: {Object},
       key: "String",
       message: "String",
       topic: "String"
    }
    options.applicationId 文字列 オプション。トピックルーティングのアプリケーション識別子。指定すると、メッセージは snc.{ にルーティングされます。インスタンス}。{applicationId} です。{topic} 以外の場合は snc にルーティングされます 。インスタンス}。{トピック}
    options.onErrorCallback 関数 オプション。メッセージ配信が失敗した場合に実行する JavaScript 関数。この関数は、文字列 errorMessage と文字列 errorType (完全修飾 Java 例外クラス名) の 2 つのパラメーターを受け取ります。
    function(errorMessage, errorType) { 
       //implement error handling here
    };
    options.headers オブジェクト オプション。メッセージヘッダーのキーと値のペア。Apache Kafka でサポートされているヘッダーはすべて有効です。
    options.key 文字列 オプション。Apache Kafka でのパーティショニングのメッセージキー。同じキーを持つメッセージは同じパーティションに送信され、順序が確保されます。
    options.message 文字列 トピックに送信するメッセージの内容。文字列として書式設定された値はすべて有効です。
    options.topic 文字列 メッセージの送信先の Hermes トピックの名前。
    注:
    インスタンスプリフィックスは含めないでください。自動的に追加されます。
    表 : 3. 返される内容
    タイプ 説明
    なし このメソッドは値を返しません。メッセージ配信は非同期です。

    成功:メッセージは Hermes Kafka ブローカーに非同期に配信されます。MID サーバーログで配信確認を確認します。

    失敗:メッセージ配信が失敗した場合、オプションのコールバック関数 (提供されている場合) がエラーの詳細とともに呼び出されます。よくあるエラーには次のようなものがあります。
    • org.apache.kafka.common.errors.TimeoutException:Kafka ブローカーに到達できないか、ネットワークの問題があります。Hermesブートストラップアドレスとポートのファイアウォールルールを確認します。
    • com.service_now.mid.hermes_api.exception.MIDHermesAPIExtensionNotStartedException:拡張が開始されていません。MID Hermes API 拡張コンテキストがアクティブであることを確認します。
    • java.lang.IllegalArgumentException:無効なパラメーター。トピックとメッセージが提供されていることを確認します。
    エラーを解決するための追加手順:
    • MID Hermes API 拡張機能が MID サーバー UI で実行されていることを確認します。
    • Hermesへのネットワーク接続を確認します。
    • 詳細な診断については、プロパティmid.hermes.debug=trueを使用してMID サーバーログを確認してください。
    • キーストアで IPKI 証明書が有効であることを確認しますMID サーバー

    この例では、 Hermes トピックにメッセージを送信します。

    // Create producer instance 
    var producer = new MIDHermesProducer(); 
    
    // Define error callback function 
    var errorCallback = function(errorMessage, errorType) {
        gs.error("Message delivery failed: " + errorType + " - " + errorMessage);
    }; 
    
    // Send message with all optional parameters 
    producer.send({ 
        topic: "order-events", 
        applicationId: "sn_streamconnect", 
        message: JSON.stringify({ 
            orderId: "ORD-12345", 
            status: "completed", 
            timestamp: new Date().getTime() 
        }), 
        key: "customer-456", 
        headers: { 
            "content-type": "application/json", 
            "source": "mid-server", 
            "version": "1.0" 
        }, 
        onErrorCallback: errorCallback 
    });

    メッセージは非同期に送信されます。MID サーバーログで配信確認を確認します。