對Oracle AQ來說是新的,但它似乎應該能夠讓我正在開發的項目變得更容易。爲什麼我的Oracle AQ非常慢,多用戶隊列
我想創建一個擁有多個持久訂閱者的隊列,但是我發現在測試中,一旦有2個訂閱者正在收聽,一切都會變慢。
當我有一個訂閱者收聽時,一切都很快。我在隊列中創建新消息,幾乎立即被偵聽器使用。
然後我從另一臺服務器添加另一個偵聽器。 Oracle立即減速。在隊列中創建消息需要60多秒的時間。該消息直到幾分鐘後才被消耗。
我想知道,當隊列是多用戶時會有更多開銷嗎?僅當服務器啓動時纔會有開銷?或者它會一直在那裏?
我跑了第二個測試使用單消費者隊列,並沒有這些問題。
也許我在偵聽器配置中做了一些錯誤?
這是我建立了我的隊列表:
EXEC dbms_aqadm.create_queue_table(queue_table=>'MY_QUEUE_TABLE',
queue_payload_type=>'sys.aq$_jms_text_message',
multiple_consumers=>TRUE);
這是我的配置:
<jms:listener-container
connection-factory="AQjmsFactory"
container-type="default"
destination-type="durableTopic"
client-id="MY-ADAPTER"
acknowledge="transacted">
<jms:listener destination="MYA_INFO_QUEUE" ref="personUpdateListener" subscription="MYADAPTERJ"/>
<jms:listener destination="MYB_INFO_QUEUE" ref="courseUpdateListener" subscription="MYADAPTERJ"/>
</jms:listener-container>
什麼數據庫版本/補丁集? aq_tm_processes啓動參數的值是多少? – REW 2010-11-28 04:07:28
使用Oracle 10g – 2010-11-29 22:23:49