public void FinishList(bool IsSuccessfull) { if (IsSuccessfull) { bool prepareSuccessfull = true; List <string> failedServices = new List <string>(); TranscationCoordinatorCheck proxy = new TranscationCoordinatorCheck("net.tcp://localhost:19506/ITransactionCheck"); Console.WriteLine("Prepare in client: " + "net.tcp://localhost:19506/ITransactionCheck/NMS"); result = proxy.Prepare(); if (result == false) { prepareSuccessfull = false; failedServices.Add("net.tcp://localhost:19506/ITransactionCheck"); } if (!prepareSuccessfull) { Console.WriteLine(DateTime.Now + ": Distributed transaction failed. Roolback in progress."); Rollback(); } else { Console.WriteLine(DateTime.Now + ": Distributed transaction successfull. Commit in progress."); Commit(); } } }
private void Commit() { TranscationCoordinatorCheck proxy_NMS = new TranscationCoordinatorCheck("net.tcp://localhost:19506/ITransactionCheck"); proxy_NMS.Commit(); Console.WriteLine(DateTime.Now + ": Distributed transaction successfull. Commit on NMS is done."); TranscationCoordinatorCheck proxy_CE = new TranscationCoordinatorCheck("net.tcp://localhost:19516/ITransactionCheck"); proxy_CE.Commit(); Console.WriteLine(DateTime.Now + ": Distributed transaction successfull. Commit on CE is done."); TranscationCoordinatorCheck proxy_SCADA = new TranscationCoordinatorCheck("net.tcp://localhost:19518/ITransactionCheck"); proxy_SCADA.Commit(); Console.WriteLine(DateTime.Now + ": Distributed transaction successfull. Commit on SCADA is done."); }
private void Rollback() { TranscationCoordinatorCheck proxy = new TranscationCoordinatorCheck("net.tcp://localhost:19506/ITransactionCheck"); proxy.Rollback(); Console.WriteLine(DateTime.Now + ": Distributed transaction successfull. Rollback on NMS is done."); TranscationCoordinatorCheck proxy1 = new TranscationCoordinatorCheck("net.tcp://localhost:19516/ITransactionCheck"); proxy1.Rollback(); Console.WriteLine(DateTime.Now + ": Distributed transaction failed. Rollback on CE is done."); TranscationCoordinatorCheck proxy2 = new TranscationCoordinatorCheck("net.tcp://localhost:19518/ITransactionCheck"); proxy2.Rollback(); Console.WriteLine(DateTime.Now + ": Distributed transaction failed. Rollback on SCADA is done."); }