weblogic.messaging.kernel.QuotaException: Quota Blocking Time Exceeded And No Quota Available (Doc ID 2252621.1)

Last updated on AUGUST 10, 2017

Applies to:

Oracle WebLogic Server - Version 12.2.1.0.0 and later
Information in this document applies to any platform.

Symptoms

In a SOA environment, running fine for months, system started to complain that jms/fabric/EDNTopic reached a 50000 messages quota, throwing the following error:

<Feb 16, 2017 2:45:13 PM CST> <Error> <oracle.soa.adapter.jms.outbound> <BEA-000000> <JMSMessageProducer_produce: [default destination = jms/fabric/EDNTopic]:weblogic.messaging.kernel.QuotaException: Quota blocking time exceeded and no quota available>
<Feb 16, 2017 2:45:13 PM CST> <Error> <oracle.soa.adapter.jms.outbound> <BEA-000000> <JMSMessageProducer_produce: [default destination = jms/fabric/EDNTopic]:weblogic.messaging.kernel.QuotaException: Quota blocking time exceeded and no quota available>
<Feb 16, 2017 2:45:13 PM CST> <Error> <oracle.soa.adapter.jms> <BEA-000000> <JmsProducer_execute:[default destination = jms/fabric/EDNTopic]: A resource exception occurred while producing message
BINDING.JCA-12165
ERRJMS_PROVIDER_ERR.
ERRJMS_PROVIDER_ERR.
Unable to produce message due to JMS provider internal error.
Please examine the log file to determine the problem.

at oracle.tip.adapter.jms.JMS.JMSMessageProducer.produce(JMSMessageProducer.java:247)
at oracle.tip.adapter.jms.outbound.JmsProducer.execute(JmsProducer.java:342)
at oracle.tip.adapter.jms.WLSJmsInvoker$1.run(WLSJmsInvoker.java:97)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.security.Security.runAs(Security.java:61)
at oracle.tip.adapter.jms.WLSJmsInvoker.invoke(WLSJmsInvoker.java:93)
...
Caused By: javax.jms.ResourceAllocationException: weblogic.messaging.kernel.QuotaException: Quota blocking time exceeded and no quota available
at weblogic.messaging.dispatcher.Request.getResult(Request.java:522)
at weblogic.jms.dispatcher.Request.getResult(Request.java:64)
at weblogic.jms.frontend.FEProducer.sendRetryDestination(FEProducer.java:1166)
at weblogic.jms.frontend.FEProducer.send(FEProducer.java:1590)
at weblogic.jms.frontend.FEProducer.invoke(FEProducer.java:1663)
at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:1028)
at weblogic.messaging.dispatcher.DispatcherImpl.syncRequest(DispatcherImpl.java:301)
at weblogic.messaging.dispatcher.DispatcherImpl.dispatchSyncTran(DispatcherImpl.java:363)
at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncTran(DispatcherAdapter.java:52)
at weblogic.messaging.dispatcher.DispatcherPartitionAdapter.dispatchSyncTran(DispatcherPartitionAdapter.java:77)
at weblogic.jms.client.JMSProducer.toFEProducer(JMSProducer.java:1538)
at weblogic.jms.client.JMSProducer.deliveryInternalUnified(JMSProducer.java:932)
at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:612)
at weblogic.jms.client.JMSProducer.sendWithListenerUnified(JMSProducer.java:431)
at weblogic.jms.client.JMSProducer.sendWithListener(JMSProducer.java:419)
at weblogic.jms.client.JMSProducer.send(JMSProducer.java:412)
at weblogic.jms.client.WLProducerImpl.send(WLProducerImpl.java:974)
at weblogic.jms.client.WLProducerImpl.publish(WLProducerImpl.java:126)
at oracle.tip.adapter.jms.JMS.JMSMessageProducer.produce(JMSMessageProducer.java:218)
at oracle.tip.adapter.jms.outbound.JmsProducer.execute(JmsProducer.java:342)
at oracle.tip.adapter.jms.WLSJmsInvoker$1.run(WLSJmsInvoker.java:97)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.security.Security.runAs(Security.java:61)
at oracle.tip.adapter.jms.WLSJmsInvoker.invoke(WLSJmsInvoker.java:93)
at oracle.tip.adapter.jms.JmsInteraction.executeProduce(JmsInteraction.java:177)
at oracle.tip.adapter.jms.JmsInteraction.execute(JmsInteraction.java:148)
at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.performOperation(WSIFOperation_JCA.java:574)
at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.executeOperation(WSIFOperation_JCA.java:364)
at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:344)
at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.invokeWsifProvider(JCABindingReferenceImpl.java:418)
at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.post(JCABindingReferenceImpl.java:252)
at oracle.integration.platform.blocks.event.jms2.EdnBus12c.publishViaJcaInterface(EdnBus12c.java:1558)
at oracle.integration.platform.blocks.event.jms2.EdnBus12c.publish(EdnBus12c.java:1370)
at oracle.integration.platform.blocks.event.jms2.EdnBus12c.publish(EdnBus12c.java:1294)
at oracle.tip.mediator.serviceEngine.MediatorServiceEngine.publishEvent(MediatorServiceEngine.java:2258)
at oracle.tip.mediator.service.EventPublisher.raiseEvent(EventPublisher.java:165)
at oracle.tip.mediator.service.EventPublisher.process(EventPublisher.java:81)
at oracle.tip.mediator.service.ActionProcessor.onMessage(ActionProcessor.java:64)
at oracle.tip.mediator.dispatch.MessageDispatcher.executeCase(MessageDispatcher.java:167)
at oracle.tip.mediator.dispatch.DeferredMessageDispatcher.processCase(DeferredMessageDispatcher.java:222)
at oracle.tip.mediator.dispatch.DeferredMessageDispatcher.processCases(DeferredMessageDispatcher.java:175)
at oracle.tip.mediator.dispatch.DeferredMessageDispatcher.dispatch(DeferredMessageDispatcher.java:141)
at oracle.tip.mediator.dispatch.DeferredMessageHandler.handleMessage(DeferredMessageHandler.java:59)
at oracle.tip.mediator.dispatch.db.DeferredDBWorker.handleMessage(DeferredDBWorker.java:155)
at oracle.tip.mediator.common.listener.DBWorker.process(DBWorker.java:86)
at oracle.tip.mediator.common.listener.AbstractWorker.run(AbstractWorker.java:81)
at oracle.tip.mediator.serviceEngine.MediatorWorkManagerExecutor$W.run(MediatorWorkManagerExecutor.java:329)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:207)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)
Caused By: javax.jms.ResourceAllocationException: weblogic.messaging.kernel.QuotaException: Quota blocking time exceeded and no quota available
at weblogic.utils.StackTraceDisabled.unknownMethod()

As a workaround, managed server was restarted, but few days later, same issue reoccurred, causing that new messages are not processed.

Note that last part of the exception is hidden under the "at weblogic.utils.StackTraceDisabled.unknownMethod()" message, now allowing to review the rest of the exception. This would be a new feature introduced on WLS12.1.2 and upper for production mode, covered by <Note 1624363.1>. Full stack trace is seen if this flag is enabled -Dweblogic.PrintStackTraceInProduction=true.

 

Changes

Issue affected to dist_EDNTopic_auto topic, which quota was configured to hold a maximum of 50000 messages as seen in config/config.xml file for this WLS domain:

When monitoring this queue no pending message was seen.

No known change.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms