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

📄 finderserver.java

📁 IBM AGLET及JAVA实现的电子商务系统源码
💻 JAVA
字号:
package ecmAglet;

import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.io.*;
import java.net.URL;
import java.sql.*;
import java.util.*;

public class finderServer extends Aglet {
	tableSql t;
	//ResultSet rs;
	////////
	AgletProxy slaveProxy=null;
	AgletID slaveid=null;
	AgletID self_id=null;
   String slavename;
   ////////// 
	
	public void onCreation(Object o) {
		t=new tableSql();
		self_id=getAgletID();

		addMobilityListener(new MobilityAdapter() {
	    	public void onArrival(MobilityEvent ev) {
				
				///////////
				//AgletInfo inf=getAgletInfo();
				
				AgletContext cxt=getAgletContext();
	      try{
				Enumeration aglets=cxt.getAgletProxies();
				while (aglets.hasMoreElements()) {			
					AgletProxy tmp=(AgletProxy) aglets.nextElement();
					
					AgletInfo inf=tmp.getAgletInfo();
					System.out.println(inf.toString() );
				   String agName=tmp.getAgletClassName();
					if (agName.endsWith("TalkSlave") ){ ////get server id
						//slaveid=tmp.getAgletID();
						slavename=tmp.getAgletClassName();
					}
				}
				////////////
				//System.out.println(inf.toString() );
				System.out.println(cxt.toString() );
				//try {
				} catch (Exception ex) {
		   		 ex.printStackTrace();
				}
	      }  	
		});//end listerner
	}///end function
		
	public boolean handleMessage(Message msg) {
	   if (msg.sameKind("connect")) {
	   	String[] mm=(String[])msg.getArg();
	   	String str=(String)mm[1];
	   	slaveid=new AgletID(mm[0]);
	    	System.out.println("message from slvave are: "+mm[0]+"  "+mm[1]);
			
	   	System.out.println("connect with slave and slave id is:"+slaveid);
			try{
	   		slaveProxy=getAgletContext().getAgletProxy(slaveid);
	    		System.out.println("Connect succeed and the server id is:"+self_id);
		   	//slaveProxy.sendAsyncMessage(new Message("okConnect",self_id) );
			}   ////
			catch (Exception e){
				e.printStackTrace();
				System.out.println("connect with server failed");
			}  
			
			dbDisplay(str,msg);
	   	System.out.println("finderServer have succeed to send back result ");
	   	return true;

	   }
	   else if (msg.sameKind("bye")) {
	   	System.out.println("bye and close the server connection");
	   	slaveid=null;
	   	return true;
	   }
		return false;
	}
   	
	public void dbDisplay(String strQuery,Message msg) {
   	String tmpstr;
   	int recordNumber;
   	String[] records=null;
   	
		try{
			///query db and display result
			t.tableInit("Sysdb");
			ResultSet rs=t.recordSql("select * from finder '");
			
			//String[][] records=t.recordPrint(rs); ///get all finder's ip and port 
			//t.display(records);
				
   		ResultSetMetaData rsmd=rs.getMetaData();
   		int no=0;///no used for order of record
   		recordNumber=50;
   		records=new String[recordNumber];
   		//display each column data
   		while (rs.next()){				
				tmpstr=rs.getString("address")+":"+rs.getString("port");			
				records[no]=tmpstr;
				System.out.println("the host of "+rs.getString("server")+"address and port is:"+records[no]);
				no++;
			}
			
		
			////send result of findertable to finderProxy
			msg.sendReply(records);
			slaveProxy.sendAsyncMessage(new Message("bye","kill finderProxy") );
			
		}///end try
		catch(SQLException ex){
			System.out.println("\n***SQLException caught ***\n");
			while (ex != null){
				System.out.println("SQLState:"+ex.getSQLState());
				System.out.println("Message:"+ex.getMessage());	
				System.out.println("Vendor:"+ex.getErrorCode());
				ex=ex.getNextException();
				System.out.println("");
			}
		} 
		catch (Exception e){
			e.printStackTrace();
		}
		System.out.println("servers' names sent");  
		   			
	}//end function
			   	
      	
}	   	
	   	

⌨️ 快捷键说明

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