nouvelle à Oracle AQ, mais il semble que cela devrait vraiment faciliter les choses pour le projet sur lequel je travaille.Pourquoi mon Oracle AQ est-il si lent avec la file d'attente multi-consommateurs
Je veux créer une file d'attente avec plusieurs abonnés durables, mais j'ai trouvé dans les tests que tout ralentit une fois que 2 abonnés sont à l'écoute.
Quand un abonné écoute, tout est rapide. Je crée de nouveaux messages dans la file d'attente et presque instantanément ils sont consommés par l'auditeur. Puis j'ajoute un autre écouteur d'un autre serveur. Instantanément, Oracle ralentit. Il faut plus de 60 secondes pour créer un message dans la file d'attente. Le message n'est pas consommé avant quelques minutes.
Je me demande, y a-t-il beaucoup plus de frais généraux quand la file d'attente est multi-consommateur? Est-ce que c'est seulement quand le serveur démarre? Ou sera-t-il toujours là?
J'ai effectué un deuxième test en utilisant une file d'attente mono-consommateur et je n'avais pas ces problèmes.
Peut-être que j'ai fait quelque chose de mal dans ma configuration d'écoute?
Voici comment configurer ma table de file d'attente:
EXEC dbms_aqadm.create_queue_table(queue_table=>'MY_QUEUE_TABLE',
queue_payload_type=>'sys.aq$_jms_text_message',
multiple_consumers=>TRUE);
Et voici ma configuration:
<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>
Quelle version de base de données/groupe de correctifs? Quelle est la valeur du paramètre de démarrage aq_tm_processes? – REW
Utilisation d'Oracle 10g –
AQ_TM_PROCESSES n'est pas défini –