Thursday, September 12, 2019

12c SOA Weblogic - EDNTopic - Quota blocking time exceeded and no quota available

Error details:
Caused by: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: file://wsdl/eis/wls/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/wls/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] - WSIF JCA Execute of operation 'enqueue' failed due to: ERRJMS_PROVIDER_ERR.
ERRJMS_PROVIDER_ERR.
Unable to produce message due to JMS provider internal error.
; nested exception is:
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.
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)
... 66 more

Solution:
You're facing is a high count of EDN messages, a quota on the EDN topic and that somehow not all messages get deleted. Each EDN Quota has a limit setup the number of messages it can store in a destination. Whenever that message quota limit reached, the associated destination is unable to store more messages and gets failed.

Following way you can handle it.
  • Increasing the Quota message limit size
Increasing the Quota message limit size:

Step1: First check what the EDNQuota is set. by default it is set as 50000.
Steps to check EDNQuota from admin console:




Steps to check EDNQuota from EM console:




Step2: Check the current Persistent sores(used in the EDNTopic) read count



Step3: Change the EDN Quota Maximum messages to the expected message limit.
If  persistent store message read count > maximum EDNQuota messges, change the EDN Quota to the optimum needed level.

Go to Admin console⇾Services⇾Messaging⇾ JMS Module⇾ SOAJMSModule⇾ EDNQuota ⇾Messages Maximum.
In my case persistent store message read count=50090 > maximum EDNQuota messges(50000), so I changed it to 60000.

Note: There is another solution to this issue. We can use Time-To-Live Override parameter of the Topic as in expiry mode by setting the Time-To-live value to a sensible value, greater than 0. It's in mili seconds. I would say, regarding the meaning/purpose of EDN, that an event should be processed within 15 minutes. So a value of 900000 would be sensible in most cases. But the TTL parameter is in effect for new events. Existing events/messages in your store aren't affected.


No comments:

Post a Comment

Featured Post

11g to 12c OSB projects migration points

1. Export 11g OSB code and import in 12c Jdeveloper. Steps to import OSB project in Jdeveloper:   File⇾Import⇾Service Bus Resources⇾ Se...