【问题标题】:Service Unavailable error while sending mqtt message on solace在安慰上发送 mqtt 消息时出现服务不可用错误
【发布时间】:2016-10-03 21:35:18
【问题描述】:

我在 solace VMR 上创建了一个新的消息 VPN,并将其 SSL 端口配置为 8884 。在其上配置默认 ACL 配置文件以允许发布和订阅两者。但是,当我尝试发布有关诸如“hellotopic”之类的主题的任何消息时,我会收到如下异常:

Exception occoured Client is currently disconnecting (32102)
Connection lost on instance "123456" with cause "Connection lost" Reason code 32109" Cause "java.io.EOFException"
Connection lost (32109) - java.io.EOFException
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:138)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readByte(DataInputStream.java:267)
    at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:56)
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:100)
    ... 1 more

在 solace VMR 事件日志中,它会立即连接和断开连接:-

2016-09-13T13:12:16+0000 <local3.info> solace event: CLIENT: CLIENT_CLIENT_CONNECT_MQTT: publisher_VPN #mqtt/1251123gf/216 Client (108) #mqtt/1251123gf/216 username default ClientId (1251123gf) connected to XXX.XX.XX.XX:8884 from XXX.XX.XX.XX:59736 SslVersion(TLSv1.2) SslCipher(ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256) authScheme(Basic) Clean(0) Will(0)

2016-09-13T13:12:16+0000 <local3.info> solace event: CLIENT: CLIENT_CLIENT_DISCONNECT_MQTT: publisher_VPN #mqtt/1251123gf/216 Client (108) #mqtt/1251123gf/216 username default ClientId (1251123gf) **reason(Service Unavailable)** final statistics - dp(1, 1, 0, 0, 1, 1, 25, 4, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) conn(0, 0, XXX.XX.XX.XX:59654, ESTAB, 0, 0, 0) mqtt(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0), SslVersion(TLSv1.2), SslCipher(ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256), WillSent(0). 

试图找到解决方案,得到了一些关于我无权在以下主题上发布的信息。

附: - 我能够在默认 VPN SSL 端口上发布消息。

【问题讨论】:

    标签: mqtt solace


    【解决方案1】:

    您说您可以在 QoS 0 而不是 1 下发布消息:您是否在消息 VPN 中配置了 Spool 大小?您可能想查看Product Documentation(第 17 步)并向Maximum Spool Usage 属性添加大小:

    最大线轴使用量

    Message VPN 可以使用的最大消息假脱机磁盘空间量(以 MB 为单位)。 注意:没有进行监管以确保分配给消息 VPN 的所有消息假脱机配额的总和不超过路由器范围的消息假脱机配额。

    默认情况下,此属性的值设置为 0,您可以尝试将其设置为 5 或 10(以 MB 为单位)。

    【讨论】:

      【解决方案2】:

      必须在 Solace VMR 上为 Message VPN 启用 MQTT SSL 服务,才能让 MQTT 客户端连接到 Message VPN 的端口。

      要使用 CLI 启用 MQTT SSL 服务,您可以使用以下命令:

      solace(configure)# message-vpn <vpn-name>
      solace(configure/message-vpn)# service mqtt
      solace(configure/message-vpn/service/mqtt)# no ssl shutdown
      

      要使用 SolAdmin 启用 MQTT SSL 服务,请导航到“消息 VPN、ACL 和网桥”选项卡。在“消息 VPN”视图下,右键单击消息 VPN 并选择“更改服务状态”。将会有一个弹出窗口,您可以在其中单独启用每个服务。

      【讨论】:

      • ssl 服务已在我的 VMR 上启用。我只在 VPN 上配置了 ssl 和 Authentication 。我可以在 qos=0 但不能在 qos=1 发布消息。这可能是保证消息关闭的错误吗? .如果是,VMR 是否支持?
      猜你喜欢
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 2013-02-03
      • 2015-04-21
      • 2019-09-21
      • 2016-11-08
      • 1970-01-01
      • 2016-12-22
      相关资源
      最近更新 更多