Try PubSub+
If you haven't already, check out our new Developer Portal! You'll find useful information about Solace PubSub+ as well as handy resources to get you started.

Solace Client running out of memory with multiple consumers

Hi,
We are using Solace JMS to read the Data from a JMS Queue and in order to keep up with the rate at which data is produced we are using 50 Consumers in worker threads and this is causing OutoFMemory Issue.
Looks like as soon as we are creating the session and connection it is getting disconnected and the client/consumer is constantly trying to create the connection ( we have the logic to recover and try to reconnect and establish a session if the consumer gets disconnected). We get the data for a while and then we eventually run into OutOfMemory heap error.
We are running the client with 30GB of memory.
Here are the errors we are seeing in the logs.

12:38:02.022 [Context_11_Thread_reconnect_service] INFO c.s.j.protocol.impl.TcpClientChannel - Channel Closed (smfclient 58)
12:38:02.022 [Context_46_Thread_reconnect_service] INFO c.s.jcsmp.impl.flow.FlowHandleImpl - FlowHandleImpl:handleException() for flow 3653: (channel:(smfclient 268, name=ip-10-22-8-171.fcs.faa.gov/16193/#00680086, desc=)) (JCSMPTransportException) Error occurred sending ADCTRL message.

12:46:33.550 [Context_46_Thread_reconnect_service] INFO c.s.jcsmp.impl.flow.FlowHandleImpl - Enqueued an exception notification for flow 3653: com.solacesystems.jcsmp.JCSMPTransportException: (JCSMPTransportException) Error occurred sending ADCTRL message.
calling stack: Thread: "Context_46_Thread_reconnect_service" daemon id=165, prio=5:
com.solacesystems.jcsmp.impl.flow.FlowHandleImpl.handleQueueException(FlowHandleImpl.java:1341)
com.solacesystems.jcsmp.impl.flow.FlowHandleImpl.handleException(FlowHandleImpl.java:1178)
com.solacesystems.jcsmp.impl.flow.SubFlowManagerImpl.dispatchChannelException(SubFlowManagerImpl.java:712)
com.solacesystems.jcsmp.protocol.impl.TcpClientChannel.dispatchEx(TcpClientChannel.java:1355)
com.solacesystems.jcsmp.protocol.impl.TcpClientChannel.access$1000(TcpClientChannel.java:104)
com.solacesystems.jcsmp.protocol.impl.TcpClientChannel$ClientChannelReconnect.call(TcpClientChannel.java:2258)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)

12:57:24.241 [Context_23_Thread_reconnect_service] ERROR com.solacesystems.jms.SolConnection - Error handling async exception
java.lang.OutOfMemoryError: Java heap space

Thanks
Sateesh

Tagged:

Comments

Sign In or Register to comment.