SCADAInput ノード

このトピックには、以下のセクションが含まれています。

目的

WebSphere MQ Telemetry Transport を介してブローカーに接続するクライアントからのメッセージを受信するには、SCADAInput ノードを使用します。 SCADA デバイス・クライアントは、MQIsdp プロトコルを使用して、SCADAInput ノードが WebSphere Business Integration Message Broker によって認識される形式に変換するメッセージを送信します。 このノードは、これらのメッセージの処理環境も確立します。

SCADA デバイスから受信するメッセージを処理するメッセージ・フローは、常に SCADAInput ノードから開始されます。 SCADAInput ノードのプロパティーを設定すると、メッセージの受信方法を制御できます。 たとえば、メッセージをトランザクション制御下で処理するように指示できます。

SCADA ノードを含むメッセージ・フローをブローカーにデプロイする場合、メッセージ・フローの数にかかわりなく、単一の実行グループにデプロイする必要があります。

SCADA は主にパブリッシュ/サブスクライブなので、通常 Publication ノードを組み込んでフローを終了します。 Publication ノードを組み込みたくないシナリオの場合には、SCADAOutput ノードを組み込むことができます。 そうする場合には、メッセージのソースにかかわらず SCADAInput ノードも組み込む必要があります。 SCADAInput ノードは、SCADAOutput ノードが必要とする接続情報を提供するからです。

SCADAInput ノードで開始されるメッセージ・フローに出力ノードを組み込む場合には、サポートされるいずれかの出力ノード (ユーザー定義の出力ノードも含む) を使用できます。 必要な任意の変換を提供するようにブローカーに要求するようにメッセージ・フローを構成できますので、SCADA デバイスからメッセージを受け取り、サポートされるトランスポートすべてを使用してブローカーに接続するクライアント用のメッセージを生成する、メッセージ・フローを作成できます。

特定のトピックのメッセージをパブリッシュして、ブローカーが SCADA リスナーを開始または停止するように要求できます。 これは、すべてのポートまたはメッセージ内で識別される単一ポートに対して行うことができます。

SCADAInput ノードは、次のメッセージ・ドメインのメッセージを処理します。

  • MRM
  • XML
  • XMLNS
  • JMSMap
  • JMSStream
  • BLOB

z/OS システム上にデプロイされるメッセージ・フロー中で、SCADAInput ノードを使用することはできません。

着信 SCADA メッセージ内のデータを処理したい場合には、ResetContentDescriptor ノードなどを組み込んでそのプロパティーを設定し、以降のノードによるビット・ストリームの再解析を強制します。

サブフローとして使用するメッセージ・フローを作成する場合には、標準入力ノードを使用することはできず、入力ノードのインスタンスを最初のノードとして使用して、サブフロー用の in ターミナルを作成する必要があります。

ご使用のメッセージ・フローが SCADA 接続を経由してメッセージを受け取らない場合には、次の入力ノードのいずれかを選択できます。

  • HTTPInput
  • MQInput
  • MQeInput
  • Real-timeInput
  • ユーザー定義の入力ノード

ワークベンチでは、SCADAInput ノードは次のアイコンで表されます。

SCADAInput ノード・アイコン

メッセージ・フロー内でのこのノードの使用

このノードの使用方法の例として、リモート・センサーが操作環境の変化 (屋外温度の低下など) を検出した場合に、リモート・センサーからのメッセージを受信するメッセージ・フローを、SCADAInput ノードを使って作成すると想定します。 このノードを MQOutput ノードに接続します。MQOutput ノードは、これらのメッセージを WebSphere MQ アプリケーションがサービスするキューで使用可能にします。 このアプリケーションは、受信した情報を分析して、これに応答します。

2 番目の例として、リモート・システムから毎分メッセージを受信するメッセージ・フローを、SCADAInput ノードを使って作成します。 メッセージには、システムのスイッチ設定の詳細が含まれています。 受信されたデータは、ResetContentDescriptor ノードに送られ、バイナリー (BLOB) から MRM メッセージ形式にキャストされます。 システムに関する情報は、Database ノードを使用してデータベースに保管され、Compute ノードを使用して拡充され、Publication ノードを使用してパブリッシュされる XML メッセージが作成されます。

XML メッセージは、送信するのに費用がかかるため (サテライト伝送はバイトごとに費用がかかるため)、データがブローカーによって拡充されるときにこの方法を使用することには利点があります。

SCADAInput ノードの構成

SCADAInput ノードのインスタンスをメッセージ・フローに入れると、SCADAInput ノードを構成することができます。 エディター・ビューでノードを右マウス・ボタンでクリックし、「プロパティー (Properties)」をクリックします。 ノードの基本プロパティーが、プロパティー・ダイアログに表示されます。

値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。

以下のように、SCADAInput ノードを構成します。

  1. 以下のように基本プロパティーを設定します。
    1. 「始動時にリスナーを使用可能にする (Enable listener on startup)」チェック・ボックスは、最初から選択されています。 これは、メッセージ・フローがデプロイされたときに MQIsdp クライアントのリスナーが初期化されることを意味します。

      メッセージ・セットのペイロード部分を「オン (ON)」または「オフ (OFF)」にして、制御トピック $SYS/SCADA/MQIsdpListener/<port_number> についてパブリッシュすることによって、リスナーの状況を更新することができます。

    2. MQIsdp サーバーが listen する「ポート (Port)」番号を指定します。 これは固有のポートにする必要があります。 他のリスナー (たとえば、WebSphere MQ または WebSphere MQ Everyplace 用に設定されているリスナー) と競合しないようにしてください。 デフォルト番号は、1883 です。
    3. 「スレッドの最大数 (Max Threads)」の値を設定して、MQIsdp サーバーが クライアントをサポートするために処理できるスレッドの最大数を示します。 デフォルト値は 500 です。

      ブローカー・データベースとして DB2 を使用している場合、DB2 構成パラメーター maxappls および maxagents に設定した値以下の値を指定する必要があります。 詳細は、データベースへの接続を参照してください。

    4. クライアントにサービスを提供するために、ノードにスレッドのプールを使用させたい場合は、「スレッド・プーリングを使用する (Use Thread Pooling)」を選択します。 このオプションを選択した場合、MQIsdp サーバーで使用可能なスレッド数は、「スレッドの最大数 (Max Threads)」によって制限されます。 この値は、20 以下に設定するようお勧めします。 このオプションを選択しない場合、接続されるクライアントごとに新しいスレッドが作成されます。 最初、このチェック・ボックスはチェックされています。

      多くのクライアント (200 を超えるクライアント) が接続する場合にのみ、このオプションを使用します。

  2. プロパティー・ダイアログ・ナビゲーターで「デフォルト (Default)」を選択して、着信メッセージの構文解析方法を決定するのにノードが使用するメッセージ・ドメイン、メッセージ・セット、メッセージ・タイプおよびメッセージ形式を記述するプロパティーの値を設定し、メッセージに関連したデフォルト・トピックの値を設定します。
    • 着信メッセージに MQRFH2 ヘッダーがある場合には、その MQRFH2 ヘッダーの <mcd> フォルダーから値を取り込めるため、「デフォルト (Default)」プロパティーの値を設定する必要はありません。 以下に例を示します。
      <mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type>
      <Fmt>XML</Fmt></mcd>

      MQRFH2 ヘッダーの値とは異なる値を設定すると、MQRFH2 ヘッダーの値が優先されます。

    • 「メッセージ・ドメイン (Message Domain)」では、ドロップダウン・リストから使用するパーサーの名前を選択します。以下から選択できます。
      • MRM
      • XML
      • XMLNS
      • JMSMap
      • JMSStream
      • BLOB
    • MRM パーサーを使用する場合は、「メッセージ・セット (Message Set)」のドロップダウン・リストから、適切なメッセージ・セットを選択します。 このリストには、ドメインとして MRM を選択する場合に選択可能なメッセージ・セットが取り込まれます。

      XML、XMLNS、JMS、および BLOB パーサーの場合、「メッセージ・セット (Message Set)」はブランクのままにしてください。

    • MRM パーサーを使用する場合は、「メッセージ・タイプ (Message Type)」のドロップダウン・リストから、適切なメッセージ・タイプを選択します。 このリストには、選択したメッセージ・セットで定義されたメッセージが取り込まれます。

      XML、XMLNS、JMS、および BLOB パーサーの場合、「メッセージ・タイプ (Message Type)」はブランクのままにしてください。

    • 「メッセージ形式 (Message Format)」のドロップダウン・リストから、メッセージの形式を選択します。 このリストには、このメッセージ・セット用に定義されたすべての物理形式が含まれます。 物理形式にデフォルト名を使用している場合には、以下の名前がリストに含まれます。
      • CWF1 (デフォルト・カスタム・ワイヤー形式 ID)
      • XML1
      • TDS1
      これらの物理形式のいずれかに対して別の (デフォルトではない) 名前を指定した場合には、その名前がリストに表示されます。

      XML、XMLNS、JMS、および BLOB パーサーの場合、「メッセージ形式 (Message Format)」はブランクのままにしてください。

  3. プロパティー・ダイアログ・ナビゲーターで「拡張 (Advanced)」を選択し、「トランザクション・モード (Transaction Mode)」に必要な値を設定して、このメッセージの処理方法についてのトランザクション特性を定義します。
    • 「自動 (Automatic)」を選択した場合、着信メッセージに持続のマークが付けられている場合に同期点下で受信され、そうでないときは受信されません。 出力ノードによってその後に送信される派生メッセージのトランザクション特性は、出力ノードが明示的にトランザクション特性をオーバーライドしない限り、着信持続プロパティーによって判別されます。
    • 「はい (Yes)」を選択すると、着信メッセージが同期点下で受信されます。 メッセージ・フローと同じインスタンスの出力ノードによってその後に送信される派生メッセージは、出力ノードが明示的にトランザクションをオーバーライドしない限り、トランザクションとして送信されます。
    • 「いいえ (No)」を選択すると、着信メッセージが同期点下で受信されません。 フローの出力ノードによってその後に送信される派生メッセージは、出力ノードがメッセージを同期点下に置くことを指定していない限り、非トランザクションとして送信されます。
  4. 簡略説明または詳細説明 (あるいはその両方) を入力するには、プロパティー・ダイアログ・ナビゲーターの「説明 (Description)」を選択します。
  5. 「適用」をクリックすると、プロパティー・ダイアログを閉じずに SCADAInput ノードが変更されます。 「OK」をクリックすると、変更を適用してプロパティー・ダイアログを閉じます。

    「キャンセル (Cancel)」をクリックすると、ダイアログを閉じてプロパティーの変更をすべて破棄します。

ターミナルの接続

SCADAInput は、out ターミナルに正常に取り出される各メッセージをルーティングします。 これが失敗すると、メッセージは failure ターミナルに伝搬されます。 ノードをこのターミナルに接続し、この状態を処理することができます。 failure ターミナルに接続していなかった場合、その問題が解決されるまで、メッセージはこのノードでループし続けます。

メッセージ・フロー内でさらに例外が出された後、このノードによってメッセージがキャッチされる場合、メッセージは catch ターミナルにルーティングされます。 catch ターミナルに接続しなかった場合、その問題が解決されるまで、メッセージはこのノードでループし続けます。 メッセージがメッセージ・フロー内でロールバックする可能性がある場合には、ノードが常時このターミナルに接続されているようにしてください。

整合トランザクションの構成

メッセージ・フローに SCADAInput ノードを組み込む場合、「トランザクション・モード (Transaction Mode)」で設定する値が、メッセージを同期点下で受信するかどうかを定義します。

  • 「はい (Yes)」(デフォルト) に設定した場合、メッセージは同期点下 (WebSphere MQ 作業単位内) で受信されます。 メッセージ・フローと同じインスタンスの出力ノードによってその後に送信されるメッセージは、出力ノードがこれを明示的にオーバーライドしない限り、同期点の下に置かれます。
  • 「自動 (Automatic)」に設定した場合、メッセージは、着信メッセージに持続のマークが付けられている場合に同期点下で受信されます。 そうでない場合、メッセージは同期点下で受信されません。 出力ノードによってその後に送信されるメッセージは、出力ノードがこれを明示的にオーバーライドしない限り、着信持続プロパティーによって判別されたとおりに同期点の下に置かれます。
  • 「いいえ (No)」に設定した場合、メッセージは同期点下で受信されません。 フロー内の出力ノードによってその後に送信されるメッセージは、個々の出力ノードがメッセージを同期点の下に置くように指定しない限り、同期点の下には置かれません。

(MQOutput ノードは出力ノードのみで、このオプションのオーバーライドを構成できます。)

ターミナルおよびプロパティー

SCADAInput ノード・ターミナルについては、次の表に説明されています。

ターミナル 説明
Failure エラーが発生した場合にメッセージがルーティングされる出力ターミナル。
Out キューからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。
Catch 例外がダウンストリームで発生し、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。

以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。

SCADAInput ノードの「基本 (Basic)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
始動時にリスナーを使用可能にする (Enable listener on startup) はい いいえ 選択されている リスナーを開始する時期。 チェック・ボックスを選択した場合、メッセージ・フローがブローカーによって開始されるとリスナーが開始されます。 チェック・ボックスを船体しない場合、指定されたポートにメッセージが到達するとリスナーが開始されます。
ポート (Port) はい はい 1883 SCADA プロトコルが listen するポート。
最大スレッド (Max Threads) はい はい 500 SCADA デバイスをサポートするために始動するスレッドの最大数。
スレッド・プール使用 (Use Thread Pooling) はい はい 選択されていない スレッド・プールを使用するかどうか。 チェック・ボックスを選択すると、このアクションが実行されます。

SCADAInput ノードの「デフォルト (Default)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
メッセージ・ドメイン (Message Domain) いいえ いいえ   着信メッセージのドメイン。
メッセージ・セット (Message Set) いいえ いいえ   着信メッセージのメッセージ・セット。
メッセージ・タイプ (Message Type) いいえ いいえ   着信メッセージのタイプ。
メッセージ形式 (Message Format) いいえ いいえ   着信メッセージの形式。

SCADAInput ノードの「拡張 (Advanced)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
トランザクション・モード (Transaction Mode) はい いいえ 「はい (Yes)」 着信メッセージが同期点下で受信されるかどうか。 有効な値は、「自動 (Automatic)」「はい (Yes)」、および「いいえ (No)」です。

SCADAInput ノードの「説明 (Description)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
簡略説明 (Short Description) いいえ いいえ   ノードの簡単な説明
詳細説明 (Long Description) いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

関連概念
WebSphere MQ Telemetry Transport
メッセージ・フロー
ユーザー定義拡張機能
メッセージ・フロー・アプリケーションのデプロイメント

関連タスク
データベースへの接続
使用するノードの決定
複数の入力ノードの使用
整合されたメッセージ・フローの構成
メッセージ・フローのエラー処理
構成可能プロパティーの編集

関連資料
WebSphere MQ Telemetry Transport
HTTPInput ノード
Input ノード
MQeInput ノード
MQInput ノード
Real-timeInput ノード
SCADAOutput ノード