Question sur les transactions
Posted in 2007
Topics: General Discussion
Translated from English by DrWatson — View original
Bonjour à tous, Nous sommes confrontés à la situation transactionnelle suivante. Est-il possible, au sein d'une transaction « begin work » ...... « commit work », d'insérer des enregistrements dans une table de journalisation et de faire en sorte que ces enregistrements soient validés (commit), que la transaction soit annulée (rollback) ou validée ? En fait, il serait particulièrement intéressant de disposer de ces enregistrements dans la table de journalisation justement lorsque la transaction fait l'objet d'un rollback. Des idées ? --Dave
Le 24 avr. 2007 à 07:28:58 -0700, Dave <In4MixDBA@gmail.com> a écrit : > Bonjour à tous, > > Nous sommes confrontés à la situation transactionnelle suivante. Est-il possible, au sein > d'une transaction, « begin work » ...... « commit work », d'insérer des enregistrements dans une > table de journalisation et de faire en sorte que ces enregistrements soient validés, que la > transaction soit annulée (rollback) ou validée (commit). En fait, il serait > particulièrement utile de disposer de ces enregistrements dans la table de journalisation lorsque la > transaction est annulée. > > Des idées ? > > --Dave > > _______________________________________________ > Informix-list mailing list > Informix-list@iiug.org > http://www.iiug.org/mailman/listinfo/informix-list > Dave Il n'est pas possible d'avoir deux niveaux de transaction ; ce que vous pourriez faire, c'est écrire un enregistrement de journal de succès à l'intérieur de la transaction, puis écrire un enregistrement de journal d'échec dans une transaction distincte, dans le cadre de votre routine d'échec/de rollback. Si vous annulez une transaction, alors tout ce qui se trouve dans cette transaction (y compris une validation en deux phases sur une base de données distante) est annulé. Keith
Dave a écrit : > Bonjour à tous, > > Nous sommes confrontés à la situation transactionnelle suivante. Est-il > possible, au sein d'une transaction « begin work » ...... « commit work », > d'insérer des enregistrements dans une table de journalisation et de faire > en sorte que ces enregistrements soient validés, que la transaction soit > annulée (rollback) ou validée (commit). En fait, il serait particulièrement > utile de disposer de ces enregistrements dans la table de journalisation > lorsque la transaction est annulée. Écrivez les enregistrements de journalisation dans une connexion distincte. Si vous ouvrez les connexions avec la clause 'WITH CONCURRENT TRANSACTIONS', vous pouvez basculer de l'une à l'autre pendant la transaction dans la première et écrire dans la table de journalisation dans la seconde. Art S. Kagel
Dave a écrit : > Bonjour à tous, > > Nous sommes confrontés à la situation transactionnelle suivante. Est-il possible, au sein d'une > transaction, « begin work » ...... « commit work », d'insérer des enregistrements dans une > table de journalisation et de faire en sorte que ces enregistrements soient validés, que la > transaction soit annulée (rollback) ou validée (commit). En réalité, il serait > particulièrement utile de disposer de ces enregistrements dans la table de journalisation lorsque la > transaction est annulée. > > Des idées ? > > --Dave > Si vous utilisez IDS 9.2 ou (de préférence bien) plus récent, créez votre table de journalisation en tant que table RAW. Tout ce qui est inséré dans les tables RAW se situe en dehors de la transaction et ne peut pas être annulé. Claus
Le 24 avril à 10 h 28, Dave <In4Mix...@gmail.com> a écrit : > Bonjour à tous, > > Nous sommes confrontés à la situation transactionnelle suivante. Est-il possible, au sein > d'une transaction, « begin work » ......« commit work », d'insérer des enregistrements dans une > table de journalisation et de faire en sorte que ces enregistrements soient validés, que la > transaction soit annulée (rollback) ou validée (commit). En fait, il serait > particulièrement utile de disposer de ces enregistrements dans la table de journalisation lorsque la > transaction est annulée. > > Des idées ? > > --Dave Informix ne prend pas en charge l'imbrication des transactions. Vous pouvez écrire ces enregistrements dans une table de type RAW, ou utiliser une connexion distincte pour ces enregistrements. Zachi.