private void UpdateRow(object param) { GFXDClientConnection conn = null; Product product = (Product)ObjectFactory.Create(ObjectType.Product); product.ProductId = Convert.ToInt64(param); try { conn = new GFXDClientConnection(ConnectionString); conn.Open(); conn.BeginGFXDTransaction(); DbController dbc = new DbController(conn); dbc.UpdateProduct(product); Product updatedProd = dbc.GetProduct(product.ProductId); conn.Commit(); if (!product.Validate(updatedProd)) Fail("Product update validation failed."); } catch(GFXDException se) { if(!se.State.Equals("X0Z02")) Fail(se); conn.Rollback(); } catch (Exception e) { Fail(e); conn.Rollback(); } }
public void ExcuteTransaction(List<string> tables) { try { using (var conn = new GFXDClientConnection(ConnectionString)) { // Open connection, disable auto-commit, and start transaction conn.Open(); conn.AutoCommit = false; conn.BeginGFXDTransaction(IsolationLevel.ReadCommitted); GFXDCommand cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; for (int i = 0; i < tables.Count; i++) { string[] words = tables[i].Split('.'); cmd.CommandText = "Select * from " + tables[i] + " order by " + words[1] + "ID"; ; var adapter = cmd.CreateDataAdapter(); var table = new DataTable(tables[i]); adapter.Fill(table); int cnt = table.Rows.Count; var idx = (int)table.Rows[cnt - 1].ItemArray[0]; var builder = new GFXDCommandBuilder(adapter); adapter.InsertCommand = builder.GetInsertCommand(); // Create new product row for (int ctx = 0; ctx < 10000; ctx++) { DataRow row = table.NewRow(); row[0] = ++idx; for (int j = 1; j < (table.Rows[cnt - 1].ItemArray.Count()); j++) { row[j] = table.Rows[cnt - 1].ItemArray[j]; } table.Rows.Add(row); } // Update the underlying table adapter.Update(table); } // Commit transaction conn.Commit(); } } catch (GFXDException ex) { string err = ex.Message; } catch (Exception ex) { string err = ex.Message; } }
public void ExcuteTransaction(List <string> tables) { try { using (var conn = new GFXDClientConnection(ConnectionString)) { // Open connection, disable auto-commit, and start transaction conn.Open(); conn.AutoCommit = false; conn.BeginGFXDTransaction(IsolationLevel.ReadCommitted); GFXDCommand cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; for (int i = 0; i < tables.Count; i++) { string[] words = tables[i].Split('.'); cmd.CommandText = "Select * from " + tables[i] + " order by " + words[1] + "ID";; var adapter = cmd.CreateDataAdapter(); var table = new DataTable(tables[i]); adapter.Fill(table); int cnt = table.Rows.Count; var idx = (int)table.Rows[cnt - 1].ItemArray[0]; var builder = new GFXDCommandBuilder(adapter); adapter.InsertCommand = builder.GetInsertCommand(); // Create new product row for (int ctx = 0; ctx < 10000; ctx++) { DataRow row = table.NewRow(); row[0] = ++idx; for (int j = 1; j < (table.Rows[cnt - 1].ItemArray.Count()); j++) { row[j] = table.Rows[cnt - 1].ItemArray[j]; } table.Rows.Add(row); } // Update the underlying table adapter.Update(table); } // Commit transaction conn.Commit(); } } catch (GFXDException ex) { string err = ex.Message; } catch (Exception ex) { string err = ex.Message; } }
private void UpdateRow(object param) { GFXDClientConnection conn = null; Product product = (Product)ObjectFactory.Create(ObjectType.Product); product.ProductId = Convert.ToInt64(param); try { conn = new GFXDClientConnection(ConnectionString); conn.Open(); conn.BeginGFXDTransaction(); DbController dbc = new DbController(conn); dbc.UpdateProduct(product); Product updatedProd = dbc.GetProduct(product.ProductId); conn.Commit(); if (!product.Validate(updatedProd)) { Fail("Product update validation failed."); } } catch (GFXDException se) { if (!se.State.Equals("X0Z02")) { Fail(se); } conn.Rollback(); } catch (Exception e) { Fail(e); conn.Rollback(); } }
private void UpdateRow(object param) { GFXDClientConnection conn = null; long customerId = Convert.ToInt64(param); try { conn = new GFXDClientConnection(ConnectionString); conn.Open(); conn.AutoCommit = false; DbController dbc = new DbController(conn); Log(String.Format("Begin customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); conn.BeginGFXDTransaction(System.Data.IsolationLevel.ReadCommitted); Customer newCustData = (Customer)ObjectFactory.Create(ObjectType.Customer); newCustData.CustomerId = customerId; try { Log(String.Format("Try retrieving customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); Customer currCustData = dbc.GetCustomer(customerId); if (currCustData != null) { Log(String.Format("Successfully retrieved customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } else { Log(String.Format("Failed to customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } } catch (Exception e) { Log(String.Format("Failed to retrieve customer record. TID: [{0}]. {1}", Thread.CurrentThread.ManagedThreadId, DbHelper.GetExceptionDetails(e, new StringBuilder()).ToString())); } try { Log(String.Format("Try updating customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); if (dbc.UpdateCustomer(newCustData) >= 1) { if (updateStarted == true) { Fail("Expected conflict exception when attempt to update the same record"); conn.Rollback(); return; } else { updateStarted = true; Log(String.Format("Successfully updated customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } } else { Log(String.Format("Failed to update customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } } catch (GFXDException e) { if (e.State.Equals("X0Z02")) { Log(String.Format("Update conflict exception occurred as expected. TID: [{0}]. {1}", Thread.CurrentThread.ManagedThreadId, DbHelper.GetExceptionDetails(e, new StringBuilder()).ToString())); conn.Rollback(); return; } else { Fail("Expected conflict exception when attempt to update the same record"); conn.Rollback(); return; } } try { Log(String.Format("Try committing customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); conn.Commit(); Log(String.Format("Successfully committed customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } catch (Exception e) { conn.Rollback(); Log(String.Format("Failed to commit customer update transaction. TID: [{0}]. {1}", Thread.CurrentThread.ManagedThreadId, DbHelper.GetExceptionDetails(e, new StringBuilder()).ToString())); } Customer updatedCustData = dbc.GetCustomer(newCustData.CustomerId); if (!newCustData.Validate(updatedCustData)) { Fail(String.Format("Customer update validation failed [{0}]", Thread.CurrentThread.ManagedThreadId)); } } catch (Exception e) { conn.Rollback(); Log(String.Format("Rolled back customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); Fail(e); } }
private void UpdateRow(object param) { GFXDClientConnection conn = null; long customerId = Convert.ToInt64(param); try { conn = new GFXDClientConnection(ConnectionString); conn.Open(); conn.AutoCommit = false; DbController dbc = new DbController(conn); Log(String.Format("Begin customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); conn.BeginGFXDTransaction(System.Data.IsolationLevel.ReadCommitted); Customer newCustData = (Customer)ObjectFactory.Create(ObjectType.Customer); newCustData.CustomerId = customerId; try { Log(String.Format("Try retrieving customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); Customer currCustData = dbc.GetCustomer(customerId); if(currCustData != null) Log(String.Format("Successfully retrieved customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); else Log(String.Format("Failed to customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } catch(Exception e) { Log(String.Format("Failed to retrieve customer record. TID: [{0}]. {1}", Thread.CurrentThread.ManagedThreadId, DbHelper.GetExceptionDetails(e, new StringBuilder()).ToString())); } try { Log(String.Format("Try updating customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); if (dbc.UpdateCustomer(newCustData) >= 1) { if (updateStarted == true) { Fail("Expected conflict exception when attempt to update the same record"); conn.Rollback(); return; } else { updateStarted = true; Log(String.Format("Successfully updated customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } } else Log(String.Format("Failed to update customer record. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } catch(GFXDException e) { if (e.State.Equals("X0Z02")) { Log(String.Format("Update conflict exception occurred as expected. TID: [{0}]. {1}", Thread.CurrentThread.ManagedThreadId, DbHelper.GetExceptionDetails(e, new StringBuilder()).ToString())); conn.Rollback(); return; } else { Fail("Expected conflict exception when attempt to update the same record"); conn.Rollback(); return; } } try { Log(String.Format("Try committing customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); conn.Commit(); Log(String.Format("Successfully committed customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); } catch (Exception e) { conn.Rollback(); Log(String.Format("Failed to commit customer update transaction. TID: [{0}]. {1}", Thread.CurrentThread.ManagedThreadId, DbHelper.GetExceptionDetails(e, new StringBuilder()).ToString())); } Customer updatedCustData = dbc.GetCustomer(newCustData.CustomerId); if (!newCustData.Validate(updatedCustData)) Fail(String.Format("Customer update validation failed [{0}]", Thread.CurrentThread.ManagedThreadId)); } catch (Exception e) { conn.Rollback(); Log(String.Format("Rolled back customer update transaction. TID: [{0}]", Thread.CurrentThread.ManagedThreadId)); Fail(e); } }