emergency

Débloquer en urgence une exploitation Generix

30/12/2010
Business

Une société de vente en ligne nous contacte un vendredi pour nous demander une intervention urgente : leur système de production sous Generix GCE connait des problèmes de production extrêmement graves ces derniers jours, touchant même la partie transactionnelle. Nous relevons le défi et analysons le problème, sachant que plusieurs autres DBA et consultants d'autres sociétés aient jeté l'éponge.

Contraintes

Ce Bug applicatif n'a pas de conséquences lorsque le volume des ventes est limité. Par contre, en période de fortes ventes, le batch dure bien plus longtemps et la saturation du CPU entraîne un retard considérable dans les autres batchs et rend le système inutilisable en journée.

Déroulement de l'intervention

Après des investigations approfondies, et des travaux menés en partie durant le week-end : la raison de l'écroulement du système est découverte. Un batch spécifique contient un énorme BUG : une boucle sans temporisation sur la lecture d'une ligne contenant un STATUS conditionnant la suite du traitement. Tant que le STATUS de cette ligne ne contient pas la bonne valeur, le programme boucle sur la lecture sans la moindre temporisation et sature complètement un des CPU du serveur Oracle. Une fois le problème identifié (boucle sur un SELECT sans temporisation) et corrigé (ajout d'une pause dans la boucle), tout rentre dans l'ordre.

Bilan de l'intervention

Le client est soulagé : sa production est à nouveau opérationnelle et ce, dans un temps record.

copy-link