Nous avons un système de messagerie basé sur Oracle AQ - il fonctionne très bien, enceing et deque sans aucun problème.Vérifie par programme si la file d'attente Oracle AQ existe
Maintenant nous avons reçu une requête pour ajouter des vérifications de santé avant le démarrage et pendant l'exécution, par exemple "vérifier si la file existe réellement pour l'utilisateur db fourni" et "vérifier périodiquement le nombre de messages dans la file d'attente". Ce dernier semble raisonnablement facile à résoudre, rechercher des queuetables, compter le nombre de messages, mais le premier me dérange. En parcourant la documentation et les méthodes disponibles de DatabaseMetaData
, je ne vois pas un moyen de réellement vérifier cela sans essayer de mettre en file d'attente/dequeue. La base de données me dit tout sur les tables, les clés, les schémas et ainsi de suite, mais je ne peux pas pour la vie de moi trouver des files d'attente. Bizarrement, je ne peux pas non plus trouver les queuetables, bien que ceux-ci ne puissent simplement pas être une "table" de la manière classique.
Ai-je raté quelque chose? L'information est-elle indisponible ou dans un autre endroit?
Ceci est normalement suffisant. Cependant, notez que dans certains cas, les statistiques de v $ aq peuvent être tout à fait fausses. La profondeur de la file d'attente peut être listée comme négative, par exemple, même s'il y a des données à lire. L'approche la plus sûre consiste à utiliser le compte select sur le filtrage de la table de file d'attente sur l'état. – user2612030