Workflow execution failed with LIMIT_EXCEEDED ASException

Workflow execution failed with LIMIT_EXCEEDED ASException

book

Article ID: KB0084336

calendar_today

Updated On:

Products Versions
TIBCO MDM 8.3.x, 9.x

Description

The following stack trace is seen in the elink.log:

STACKTRACE: com.tibco.as.space.ASException: LIMIT_EXCEEDED (capacity_exceeded)
    at Native.RequestProcessor::asyncPut(RequestProcessor.cpp:860)
    at Native.RequestProcessor::process(RequestProcessor.cpp:771)
    at Native.PutReq::accept(PutReq.cpp:13)
    at Native.RequestProcessor::processSpaceReq(RequestProcessor.cpp:159)
    at Native.Space::put(Space.cpp:2327)
    at Native.Space::put(Space.cpp:816)
    at Native.API_Space_Put(ApiSpace.cpp:265)
    at Native.Java_com_tibco_as_space_impl_NativeImpl_spacePut(SpaceMessage.cpp:134)
    at com.tibco.as.space.impl.NativeImpl.spacePut(Native Method)
    at com.tibco.as.space.impl.ASSpace.putOp(ASSpace.java:942)
    at com.tibco.as.space.impl.ASSpace.put(ASSpace.java:283)
    at com.tibco.mdm.infrastructure.cache.MqCacheManagerActiveSpaces.put(MqCacheManagerActiveSpaces.java:1490)
    at com.tibco.mdm.workflow.engine.FailoverMarkerCacheHelper.setupMarker(FailoverMarkerCacheHelper.java:51)
    at com.tibco.mdm.workflow.engine.activities.MqActivityInstInitiateSubFlow.execActivity(MqActivityInstInitiateSubFlow.java:155)
    at com.tibco.mdm.workflow.engine.MqProcessInst.execActivity(MqProcessInst.java:606)
    at com.tibco.mdm.session.workflow.engine.activities.MqActivityInstSsnBean.execActivity(MqActivityInstSsnBean.java:118)
    at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:333)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:192)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$1.processInvocation(EjbExceptionTransformingInterceptorFactories.java:65)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
    at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
    at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
    at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
    at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
    at com.sun.proxy.$Proxy96.execActivity(Unknown Source)
    at com.tibco.mdm.workflow.engine.MqProcessInst.execBeanActivity(MqProcessInst.java:1168)
    at com.tibco.mdm.workflow.engine.MqProcessInst.execActivityInLoop(MqProcessInst.java:984)
    at com.tibco.mdm.workflow.engine.MqProcessInst.runProcess(MqProcessInst.java:2185)
    at com.tibco.mdm.workflow.engine.MqProcessInst.runProcessInTransaction(MqProcessInst.java:2133)
    at com.tibco.mdm.workflow.engine.MqWfProcessInst.processEvent(MqWfProcessInst.java:1233)
    at com.tibco.mdm.workflow.engine.MqWorkflowManager.processDefaultEvent(MqWorkflowManager.java:1584)
    at com.tibco.mdm.workflow.engine.MqWorkflowManager.processDefaultEvent(MqWorkflowManager.java:1050)
    at com.tibco.mdm.workflow.engine.MqWorkflowManager.processEvent(MqWorkflowManager.java:2252)
    at com.tibco.mdm.session.workflow.engine.core.WorkflowManagerSsnBean.processEvent(WorkflowManagerSsnBean.java:122)
    at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:211)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.notSupported(CMTTxInterceptor.java:288)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:188)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$1.processInvocation(EjbExceptionTransformingInterceptorFactories.java:65)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
    at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
    at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
    at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
    at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
    at com.sun.proxy.$Proxy92.processEvent(Unknown Source)
    at com.tibco.mdm.util.MqWmUtil.processEvent(MqWmUtil.java:141)
    at com.tibco.mdm.workflow.engine.WmQueueMessageListener.onMessage(WmQueueMessageListener.java:238)
    at com.tibco.mdm.integration.messaging.message.MqNativeMessageListener.onMessage(MqNativeMessageListener.java:97)
    at com.tibco.tibjms.TibjmsxSessionImp._submit(TibjmsxSessionImp.java:4248)
    at com.tibco.tibjms.TibjmsxSessionImp._dispatchAsyncMessage(TibjmsxSessionImp.java:2298)
    at com.tibco.tibjms.TibjmsxSessionImp$Dispatcher.run(TibjmsxSessionImp.java:3753)

This suggests that eviction policy for cache FAILOVERMARKER is not set properly (set to NULL vs. LRU) so that the new record insertion fails.

Issue/Introduction

workflow execution failed with the error message - ERROR: com.tibco.as.space.ASException: LIMIT_EXCEEDED (capacity_exceeded)

Environment

Product: TIBCO MDM 8.x, 9.x Operating System: All OS supported by MDM Database: All databases supported by MDM App server: All App servers supported by MDM

Resolution

In CacheConfig.xml file, set FAILOVERMARKER cache Eviction policy to LRU (<EvictionPolicy>LRU</EvictionPolicy>) so that the least recently used record are deleted and new record is inserted:
 <Cache>
            <Name>FAILOVERMARKER</Name>
            <Description>To detect if a task needs to be repeated. Should never be evicted. </Description>
            <Type>distributed</Type>
            <SingleByteObjectSize>44</SingleByteObjectSize>
            <MultiByteObjectSize>44</MultiByteObjectSize>
            <ListSize>800</ListSize>
            <EvictionPolicy>LRU</EvictionPolicy>
 </Cache>

We can know for which space by the stack trace  "com.tibco.mdm.workflow.engine.FailoverMarkerCacheHelper.setupMarker(FailoverMarkerCacheHelper.java:51)"

Additional Information

Section "Configuration of TIBCO MDM with TIBCO ActiveSpaces" in MDM Installation and Configuration Guide.