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

OIC - how can I use XSLT functions to remove leading zeros from numeric and alphanumeric fields?

To remove leading zeros from an numeric field in Oracle Integration Cloud (OIC) using XSLT, you can Use number() Function The number() funct...