server.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 735 行 · 第 1/2 页
JAVA
735 行
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;
import java.util.Date;
import java.text.*;
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){
int DEBUG=0;
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)
{
ex.printStackTrace();
}
}
}
if (DEBUG==1)
{
try
{
rs=tt.recordSql("select * from QBCj128");
tt.display(tt.recordPrint(rs) );
}
catch(Exception ex)
{
System.out.println("\n***SQLException caught ***\n");
}
}
tt.closeConnect();
}//end try
catch(NumberFormatException ex){
ex.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
}//end saveResult
public void saveResult2(String[][] bzj){
int DEBUG=0;
tableSql ttt;
ttt=new tableSql();
ttt.tableInit("zqjk");
ResultSet rsrs;
String insert="";
String FCJHM,FZQDM,FHTXH,FCJSJ,FGDDM,FDFXH,FDFGD,FMARK,Description,DateTime;
int UnitID;
int FMMLB=0,FCJSL=0;
float FCJJG=0;
int Num,ID,CoverageMoney;
try{
int l=bzj.length;
int ll=bzj[0].length;
System.out.println("l is: "+l);
System.out.println("ll is: "+ll);
for(int i=0;i<l;i++)
{
insert="";
if (bzj[i][0]!=null)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?