|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : novembre 2005 Messages : 32 ![]() |
Bonjour tout le monde.
J'ai un problème assez compliqué à résoudre. J'ai une application sous unix en pro*c réalisant des transactions sous Oracle. L'application me retourne une erreur ORA - 24761 : transaction rolled back dans un cas particulier. En effet, nous demandons à l'application de transferer 2600 dossiers en une seul transactions. Ce qui implique un nombre tres importants de requete (>10000). Un commit est réalisé à la fin de la transaction pour la validé. Hors ce commit n'arrive jamais, car une erreur apparait avant... Lorsque l'application arrive aux environs du dossier 1850 à 1950(environ une minute de traitement), Oracle lui retourne une Erreur ORA-24761 : Transaction rolled back. Je me suis dit, que cela devait venir du fait d'une saturation de la memoire Oracle par une si grande transaction. La saturation de la memoire force Oracle à faire un rollback. Hors, dans les log d'Oracle Server, aucune erreur de memoire ou de quoi que ce soit d'autre n'est enregistré pour cette transaction. Nous avons verifié la memoire, elle est autoextand, et peux donc atteindre plusieur giga. D'ou peut venir le problème ? pourquoi Oracle force t'il le rollback? que faire :/ ? Merci d'avance ! |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
http://www.developpez.net/forums/showthread.php?t=30569
il faudrait aussi nous dire qu'elle erreur fait planter le programme, là un debug me parait obligatoire... je sens bien que la base n'y est pour rien |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : novembre 2005 Messages : 32 ![]() |
L'application tourne depuis 5 an sur un serveur unix. Et c'est la premiere fois que l'on a à faire un transfert aussi important.
La version d'Oracle est : Oracle 8i Enterprise Edition. L'erreur qui fait planter le programme, c'est l'erreur ORA-24761. Soit, lorsqu'on ajoute une nouvelle requete à la transaction apres une dizaine de millier, Oracle nous dit que la transaction a été rollbacker et donc met le transfert en echec. Ce n'est pas l'application qui a exécuter le rollback, ni une autre session sur cette transaction, il semblerait que ce soit Oracle qui l'ait fait. Soit pour une raison de manque de mémoire. Soit à cause d'un time out. Visiblement, ca serait pas un probleme de mémoire. Mais à cause d'un timeout (transaction ouverte depuis trop lgt) . Peut on augmenter le delay de ce time out ? |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Il y a très peu d'information sur le web et encore moins sur Metalink sur cette erreur.
Attention aussi au fait que la version 8.1.7: -n'aura plus de extended maintenance support dès le 01/01/2007 -n'aura plus qu'un extended support jusqu'au 31/12/2007. Concrètement, les bugs ne seront plus corrigés et les problèmes ne seront plus escaladés: Oracle assistera pour des upgrades vers la 9i ou pour mettre en place des contournements. Si nécessaire: essayez d'escalader le problème avant le 31-12 chez Oracle et préparez vous rapidement à faire un upgrade vers la 9i. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com