?? ecmclient.java
字號:
package ecmAglet;
import com.ibm.aglet.*;
import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
/**
*
* @version 1.00 $Date: 3/26/98 4:17p $
* @author Mitsuru Oshima
* @see examples.talk.TalkSlave
*/
public class ecmClient extends Aglet {
AgletProxy[] remoteProxy=new AgletProxy[50] ;///remoteProxy代理slave
int i=0;///i used for the order of remoteProxy
String name = "Unknown";
int num=0; ////////記錄派遣aglet的個數(shù)
log log;
//TalkWindow window = null;
public void onCreation(Object o) {
//window = new TalkWindow(this);
//window.pack();
//window.show();
log=new log();
log.Init("Ecmdb");
try {
name = (String) getAgletContext().getProperty("aglets.user.name", "Unknown");
///debug
System.out.println("agelets.user.name:"+name);
setText("agelets.user.name:"+name);
}
catch (Exception ex) {
}
}
public void onDisposing() {
/*
if (window != null) {
window.dispose();
window = null;
}*/
}
/////sent to client
public void dispatchProxy(String dest) {
try {
i++;
/*
if (remoteProxy[i] != null) {
remoteProxy.sendMessage(new Message("bye"));
}*/
AgletContext context = getAgletContext();
AgletProxy proxy = context.createAglet(null, "ecmAglet.ecmProxy", getProxy());
URL url = new URL(dest);
remoteProxy[i] = proxy.dispatch(url);
System.out.println("i will dispatch another aglet to server");
} catch (InvalidAgletException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
////發(fā)送消息到客戶端
public void sendMessage(String text) {
try {
if (remoteProxy[i] != null) {
//remoteProxy.sendMessage(new Message("text",
// name + " : " + text));
//Object result=remoteProxy[i].sendAsyncMessage(new Message("sendQuery",text)).getReply();
remoteProxy[i].sendAsyncMessage(new Message("sendQuery",text));
/////////
/*
System.out.println("master receive result from slave["+i+"]");
String[][] records=(String[][])result;
int l=records.length;
int ll=records[1].length;
System.out.println("array lenth is :"+l);
System.out.println("record lenth is :"+ll);
outLoop:
for (int i=0;i<l;i++){
for (int j=0;j<ll;j++){
if (records[i][j]!=null)
System.out.print(records[i][j]+",");
//else if break la;
else break outLoop ;
}
System.out.println(""); ///換行顯示
}
*/
}///end if
} ///end try
catch (Exception ex) {
ex.printStackTrace();
}
}
//////////
public void saveResult(String[][] records){
tableSql tt;
tt=new tableSql();
tt.tableInit("Ecmdb");
ResultSet rs;
String insert="";
float price;
int amount;
double goodstime=0;
//String goodstime;
String source="";
try{
int l=records.length;
int ll=records[1].length;
//System.out.println("array lenth is :"+l);
//System.out.println("record lenth is :"+ll);
Loop:
for (int i=1;i<l;i++){
System.out.println("*****1");
insert="";
/*for (int j=1;j<ll;j++){
if (records[i][j]!=null){
insert=insert+"'"+records[i][j]+"',";
//System.out.print(records[i][j]+",");
}
//else if break la;
else break Loop;
}*/
for (int j=1;j<ll-4;j++){ ////ll=7;
if (records[i][1]!=null){
insert=insert+"'"+records[i][j]+"',";
//System.out.print(records[i][j]+",");
}
//else if break la;
else break Loop;
}
price=Float.valueOf(records[i][ll-4]).floatValue() ;
amount=Integer.parseInt(records[i][ll-3]);
goodstime=Double.valueOf(records[i][ll-2] ).doubleValue();
//goodstime=records[i][ll-2];
source=records[i][ll-1];
insert=insert+price+","+amount+","+goodstime+","+"'"+source+"'";
//insert=insert+price+","+amount+","+"'"+goodstime+"',"+"'"+source+"'";
System.out.println("the insert :"+insert);
tt.recordInsert("insert into gtmp (productor,goodsname,model,price,amount,goodstime,source) values("+insert+")");
System.out.println("insert into gtmp (productor,goodsname,model,price,amount,goodstime,source) values("+insert+")");
rs=tt.recordSql("select * from gtmp");
tt.display(tt.recordPrint(rs) );
//slaveProxy.sendAsyncMessage(new Message("bye","kill finderProxy") );
}
//tt.closeResult();
tt.closeConnect();
//System.out.println("*************4");
}
catch(NumberFormatException ex){
ex.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
log.Add("error","ecmclient:client save result failed");
}
///////////
}
public boolean handleMessage(Message msg) {
if (msg.sameKind("dispatch")) { /////接受master傳來的消息,并送給server
String[] str=(String[])msg.getArg();
num=str.length;
AgletContext context = getAgletContext();
Loop:
for (int i=0;i<num;i++){
try{
if (str[i]!=null){
remoteProxy[i] = context.createAglet(null, "ecmAglet.ecmProxy", getProxy());
URL url = new URL("atp://"+str[i]);
remoteProxy[i] =remoteProxy[i].dispatch(url);
System.out.println("now dispatch "+i+" url is :atp://"+str[i]);
log.Add("event","ecmclient:dispatch "+i+" url is :atp://"+str[i]);
//remoteProxy[i].sendAsyncMessage(new Message("sendQuery",query));
//System.out.println("i will dispatch another aglet to server");
}
else break Loop;
}
catch (InvalidAgletException ex) {
ex.printStackTrace();
log.Add("error","ecmclient:fail dispatch this aglet");
}
catch (Exception ex) {
ex.printStackTrace();
}
}///end for
//sendMessage(str);
}
else if (msg.sameKind("sendQuery")) {
String[] str=(String[])msg.getArg();
System.out.println("*****0");
String ss="ecmclient send query to server: "+str[0];
log.Add("event","ecmclient:"+ss);
System.out.println("ecmclient send query to server: "+str[0]+","+str[1]);
for (int i=0;i<num;i++){
try {
if (remoteProxy[i]!=null)
remoteProxy[i].sendAsyncMessage(new Message("sendQuery",str));
//System.out.println("i will dispatch another aglet to server");
}
catch (Exception ex) {
ex.printStackTrace();
log.Add("error","ecmclient:ecmclient send command failed");
}
}
//System.out.println("-----the dest length is:"+num);
}
else if (msg.sameKind("getResult")) { //////////////
System.out.println("client receive result from server");
String[][] records=(String[][])msg.getArg();
int l=records.length;
int ll=records[1].length;
//System.out.println("array lenth is :"+l);
//System.out.println("record lenth is :"+ll);
Loop:
for (int i=0;i<l;i++){
for (int j=0;j<ll;j++){
if (records[i][j]!=null)
System.out.print(records[i][j]+",");
//else if break la;
else break Loop;
}
System.out.println(""); ///換行顯示
}
//System.out.println("*****0");
saveResult(records);
}
else if (msg.sameKind("text")) {
System.out.println("i receive message: text");
/*
if (window.isVisible() == false) {
window.show();
}
window.appendText((String)msg.getArg());
*/
return true;
}
return false;
}
private void print(String m) {
System.out.println("Sender: " + m);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -