Aujourd’hui j’ai était confronté à un problème qui concerne les durées des transactions avec l’objet TransactionScope.
Dans le cadre de la refonte d’une application (très) lourde nous commençons par réaliser des métriques très précises sur le fonctionnement de l’application. Un des traitements est extrêmement lourd et se termine en permanence par une exception de type TransactionInDoubtException avec pour innerException un timeout.
Après vérification des différents timeout et notamment celui du TransactionScope je me suis rendu compte que la valeur du timeout n’était pas utilisé par le framework et la transaction se terminait en 10 min.
Après avoir fait le tour du Web et des collègues, j’ai trouvé la solution qui consiste à modifier le timeout par défaut dans le fichier machine.config.
Je n’ai pas plus d’infos mais apparemment les personnes qui utilisaient le framework 2.0 avaient la possibilité de surcharger sans soucis ce timeout. Ce qui n’est plus le cas avec le framework 3.5 / 4.
Voici le code à rajouter au fichier machine.config (C:\Windows\Microsoft.NET\Framework\VOTRE_VERSION_DU_FRAMEWORK\Config)
<system.transactions>
<machineSettings maxTimeout="01:30:00" />
</system.transactions>




thank you a lot.
I solved the same issue with SAP Business Objects Enterprise XI R2