当您创建消息流从 Telemetry 客户机接收消息时,必须至少包含一个 SCADAInput 节点。配置它的属性来定义侦听新消息的端口。如果您的消息流发送消息到 Telemetry 客户机,则必须包含 Publication 节点或 SCADAOutput 节点(Publication 节点包含一个嵌入的 SCADAOutput 节点)。
必须将包含 SCADAInput 和 SCADAOutput 节点的消息流部署到代理内的单个执行组。如果通过 Publication 节点将消息发送到 Telemetry 客户机,则即使没有从 Telemetry 客户机接收消息的消息流,在同一个执行组中也必须存在包含该节点的消息流,作为 SCADAInput 节点。这是因为 SCADAInput 节点的属性会识别用于与客户机通信的 TCP/IP 端口,以及如何处理消息的特性。
使用主题为 $SYS/SCADA/MQIsdpListener/<port_number> 的发布消息启动和停止 WebSphere MQ 遥感传输方式侦听器。将消息的有效内容部分设置为 ON 或 OFF。用您要启动或停止的单个端口替换 <port_number>,或用 all 替换它来启动或停止指定为 SCADA 端口的系统上的所有端口。
服务质量确定消息传递的可靠性。请查看所处理消息的环境;在某些情况下,消息丢失是可以接受的。对于其他情况,则可能需要保证消息传递。WebSphere MQ 遥感传输方式 服务质量级别和流中描述了服务质量选项 QoS0、QoS1 和 QoS2。
如果您选择保证消息传递,则代理必须执行其他操作来保留消息,直到确定已经传递了它。这将影响代理和客户机的性能,因此您必须在消息处理的速度需要和确保消息传递的需要之间取得平衡。
如果选择 QoS1 或 QoS2(这表示消息至少传递一次或仅传递一次),则代理和客户机必须提供一定级别的确认。代理必须存储消息,以便在没有收到相应的确认时可以重新发送消息。
代理将消息存储在它的数据库中。如果代理无法在需要时完成从数据库输入或输出,则可能会影响消息处理;发生这种情况时,代理可能会停止处理消息。如果代理数据库为 DB2,请关闭 DB2 下一键锁定来避免发生这些死锁问题。在 DB2 命令窗口中发出以下命令来进行此更改:
db2set DB2_RR_TO_RS=YES
重新启动 DB2 数据库管理器,使更改生效。
如果选择 QoS0,则不保证消息传递。代理不会存储消息。