Bonjour à tous...
Nous avons un traitement batch qui utilise l'ordre :
en début de programmeSET TRANSACTION USE ROLLBACK SEGMENT RBATCH
Ce traitement, suivant les caisses, tourne soit une instance 8i, soit sur une 9i => OK
Sur les caisses en 8i => Jamais de problème
Sur une de nos caisses en 9i, de façon aléatoire, le traitement dure 4 heures et se plante car le TS UNDO (bien que le traitement utilise en entrée le SET TRANSACTION USE ROLLBACK SEGMENT RBATCH[) s'étends jusqu'à 17 gigas et atteind la limite du file-system
Quand nous relançons le traitement le matin, il s'exécute toujours normalement en 10 minutes...
Nous pensons que le traitement se plante au COMMIT de fin de programme, lorsqu'il 'libère' les rollback segments...
Ce que nous en comprenons pas c'est que :
1°) Le UNDO grossit démesurément alors que la transaction utilise des Rollback segments... pourquoi ?
2°) Nous pensons que le commit en libérant les Rollbacks segments, dérègle la gestion des UNDO, et de façon démesurée, écrit sur les UNDO jusqu'au plantage...
Pouvez-vous m'aider pour trouver une piste... et répondre à mes 2 question ?
Merci encore pour vos aides !
Partager