server.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 628 行 · 第 1/2 页

JAVA
628
字号
package jianguan;

import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.io.*;
import java.lang.*;
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 Server extends Aglet implements Runnable{

	 String slavename;
	 AgletProxy slaveProxy;
	 AgletID slaveid;
	 log log;
	 tableSql t;
	 AgletProxy client;
	 ResultSet rs;
	 
	 //
	 
	 
	 //
	 
	public void onCreation(Object o) {
	log = new log();
	log.Init("cqjk");
	t=new tableSql();
	t.tableInit("zqjk");
	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("BasicChild") ){ ////get server id
					//	slaveid=tmp.getAgletID();
						slavename=tmp.getAgletClassName();
						System.out.println("the slavename is:"+slavename);
					}//end if
				                                }//end while
			
			//added
		//	slaveProxy = getAgletContext().getAgletProxy(slaveid);
		//	System.out.println("slaveProxy is "+slaveProxy);
			//end add
				} 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]);
	String[] status= new String[4];   
	String[] UnitTemp=new String[8];
		//add
		URL urlClient=null;
       AgletID idClient;
	String running="正常运行";
	String ok="正常";
	String DeptName="";
	String Unit="";
    int beginindex;
	int endindex;
	String address2;
	String host;
      
	  try{
         urlClient=new URL(mm[1]);
         System.out.println("jianguanClient url is: "+urlClient);
		 log.Add("event","jianguanServer:jianguanClient url is "+urlClient);
	  }
	   catch(java.net.MalformedURLException ex){
		System.out.println("****java.net.MalformedURLException****");
		ex.printStackTrace();
		               				             }//end catch
												 
	
		try
		{
		 idClient=new AgletID(mm[2]);
		 System.out.println("jianguanClient id is: "+idClient);
		 log.Add("event","jianguanServer:jianguanClient id is "+idClient);
         
		 AgletContext cxt=getAgletContext();
		 System.out.println("current context  is: "+cxt);
		client = cxt.getAgletProxy(urlClient,idClient);
       System.out.println("jianguanClient  is: "+client);
      log.Add("event","jianguanServer:jianguanClient proxy is "+client);
	   AgletInfo inf=client.getAgletInfo();
		System.out.println(inf.toString() );
		log.Add("information",inf.toString());
		String address = inf.getAddress();
		
		//String classname = inf.getAgletClassName();
		String classname="监管代理";
		
		log.Add("agentstatus","running");
		log.Add("address",address);
		log.Add("classname",classname);
		beginindex=address.indexOf("atp");
		endindex=address.indexOf(":500");
		address2=address.substring(beginindex+6,endindex);
		host=address2.concat(":5000/");
		log.Add("host",host);
		//
	
		rs = t.recordSql("select * from UnitInfo where HostName="+"'"+host+"'");
    	
		//rs = t.recordSql("select * from UnitInfo");
		while (rs.next())
		{
		for(int j=0;j<8;j++)
		{UnitTemp[j]=rs.getString(j+1);
		}
	    DeptName=UnitTemp[2];
	    Unit=UnitTemp[1];
		}
		//
        log.Add(DeptName,Unit,address,classname,running,ok);
		status[0]= address;
	   status[1]= classname;
		 status[2]= "running";
		status[3]= "ok";
		
		client.sendOnewayMessage(new Message("bye","kill client proxy"));
		
		
		// client.sendOnewayMessage(new Message("status",status));
		
	     }//end try
	       						   
		catch(InvalidAgletException ex){
         System.out.println("****InvalidAgletException****");
          log.Add("error","jianguanServer:jianguanServer fail to send status"); 
                                       }//end catch
	
    	catch (Exception e){
			e.printStackTrace();
			
		                    }  
						
		
		//end
		
	
		
		log.Add("event","jianguanServer:recieve quit command from :"+slaveid);
	   	try{
	   		slaveProxy=getAgletContext().getAgletProxy(slaveid);
	    	slaveProxy.sendOnewayMessage(new Message("bye","kill proxy") );	
			log.Add("event","jianguanServer:kill BasicChild success");
			}   
			catch (Exception e){
				e.printStackTrace();
				log.Add("error","jianguanServer:kill  proxy failed");
						       }  
			
	   } //end if (msg.sameKind("quit"))
	  
	   //end add
	   else if (msg.sameKind("write")) {
		
	   	String[][][] str=(String[][][])msg.getArg();
		int l=str.length;
		int ll=str[0].length;
		int lll=str[0][0].length;
		for(int i=0;i<l;i++)
		{
			for(int j=0;j<ll;j++)
			{
				for(int k=0;k<lll;k++)
				{
				
			if (str[i][j][0]!=null)
				{
		System.out.println("server received records is "+str[i][j][k]);
		log.Add("event","jianguanServer:recieve records :"+str[i][j][k]);
				}
				}//end for k
			}//end for j
		}//end for i
		saveResult(str[0]);
		saveResult2(str[1]);
		saveResult3(str[2]);
		saveResult4(str[3]);
		
		System.out.println("save Result sucess");
		                         } //end if
     else if (msg.sameKind("bzjwrite")) {
		
	   	String[][] str=(String[][])msg.getArg();
		int l=str.length;
		int ll=str[0].length;
		for(int i=0;i<l;i++)
		{
			for(int j=0;j<ll;j++)
			{
			if (str[i][0]!=null)
				{
		System.out.println("server received records is "+str[i][j]);
		log.Add("event","jianguanServer:recieve records :"+str[i][j]);
				}
			}//end for j
		}//end for i
		saveResult2(str);
		System.out.println("save Result sucess");
		                         }
		return true; 
		
	                                       }//end handlemessage
    
	public void saveResult(String[][] record){
		tableSql tt;
		
		tt=new tableSql();
		tt.tableInit("zqjk");
	   	ResultSet rs;
	 	String insert="";
	 	String GDDM,GDXM,BCRQ,GSDM,ZQDM,SBSJ,SQBH,BS,MJBH,Description,DateTime;
		int UnitID;
        float CJBH,CJSL,BCYE,CJSJ,CJJG,CJJE;
		
 		try{
			int l=record.length;
			int ll=record[0].length;
			System.out.println("l is: "+l);
			System.out.println("ll is: "+ll);			
		
	
		for(int i=0;i<l;i++)
		{
			insert="";
			if (record[i][0]!=null)
				{
			//	UnitID=Integer.parseInt(records[i][0]);
			UnitID=Integer.parseInt(record[i][15]);
			
				GDDM=record[i][0];
				GDXM=record[i][1];
				BCRQ=record[i][2];
				CJBH=Float.valueOf(record[i][3]).floatValue();
				GSDM=record[i][4];
				CJSL=Float.valueOf(record[i][5]).floatValue();
				BCYE=Float.valueOf(record[i][6]).floatValue();
				ZQDM=record[i][7];
				SBSJ=record[i][8];
				CJSJ=Float.valueOf(record[i][9]).floatValue();
				CJJG=Float.valueOf(record[i][10]).floatValue();
				CJJE=Float.valueOf(record[i][11]).floatValue();
				SQBH=record[i][12];
				BS=record[i][13];
				MJBH=record[i][14];
				Description=record[i][16];
				DateTime=record[i][17];
						
				//end 
				//
				
				try
				
				{
				rs=tt.recordSql("select * from QBCj128 where CJBH="+CJBH+"and UnitID="+UnitID);
				if (!rs.next())
				{
				insert=insert+UnitID+","+"'"+GDDM+"'"+","+"'"+GDXM+"'"+","+"'"+BCRQ+"'"+","+CJBH+","+"'"+GSDM+"'"+","+CJSL+","+BCYE+","+"'"+ZQDM+"'"+","+"'"+SBSJ+"'"+","+CJSJ+","+CJJG+","+CJJE+","+"'"+SQBH+"'"+","+"'"+BS+"'"+","+"'"+MJBH+"'"+","+"'"+Description+"'"+","+"'"+DateTime+"'";
		//		System.out.println("the insert :"+insert);
				tt.recordInsert("insert into QBCj128 (UnitID,GDDM,GDXM,BCRQ,CJBH,GSDM,CJSL,BCYE,ZQDM,SBSJ,CJSJ,CJJG,CJJE,SQBH,BS,MJBH,Description,DateTime) values("+insert+")"); 
				}
				else 
				{
				
				log.UpdateMonitor(UnitID,GDDM,GDXM,BCRQ,CJBH,GSDM,CJSL,BCYE,ZQDM,SBSJ,CJSJ,CJJG,CJJE,SQBH,BS,MJBH,Description,DateTime); 
				
				}
				}
				catch(Exception ex)
				{
					System.out.println("\n***SQLException caught ***\n");
				}
				
											}
		
		}
			
				try
				{
				rs=tt.recordSql("select * from QBCj128");
				tt.display(tt.recordPrint(rs) );
				}
				catch(Exception ex)
				{
					System.out.println("\n***SQLException caught ***\n");
				}
				

⌨️ 快捷键说明

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