?? finderserver.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 + -