⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testscenario1.java

📁 利用java对数据库系统进行分布式管理.支持数据库服务器查找,支持多个数据库的连接,实现数据库服务器与客户端功能.
💻 JAVA
字号:
import java.util.*;

public class TestScenario1
{
	public static final int LUSPort = 10007;
	public static final int NumDatabaseServers = 2;
	public static final int DBSFirstPort = 50000;
	
	public static void main(String args[])
	{
		if (args.length != 3)
		{
			System.out.println("usage: java TestScenario1 LookupServerClassName DatabaseServerClassName TransactionClassName");
			return; 
		}
		
		LookupServerInterface lus = null;
		Vector<DatabaseServerInterface> vdbs = new Vector<DatabaseServerInterface> ();
		
		try
		{
			/* initiation stage */
			Class lusClass = Class.forName(args[0]);
			lus = (LookupServerInterface) lusClass.newInstance();
			lus.startServer("127.0.0.1", LUSPort);
			
			Class dbsClass = Class.forName(args[1]);

			for (int i = 0; i < NumDatabaseServers; i++)
			{
				DatabaseServerInterface dbs = (DatabaseServerInterface) dbsClass.newInstance();
				vdbs.add(dbs);				
				dbs.startServer("127.0.0.1", DBSFirstPort + i, "127.0.0.1", LUSPort);
			}


			/* do the actual testing */

			Class transClass = Class.forName(args[2]);
			
			TransactionInterface T1 = (TransactionInterface) transClass.newInstance();
			String TID1 = T1.begin("127.0.0.1", DBSFirstPort);
			System.out.println("TID(T1)=" + TID1);
			
			TransactionInterface T2 = (TransactionInterface) transClass.newInstance();
			String TID2 = T2.begin("127.0.0.1", DBSFirstPort + 1);
			System.out.println("TID(T2)=" + TID2);
			
			
			System.out.println("Adding object \"sillyObject\" with initial value 89 on DB0...");
			(vdbs.get(0)).addObject("sillyObject", 89);
			System.out.println("done1");
			
						
			System.out.println("Reading sillyObject in T1: expected=89 ; got=" + T1.getValue("sillyObject"));
			
			System.out.print("Setting sillyObject to 91 in T1...");
			T1.setValue("sillyObject", 91);
			System.out.println("done");
			
			System.out.println("Reading sillyObject in T2: expected=89 ; got=" + T2.getValue("sillyObject"));

			System.out.print("Setting sillyObject to 100 in T2...");
			T2.setValue("sillyObject", 100);
			System.out.println("done");
					
			System.out.println("Reading sillyObject in T1: expected=91 ; got=" + T1.getValue("sillyObject"));
			System.out.println("Reading sillyObject in T2: expected=100 ; got=" + T2.getValue("sillyObject"));
			
			System.out.print("Commiting T1...");			
			T1.commit();
			System.out.println("done");
			
			System.out.print("Aborting T2...");						
			T2.rollback();
			System.out.println("done");

			TransactionInterface T3 = (TransactionInterface) transClass.newInstance();
			String TID3 = T3.begin("127.0.0.1", DBSFirstPort + 1);
			System.out.println("TID(T3)=" + TID3);
			System.out.println("Reading sillyObject in T3: expected=91 ; got=" + T3.getValue("sillyObject"));
	
			System.out.print("Commiting T3...");			
			T3.commit();
			System.out.println("done");

			/* termination stage */
			
			System.out.println("ending databases");
			for (int i = 0; i < NumDatabaseServers; i++)
			{
				DatabaseServerInterface dbs = vdbs.get(i);
				dbs.stopServer();
			}		

			System.out.println("ending lookup");
			lus.stopServer();
		}
		catch (Exception e)
		{
			System.err.println("error: " + e);
			return;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -