Bonjour à tous...
Nous avons un traitement batch qui utilise l'ordre :
en début de programmeCitation:
SET 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 :lol:
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... :D
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 !