Oracle AQ에 새로운 것이지만, 실제로 작업하고있는 프로젝트에서 쉽게 작업을 수행해야하는 것처럼 보입니다.다중 소비자 대기열에서 Oracle AQ가 느린 이유는 무엇입니까?
여러 개의 영구 가입자가있는 대기열을 만들고 싶지만 두 명의 가입자가 청취하면 모든 것이 느려지는 것으로 나타났습니다.
한 명의 청취자가 듣게되면 모든 것이 빠릅니다. 큐에 새 메시지를 만들고 거의 즉시 리스너가 소비합니다.
그런 다음 다른 서버의 다른 수신기를 추가합니다. 즉시 오라클은 속도가 느려집니다. 대기열에 메시지를 작성하는 데 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
Oracle 10g –
사용 AQ_TM_PROCESSES이 (가) 설정되지 않았습니다 –