What does "ShortHashList.remove" and "TupleTableWithKeyTableImpl.remove"in a TIBCO BusinessEvents thread stack signify?

What does "ShortHashList.remove" and "TupleTableWithKeyTableImpl.remove"in a TIBCO BusinessEvents thread stack signify?

book

Article ID: KB0093336

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition -
Not Applicable -

Description

Resolution:
ShortHashList.remove and TupleTableWithKeyTableImpl.remove are usually indications that the engine is trying to remove a lot of cache-only entries from join tables at the end of every RTC (Run to Completion Cycle).

What is a Join Table.

Join table entries are inserted during the condition evaluation process which happens during an RTC. This happens when an object is new or modified. Note that if you create an object in the pre-processor, this work does not happen until the RTC starts. The entries are removed for deleted objects and for all cache-only objects at the start of the post-RTC. Join tables are specific to a rule. Combining rules by putting simple conditions into an if statement in the action can reduce the number of join tables and the amount of time spent on them.


Thread dump details :

"$default.be.mt$.Thread.4" - Thread t@82
   java.lang.Thread.State: RUNNABLE
    at com.tibco.cep.kernel.helper.ShortHashList.remove(ShortHashList.java:134)
    at com.tibco.cep.kernel.core.base.BaseHandle.unregisterTupleRow(BaseHandle.java:337)
    - locked <2ed45c33> (a com.tibco.cep.runtime.service.om.coherence.CacheEventHandle)
    at com.tibco.cep.kernel.core.base.tuple.TupleRowNoKey.removeTupleFromTable(TupleRowNoKey.java:39)
    at com.tibco.cep.kernel.core.base.BaseHandle.removeFromTables(BaseHandle.java:302)
    at com.tibco.cep.kernel.core.rete.ReteNetwork.retractObject(ReteNetwork.java:77)
    at com.tibco.cep.kernel.core.rete.ReteWM.removeFromRete(ReteWM.java:2784)
    at com.tibco.cep.kernel.core.rete.ReteWM.retractHandleInternal(ReteWM.java:2682)
    at com.tibco.cep.kernel.core.rete.ReteWM.retractHandleInternal(ReteWM.java:2692)
    at com.tibco.cep.kernel.core.base.OperationList$RetractEntry.execute(OperationList.java:453)
    at com.tibco.cep.kernel.core.base.OperationList.performOps(OperationList.java:211)
    at com.tibco.cep.kernel.core.rete.ReteWM.resolveConflict(ReteWM.java:327)
    at com.tibco.cep.kernel.core.rete.ReteWM.executeRules(ReteWM.java:1366)
    at com.tibco.cep.runtime.session.impl.RuleSessionImpl.preprocessPassthru(RuleSessionImpl.java:970)
    at com.tibco.cep.runtime.service.om.coherence.cluster.agents.ClusterTaskController.executeTask(ClusterTaskController.java:64)
    at com.tibco.cep.runtime.scheduler.impl.WorkerBasedControllerV2$WorkerTask.run(WorkerBasedControllerV2.java:388)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at com.tibco.cep.runtime.util.CustomBEManagedThread.run(CustomBEManagedThread.java:23)


Resolution:

This is a project design issue, not a product issue. A few solutions are to load fewer objects, move some objects away from cache-only or add additional filter conditions to reduce the number of entries in the join tables.

Issue/Introduction

What does "ShortHashList.remove" and "TupleTableWithKeyTableImpl.remove"in a TIBCO BusinessEvents thread stack signify?

Additional Information

Business Events Engineering team