Solace Client running out of memory with multiple consumers

Options

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

  • amackenzie
    amackenzie Member, Employee Posts: 260 Solace Employee
    Options

    what are your Java JVM settings for the client app? It's running out of heap. Have you increased that?