Java, en tant que langage, a été conçu pour rendre impossible qu'un code développé par l'utilisateur provoque un plantage de l'application. Toute erreur devait se traduire par le lancement d'une exception propre et nette, qui pouvait être interceptée, puis traitée de manière appropriée. La réalité, comme le savent tous les développeurs Java de longue date ou les administrateurs système, est que la machine virtuelle Java (JVM) elle-même peut planter, et plante effectivement. Cela s'explique par le fait que la JVM est elle-même un programme écrit en code natif et que, comme tout programme très volumineux et complexe, la JVM contient quelques bogues.
Comme n'importe quel programme, lorsque Java plante, il meurt simplement et disparaît, emportant votre application avec lui. Cela peut être désastreux si l'application est un système critique. L'application sera hors service, et la panne peut ne pas être remarquée avant qu'un client ne visite votre site Web, ou que le service des expéditions n'appelle parce qu'il n'a reçu aucune commande d'expédition depuis quelques heures. Une fois que l'arrêt de l'application a été détecté, il peut encore s'écouler une heure ou deux avant que l'administrateur système n'intervienne pour la redémarrer.
- Solution
- Présentation technique
- Essayer
- Dépannage
- Délai de redémarrage
- Désactivation des redémarrages
- Réagir aux événements
- Notification par e-mail
- Récupération du service
- Propriétés de référence
Solution |
||
|
La solution à ce problème consiste à disposer d'une application de surveillance, possédant une connaissance approfondie du fonctionnement de Java. Elle doit être suffisamment fiable pour surveiller votre application Java 24 heures sur 24, 365 jours par an, et prendre automatiquement en charge les problèmes lorsqu'ils surviennent. Le Java Service Wrapper contient plusieurs fonctionnalités de surveillance, dont la capacité à détecter lorsqu'une JVM a planté. Il surveille constamment la JVM et est capable de reconnaître instantanément lorsqu'elle a planté. Dès qu'un plantage est détecté, le Java Service Wrapper redémarre automatiquement la JVM afin de remettre le système en service avec un minimum de délai. Enfin, vous pouvez configurer une notification par e-mail à envoyer à l'administrateur système afin de s'assurer que tout est de nouveau opérationnel. L'ensemble du processus de détection des plantages, de récupération et de notification est entièrement géré par le Java Service Wrapper automatiquement, sans qu'un opérateur humain n'ait besoin d'intervenir. Lorsqu'un plantage est détecté, le Java Service Wrapper enregistrera quelque chose comme ce qui suit dans le fichier journal :
Bien que le message ci-dessus puisse sembler un peu cryptique, il s'agit de la tentative de la JVM de vous fournir des informations sur le plantage. Comme cette sortie est envoyée vers la console à un niveau très bas par la JVM, il est impossible pour tout outil de journalisation basé sur Java d'enregistrer ces informations. Notez que le Wrapper est capable de capturer 100 % de la sortie console de la JVM et de s'assurer que le tout est conservé dans le fichier journal. Sans le Wrapper, non seulement votre application resterait hors service, mais l'explication de ce qui s'est passé serait également perdue. Idéalement, tout plantage devrait être corrigé dès que possible afin d'éviter de futurs plantages. Cependant, comme de nombreux plantages sont causés par des interactions obscures entre du code Java parfaitement valide et des bogues dans la JVM elle-même, il peut souvent falloir des semaines ou des mois aux développeurs pour identifier le problème et le contourner. Le Wrapper vous aide à détecter les problèmes critiques, notamment : |
Présentation technique |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
La détection des plantages dans le Wrapper est toujours activée, car la vérification des plantages n'impose aucune charge supplémentaire à la JVM ou au système. Comme les plantages se produisent ou non, il n'existe aucun moyen de désactiver leur détection. Il est toutefois possible de contrôler ce que fait le Wrapper lorsqu'un plantage se produit. Lorsqu'un plantage est détecté, le Wrapper attendra d'abord un moment (5 secondes par défaut) afin de permettre à la mémoire et aux ressources système de revenir à la normale, puis, après toute notification configurée, lancera une nouvelle instance de JVM pour remettre votre application en service sans délai. Comme décrit ci-dessous, il est possible de désactiver cette fonctionnalité de redémarrage automatique si nécessaire.
|
Référence : Plantages |
|
Le Java Service Wrapper fournit un ensemble complet de propriétés de configuration qui vous permettent d'adapter le Wrapper à vos besoins exacts. Veuillez consulter la documentation des propriétés individuelles pour découvrir toutes les possibilités au-delà des exemples présentés ci-dessus.
|
















