当发布大量消息时,Solace会抛出异常

问题描述:

只有一段时间,我设法通过使用JCSMP API将直接消息发送到物理Solace设备来成功发布大量消息。然而,大部分时间我得到以下例外:当发布大量消息时,Solace会抛出异常

com.solacesystems.jcsmp.JCSMPTransportException: Error communicating with the router. 
at com.solacesystems.jcsmp.protocol.impl.TcpClientChannel.sendPubMsgBuffer(TcpClientChannel.java:620) 
at com.solacesystems.jcsmp.protocol.impl.TcpClientChannel.send(TcpClientChannel.java:564) 
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendMsgOnce(JCSMPXMLMessageProducer.java:1203) 
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendImpl(JCSMPXMLMessageProducer.java:1023) 
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendToDestination(JCSMPXMLMessageProducer.java:845) 
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendToDestination(JCSMPXMLMessageProducer.java:785) 
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.send(JCSMPXMLMessageProducer.java:610) 
Caused by: java.lang.InterruptedException 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1302) 
    at java.util.concurrent.Semaphore.acquire(Semaphore.java:312) 
    at com.solacesystems.jcsmp.protocol.smf.SSLSmfClient.doSmfSharedWrite(SSLSmfClient.java:476) 
    at com.solacesystems.jcsmp.protocol.impl.TcpClientChannel.sendPubMsgBuffer(TcpClientChannel.java:605) 

目前我正试图发布约400条消息一个接一个。我认为这是一个网络问题,但我通过LAN电缆连接到Solace设备。所以,它不应该是一个网络问题。可以建议什么是错的?谢谢!

该异常表明您的应用程序中的线程正在为此发送线程调用Thread.interrupt()。