在慰借上发送mqtt消息时出现服务不可用错误

时间:2016-09-13 08:03:49

标签: mqtt 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

在安慰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). 

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

P.S。 - 我能够在默认VPN SSL端口上发布消息。

2 个答案:

答案 0 :(得分:0)

必须为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&amp;桥梁的标签。在“消息VPN”视图下,右键单击消息VPN,然后选择“更改服务状态”。将有一个弹出窗口,您可以在其中单独启用每项服务。

答案 1 :(得分:0)

您说您可以在QoS 0而不是1发布消息:您是否在消息VPN上配置了假脱机大小?您可能需要查看Product Documentation at(步骤17)并为Maximum Spool Usage属性添加大小:

  

最大假脱机用法

     

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

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