Articles of transactions

MSMQ receive with transaction – restauration ne rendant pas le message disponible à nouveau

J’ai ceci dans une classe appelée “MessageQueueReceive”. public MessageQueueTransaction BlockingReceive(out Message message) { MessageQueueTransaction tran = null; message = null; tran = new MessageQueueTransaction(); tran.Begin(); try { message = Queue.Receive(new TimeSpan(0, 0, 5), tran); } catch (MessageQueueException ex) { // If the exception was a timeout, then just continue // otherwise re-raise it. if (ex.MessageQueueErrorCode […]

Effectuer une transaction Oracle en utilisant C # et ODP.NET

Je suis confus. À première vue, effectuer une transaction en C # semble simple. D’ici: http://docs.oracle.com/cd/B19306_01/win.102/b14307/OracleTransactionClass.htm ssortingng constr = “User Id=scott;Password=tiger;Data Source=oracle”; OracleConnection con = new OracleConnection(constr); con.Open(); OracleCommand cmd = con.CreateCommand(); cmd.CommandText = “SELECT COUNT(*) FROM MyTable”; // Start a transaction OracleTransaction txn = con.BeginTransaction( IsolationLevel.ReadCommitted); try { // Insert the same row twice […]

Alternative TransactionScope sans DTC

existe-t-il une alternative à transactionScope qui ne nécessite pas d’activer le DTC? Dans la transaction, je dois effectuer deux opérations: Créer un utilisateur (à l’aide de l’appartenance – fournisseur d’adhésion SQL) Effectuez une opération d’insertion.

L’intégrité de ma transaction est perdue avec l’exception «TransactionInDoubtException»

J’ai un code qui essaye d’insérer des entrées étendues dans une transaction MSDTC et s’il y a un échec d’insertion, l’insertion est retentée jusqu’à un seuil spécifique. Voici le code: while(!SaveToDb){ ……. Thread.Sleep(TimeSpan.FromMinutes(AppConfiguration.RetryInsertionDuringFailureIntervalInMin)); } private bool SaveToDb() { try { …… using (var scope = new TransactionScope(TransactionScopeOption.Required, option)) { Context.SaveEmail(_emailInfoList); Context.SaveSyncState(syncState); scope.Complete(); return true; } […]

Accéder à la limite d’insertion de transaction dans la firebase database

Y a-t-il une limite au nombre d’insertions que vous pouvez effectuer dans une transaction Access avant de devoir valider ou avant qu’Access / Jet renvoie une erreur? J’exécute actuellement le code suivant dans l’espoir de déterminer quel est ce maximum. OleDbConnection cn = new OleDbConnection( @”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\myAccessFile.accdb;Persist Security Info=False;”); try { cn.Open(); oleCommand = new […]

Comment “transiger” une opération IO et une exécution de firebase database?

J’ai un service qui contient un processeur en cours d’exécution, et il fait deux choses: 1- Create a file in a directory. 2- Set your own status to “Processed”. Mais, lorsque le service est arrêté exactement au milieu du traitement, le fichier est créé dans le répertoire, mais le processus n’est pas finalisé, comme ceci: […]

Retour de rendement d’un bloc try / catch

Comme Eric Lippert l’a décrit dans cet article , le yield return n’est pas autorisé dans try/catch clauses try/catch . Existe-t-il un moyen agréable d’obtenir quelque chose comme ceci sans avoir à écrire mon propre IEnumerator à la main: public IEnumerable GetData() { var transaction = Session.BeginTransaction()); try { IQuery q = CreateQuery(session); foreach (var […]

Devrais-je appeler Parameters.Clear lors de la réutilisation d’un SqlCommand avec une transaction?

Je code une transaction manuellement dans ADO.NET. L’exemple que je travaille à partir de réutilise SqlCommand qui semble être une bonne idée. Cependant, j’ai ajouté des parameters à ma commande. Ma question est la suivante: dans le code suivant, command.Parameters.Clear() correct? Ou est-ce que je me trompe? using (var connection = new SqlConnection(EomAppCommon.EomAppSettings.ConnStr)) { connection.Open(); […]

Une transaction peut-elle être annulée une fois qu’elle est validée et que la connexion est fermée?

Une transaction peut-elle être annulée une fois qu’elle est validée et que la connexion est fermée? finally { // Commit the transaction. sqlTran.Commit(); reader.Close(); reader.Dispose(); conn.Close(); conn.Dispose(); } Je voudrais donner à l’utilisateur une option de Opps! annulez-le . Donc, s’il est engagé, peut-il être annulé?

Comment exécuter des transactions (ou plusieurs requêtes SQL) dans Firebird en utilisant c #

J’ai essayé plusieurs façons, y compris sur SO. Le code MYSQL suivant ne fonctionne pas dans Firebird: CREATE TABLE publications ( INT NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id`), filename varchar(500) not null unique, title varchar(500) DEFAULT NULL, authors varchar(1000) DEFAULT NULL, uploader int DEFAULT NULL, keywords varchar(500) DEFAULT NULL, rawtext text, lastmodified timestamp default […]