2017-06-29 2 views
-1

Je n'ai absolument aucune connaissance sur les serveurs, mais je dois résoudre ce problème par moi-même. Si quelqu'un peut me pointer vers où je commence, ce serait vraiment apprécié ...WebLogic: la JVM a échoué lorsqu'une base de données s'est déconnectée. Comment puis-je empêcher cela?

Alors voici ce qui s'est passé .. dans mon serveur weblogic, il y a quelques applications déployées en tant que fichiers WAR .. Je vais appeler ces applications A , B, C, D. Ils utilisent tous JNDI pour se connecter à une base de données.

Disons que ... A et B utilise JNDI appelé "123" pour se connecter à Oracle DB "bonjour" & C et D utilise JNDI appelé "456" pour se connecter à Oracle DB "monde"


Lorsque le DB "hello" s'est déconnecté pour maintenance, A & B a échoué en raison d'aucune connexion, mais C & D n'a pas été affecté. Mais, quand la DB "monde" est tombé en panne pour la maintenance, l'application entière A ~ D a échoué et le jvm est allé à l'état "inatteignable" .. Je étais pas en mesure de reprendre le jvm (il était dit jvm était dans l'état imcomplete). J'ai dû rebondir le JVM pour le ramener. Après que j'ai rebondi le jvm, j'ai pu obtenir les applications, A & B, fonctionnant pendant que la DB "monde" était sur la maintenance ..

Je devine qu'il y a une configuration supplémentaire faite sur le serveur pour la DB "world", comme continuer à essayer de se connecter indéfiniment ce qui a fini par échouer toute la JVM .. Mais j'ai très peu de connaissances sur le fonctionnement du serveur, et je n'ai aucune idée par où commencer ou regarder pour éviter que cela se produise à l'avenir ...


Toute aide est très appréciée. Je vous remercie.

+0

Cette question est beaucoup trop large. Un premier indice: procurez-vous une copie de 'Release it' de Michael Nygard. Ce livre parle abondamment des modèles qui empêchent les systèmes entiers de tomber en panne lorsque les sous-systèmes se fissurent. Et puis vous devrez probablement passer des mois à creuser dans le code de l'application et à réparer les choses. Ou vous obtenez un nouvel emploi qui correspond mieux à vos compétences. – GhostCat

+0

Salut. Merci pour la recommandation de livre. Je vais certainement prendre le temps d'y jeter un coup d'œil. Je sais que cette question est vaste et espérait obtenir des idées par où commencer. Et oui, je ne suis certainement pas embauché comme administrateur de serveur, mais les choses ne vont pas toujours comme il est dit;) – RedA

+0

Il s'agit d'améliorer le service - donc à la fin c'est une position de développement. Vous pourriez en apprendre beaucoup là-bas - mais c'est une position difficile dans laquelle vous vous trouvez. Parce que les gens qui vous y mettent doivent être a) ne pas savoir ce qu'ils font ou b) désespérés. Ils vous donneront probablement quelques semaines et commenceront à vous blâmer pour tout ce qui ne va pas. Juste en disant: soyez prêt pour beaucoup de problèmes à différents niveaux. – GhostCat

Répondre

0

Habituellement, il nécessite des architectures de base de données master-maître, maître-esclave ou cluster pour créer une telle sauvegarde (modèle de base de données distribuée) ou pour fournir une haute disponibilité et une évolutivité. Cela dépend vraiment de ce dont vous ou votre organisation a besoin. Ces réponses peuvent vous aider: Master-master vs master-slave database architecture?

Le moyen le plus simple pourrait être d'embaucher un service de cloud puisqu'ils traitent un tel problème en votre nom.

+0

Merci pour la recommandation. Mais malheureusement, je n'ai aucun contrôle sur la DB. – RedA