Products | Versions |
---|---|
TIBCO BusinessEvents Enterprise Edition | - |
Not Applicable | - |
Resolution:
Description:
=========
TIBCO BusinessEvents engine after running for some time hangs with an out of memory error.
Environment:
==========
TIBCO BusinessEvents 5.1.1
Symptoms:
=========
The thread dumps shows the threads being blocked as follows :
a) java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:204)
- waiting to lock <0x00000006cda82ac0> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.log(Category.java:826)
at com.tibco.cep.runtime.service.logging.impl.LoggerImpl.log(LoggerImpl.java:93)
at com.tibco.cep.driver.jms.JMSDestination$JMSListener.onMessage(SourceFile:1074)
at com.tibco.tibjms.TibjmsxSessionImp._submit(TibjmsxSessionImp.java:4165)
at com.tibco.tibjms.TibjmsxSessionImp._dispatchAsyncMessage(TibjmsxSessionImp.java:2267)
at com.tibco.tibjms.TibjmsxSessionImp$Dispatcher.run(TibjmsxSessionImp.java:3689)
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:204)
- waiting to lock <0x00000006cda82ac0> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.log(Category.java:838)
at com.tibco.cep.runtime.service.logging.impl.LoggerImpl.log(LoggerImpl.java:69)
at com.tibco.be.functions.System.SystemHelper.debugOut(SourceFile:48)
at be.gen.RuleFunctions.Log.nullLogStringString$.Log(nullLogStringString$.java:16)
at be.gen.RuleFunctions.VoltageRMS.nullUpdateOpenEvent$oversizeName.UpdateOpenEvent
Cause:
======
By setting the queue size to 0 in the destination config means an unlimited queue size so all the messages that should be queuing up in EMS are being copied into BE's memory causing the Outof memory Exceptions.
Resolution:
=========
Tuning the queue size and num of threads to approriate values resolved the issue.
calculation:
queuSize = numThreads * 128
numThreads= number of cpu cores