2009-09-30 4 views
1

J'ai une application fonctionnant sur Oracle 10g en utilisant Hibernate. Je me demande s'il est possible de rendre l'application hautement disponible en ce qui concerne les échecs de base de données sans aucun changement de code du côté de l'application, en utilisant Oracle RAC.Oracle RAC autorise-t-il des basculements complètement transparents entre les nœuds?

J'ai deux nœuds Oracle RAC pour l'application, et j'aimerais idéalement pouvoir retirer la prise sur l'un des nœuds et faire en sorte que l'application continue à fonctionner, sans aucune exception atteignant le code de l'application.

Mon application envoie des requêtes select, insert, update et delete à la base de données. J'ai lu à propos de Transparent Application Failover, mais les sites que j'ai trouvés impliquent que seules les requêtes select peuvent être échouées de manière transparente, et que tous les autres types de requêtes entraîneront des exceptions et la requête doit être re -réalisé. Je préfèrerais éviter cela car je ne veux pas ajouter de traitement d'exception à chaque partie de ma base de code qui fait des requêtes de base de données.

+0

@ginsoakedboy - vous avez raison, je n'avais pas mon cerveau complètement engagé avant de répondre - j'ai effacé ma réponse – dpbradley

+0

Merci de vous être impliqué @dpbradley - alors que pensez-vous, pensez-vous que la réponse est non? Je crains que ce soit mais j'espère que quelqu'un a une baguette magique :) – user181903

+0

J'ai peur que votre recherche originale était correcte :-( – dpbradley

Répondre

3

Désolé, mais pas vraiment. Vous regardez Transparent Application Failover (TAF) et Oracle ne prend actuellement en charge TAF pour rien d'autre que des instructions SELECT. DML devra être redémarré. Jetez un oeil à l'article this pour une bonne explication de ce que RAC (et TAF) peut faire pour vous.

Quoi qu'il en soit, vous devrez être en mesure de gérer les échecs de transaction. C'est une grande raison pour laquelle nous avons des transactions ... afin que nous puissions gérer les choses échouant gracieusement. Réalisez également qu'une panne matérielle (sur laquelle RAC vous protège) n'est qu'une des nombreuses raisons pour lesquelles une transaction peut échouer.

Bonne chance, bon codage!

Questions connexes