setupserver.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 257 行

JAVA
257
字号
package shezhi;

import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.io.*;
import java.net.URL;
import java.sql.*;
import java.util.Enumeration;
import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.ObjectOutput;

public class setupServer extends Aglet implements Runnable{

	 String slavename;
	 AgletProxy slaveProxy;
	 AgletID slaveid;
	 log log;
	 AgletProxy client;
	 AgletID self_id=null;
	public void onCreation(Object o) {
	log = new log();
	log.Init("cqjk");
	addMobilityListener(new MobilityAdapter() {

	public void onArrival(MobilityEvent ev) {
				//added
	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("setupProxy") ){ ////get server id
					//	slaveid=tmp.getAgletID();
						slavename=tmp.getAgletClassName();
						System.out.println("the slavename is:"+slavename);
					}//end if
				                                }//end while
			
		
				} catch (Exception ex) {
		   		 ex.printStackTrace();
				                  }//end catch
				//end add
	      }  	
		});//end listerner
	}///end onCreation
	
	public boolean handleMessage(Message msg) {
	   
	   //add
	   
	   if (msg.sameKind("quit")) {
	   	String[] mm=(String[])msg.getArg();
	   	slaveid=new AgletID(mm[0]);
		//add
		URL urlClient=null;
       AgletID idClient;
	   String[] status=new String[4];
	   //add
	   	AgletContext context=getAgletContext();
		self_id=getAgletID();
       System.out.println("my self id is:"+self_id);
	    AgletProxy tmp=context.getAgletProxy(self_id);;
		try
		{
		
		AgletInfo inf=tmp.getAgletInfo();
		//System.out.println(inf.toString() );
		//log.Add("information",inf.toString());
		String address = inf.getAddress();
		String classname = inf.getAgletClassName();
		log.Add("address",address);
		log.Add("classname",classname);
       status[0]= address;
	//   status[1]= classname;
	status[1]="设置代理";
		 status[2]= "正常运行";
		status[3]= "正常";
	
		urlClient=new URL(mm[1]);
         System.out.println("shezhiClient url is: "+urlClient);
		 log.Add("event","setupServer:shezhiClient url is "+urlClient);
		idClient=new AgletID(mm[2]);
		 System.out.println("shezhiClient id is: "+idClient);
		 log.Add("event","setupServer:shezhiClient id is "+idClient);
         
		 AgletContext cxt=getAgletContext();
		 System.out.println("current context  is: "+cxt);
		client = cxt.getAgletProxy(urlClient,idClient);
        System.out.println("shezhiClient  is: "+client);
         log.Add("event","setupServer:shezhiClient proxy is "+client);
		 
         client.sendOnewayMessage(new Message("status",status));
	//	 client.sendOnewayMessage(new Message("bye","kill client proxy"));
	   }
	   catch(java.net.MalformedURLException ex){
		System.out.println("****java.net.MalformedURLException****");
		ex.printStackTrace();
		               				             } 
		catch(InvalidAgletException ex){
         System.out.println("****InvalidAgletException****");
          log.Add("error","setupServer:setupServer fail to send status"); 
                                       }
	   catch (Exception ex) {
		   		 ex.printStackTrace();
			                	}

	   //end add
	   
	   
      
	  
		//end
		
		log.Add("event","setupServer:recieve quit command from :"+slaveid);
	   	try{
	   		slaveProxy=getAgletContext().getAgletProxy(slaveid);
	    	slaveProxy.sendOnewayMessage(new Message("bye","kill proxy") );	
			log.Add("event","setupServer:kill setupProxy success");
			}   
			catch (Exception e){
				e.printStackTrace();
				log.Add("error","setupServer:kill  proxy failed");
						       }  
	   }//end if (msg.sameKind("quit")) 
	  
	   //end add
	   else if (msg.sameKind("write")) {
		
	   	String[] str=(String[])msg.getArg();
		//System.out.println("server received records is "+str[0][0]+str[0][1]);
        //log.Add("event","setupServer:recieve records :"+str[0][0]+str[0][1]);
	   int l=str.length;
	/*
		for(int i=0;i<l;i++)
		{
					
		if (str[i][0]!=null)
				{
					for(int k=0;k<7;k++)
					{
		System.out.println("server received records is "+str[i][k]);
		log.Add("event","setupServer:recieve records :"+str[i][k]);
					}
		saveResult(str[i]);
		System.out.println("save Result sucess");

				}
		}
	*/
		for(int k=0;k<9;k++)
					{
		System.out.println("server received records is "+str[k]);
		log.Add("event","setupServer:recieve records :"+str[k]);
					}
	saveResult(str);
		System.out.println("save Result sucess");
		
		                         } //end if
    
		return true; 
	                                       }//end handlemessage
    
	public void saveResult(String[] records){
	/*
		tableSql tt,tt2;
		tt=new tableSql();
		tt2=new tableSql();
	 	tt.tableInit("cqjk");
		tt2.tableInit("cqjk");
	 	ResultSet rs,rs2;
	*/
	 	String insert="";
	 	//String name;
		int cycle;
		int gate;
	
 
 
			
				//
		log.Update(Integer.parseInt(records[0]));
		log.Update1(Integer.parseInt(records[1]));
		log.Update13(Integer.parseInt(records[2]));
		log.Update14(Integer.parseInt(records[3]));
		log.Update15(Integer.parseInt(records[4]));
		
		log.Update16(records[5]);
		log.Update17(records[6]);
		
		log.Update2(Integer.parseInt(records[7]));
		log.Update3(Integer.parseInt(records[8]));
			/* try{
            rs=tt.recordSql("select * from MonitoredValueInfo");
			while (rs.next())
			{
			if (Integer.parseInt(rs.getString("MonitoredValueID"))==1)
			{
		   log.Update(Integer.parseInt(records[0][2]));
		   System.out.println("Update sucessful!");
			}
		
		else log.Update1(Integer.parseInt(records[1][2]));
			}//end while
			tt.closeConnect();
      		
      }                   
		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("");
			      }
		}//end catch
				
		
			 
			try{
            rs2=tt2.recordSql("select * from AgentSetupValueInfo");
			while (rs2.next())
			{
			if (Integer.parseInt(rs2.getString("ValueID"))==1)
			{
			log.Update2(Integer.parseInt(records[2][2]));
			System.out.println("Update sucessful!");
			}
			
			
			else log.Update3(Integer.parseInt(records[3][2]));
			}//end while
			
      		tt2.closeConnect();
          }   //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("");
			      }//end while
		}//end catch
	 
	 	*/	
	      }//end saveResult
	 	
}	  //end main 	

⌨️ 快捷键说明

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