簡體   English   中英

將JMS和Oracle AQ與MDB一起使用時:ORA-25228在12分鍾內返回了1000次以上

[英]When using JMS and Oracle AQ with MDBs: ORA-25228 returned over 1000 times in 12 minutes

我在WebLogic 10.3上部署了一個MDB,它正在Oracle AQ上的JMS隊列上偵聽。

只要將消息放入隊列中,就可以毫無問題地處理消息。 但是,沒有消息,我可以看到WebLogic和Oracle AQ之間的通信中返回了Oracle錯誤:

ORA-25228: timeout or end-of-fetch during message dequeue 

這里的問題是,如果返回了該錯誤,則WebLogic會一次又一次發送請求,因此我可以看到WebLogic與Oracle AQ之間的通信量很大(12分鍾內有1000個請求)。

如果我使用Spring而不是消息驅動的Bean,我會看到相同的問題,但是,如果我將任務執行器(task-executor屬性)添加到jms偵聽器容器中,則通信看起來很好,並且WebLogic和Oracle AQ之間的通信會定期進行(每120秒)並返回以下狀態:

ORA-01403: no data found

任何人都有一個想法,如何正確配置MDB?

12分鍾內有1000個請求

您可以為AQ-QUEUE設置* Max_retries *和* Retry_delay *屬性,以設置重新交付限制和暫停beetwen重試。

BEGIN DBMS_AQADM.CREATE_QUEUE(
   Queue_name          => 'MY_QUEUE',
   Queue_table         => 'MY_Q_TABLE',
   Queue_type          =>  0,
   Max_retries         =>  5,
   Retry_delay         =>  0,
   retention_time      =>  86400,
   dependency_tracking =>  FALSE
END;
/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM