public static void queryCheck(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); System.out.println(rm.queryFlight(xid, "1")); System.out.println(rm.queryCars(xid, "a")); System.out.println(rm.queryRooms(xid, "A")); }
public static void deleteItems(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); rm.deleteFlight(xid, "4"); // rm.deleteCustomer(xid, "Joe"); rm.commit(xid); }
public static void printCustomerBills(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); for (String cust : customers) { int bill = rm.queryCustomerBill(xid, cust); System.out.println("Bill for " + cust + " : " + bill); } int bill = rm.queryCustomerBill(xid, "Joe"); System.out.println("Bill for " + "Joe" + " : " + bill); rm.commit(xid); }
public static void main(String args[]) throws RemoteException, TransactionAbortedException, InvalidTransactionException, FileNotFoundException, IOException { TransactionManagerImpl tm = new TransactionManagerImpl(); ResourceManagerImpl rmflights = new ResourceManagerImpl(ResourceManager.RMINameFlights); rmflights.setTm(tm); ResourceManagerImpl rmcustomers = new ResourceManagerImpl(ResourceManager.RMINameCustomers); rmcustomers.setTm(tm); ResourceManagerImpl rmcars = new ResourceManagerImpl(ResourceManager.RMINameCars); rmcars.setTm(tm); ResourceManagerImpl rmhotels = new ResourceManagerImpl(ResourceManager.RMINameRooms); rmhotels.printRooms(); rmhotels.setTm(tm); WorkflowControllerImpl wc = new WorkflowControllerImpl(); wc.setRM(ResourceManager.RMINameFlights, rmflights); wc.setRM(ResourceManager.RMINameCars, rmcars); wc.setRM(ResourceManager.RMINameCustomers, rmcustomers); wc.setRM(ResourceManager.RMINameRooms, rmhotels); wc.setTM(tm); tm.setRM(ResourceManager.RMINameFlights, rmflights); tm.setRM(ResourceManager.RMINameCars, rmcars); tm.setRM(ResourceManager.RMINameCustomers, rmcustomers); tm.setRM(ResourceManager.RMINameRooms, rmhotels); // badd(wc); // baddabt(wc); // baddabtrd(wc); // baddcmtrd(wc); // baddcmtrsv(wc); // bstcmt(wc); // bstabt(wc); // bstart(wc); Fdieall(wc); // FunLock(wc); // Lconc(wc); // Saddcmtdelcmt(wc); // Saddrd(wc); // Sbadxid(wc); // sbill(wc); // Sitiabt(wc); // Siticmt(wc); // Sitifail(wc); System.exit(1); }
public static void Baddcmtrd(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); rm.addFlight(xid, "347", 100, 310); rm.addRooms(xid, "Stanford", 200, 150); rm.addCars(xid, "SFO", 300, 30); rm.newCustomer(xid, "John"); rm.commit(xid); // printTables(rm); xid = rm.start(); int avail = rm.queryFlight(xid, "347"); System.out.println(avail); avail = rm.queryFlightPrice(xid, "347"); System.out.println(avail); avail = rm.queryRooms(xid, "Stanford"); System.out.println(avail); avail = rm.queryRoomsPrice(xid, "Stanford"); System.out.println(avail); avail = rm.queryCars(xid, "SFO"); System.out.println(avail); avail = rm.queryCarsPrice(xid, "SFO"); System.out.println(avail); avail = rm.queryCustomerBill(xid, "John"); System.out.println(avail); }
public static void Saddcmtdelrsv(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); rm.addFlight(xid, "347", 100, 310); rm.addRooms(xid, "Stanford", 200, 150); rm.addCars(xid, "SFO", 300, 30); rm.newCustomer(xid, "John"); rm.commit(xid); // printTables(rm); xid = rm.start(); rm.deleteFlight(xid, "347"); rm.deleteRooms(xid, "Stanford", 200); rm.deleteCars(xid, "SFO", 300); boolean returnVal = rm.reserveFlight(xid, "John", "347"); returnVal = rm.reserveRoom(xid, "John", "Stanford"); returnVal = rm.reserveCar(xid, "John", "SFO"); returnVal = rm.commit(xid); // printTables(rm); }
public static void LdeadLock(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); rm.addFlight(xid, "347", 100, 310); rm.addRooms(xid, "Stanford", 200, 150); rm.addCars(xid, "SFO", 300, 30); rm.newCustomer(xid, "John"); rm.commit(xid); xid = rm.start(); int xid2 = rm.start(); rm.addFlight(xid2, "347", 100, 620); rm.addRooms(xid, "Stanford", 200, 300); try { rm.queryRooms(xid2, "Stanford"); } catch (TransactionAbortedException e) { System.out.println("Caught deadlock"); } rm.commit(xid); // printTables(rm); xid = rm.start(); int value = rm.queryFlight(xid, "347"); System.out.println(value); value = rm.queryFlightPrice(xid, "347"); System.out.println(value); value = rm.queryRooms(xid, "Stanford"); System.out.println(value); value = rm.queryRoomsPrice(xid, "Stanford"); System.out.println(value); }
public static void Fdieb4self(ResourceManagerImpl rm) throws RemoteException, TransactionAbortedException, InvalidTransactionException { int xid = rm.start(); rm.addFlight(xid, "347", 100, 310); rm.addRooms(xid, "Stanford", 200, 150); rm.addCars(xid, "SFO", 300, 30); rm.newCustomer(xid, "John"); rm.commit(xid); xid = rm.start(); rm.addFlight(xid, "347", 100, 620); rm.addRooms(xid, "Stanford", 200, 300); rm.addCars(xid, "SFO", 300, 60); rm.dieBeforePointerSwitch(); try { rm.commit(xid); } catch (RemoteException e) { System.out.println("Caught remote exception"); } xid = rm.start(); int value = rm.queryFlight(xid, "347"); System.out.println(value); value = rm.queryFlightPrice(xid, "347"); System.out.println(value); value = rm.queryRooms(xid, "Stanford"); System.out.println(value); value = rm.queryRoomsPrice(xid, "Stanford"); System.out.println(value); }