shezhi3.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 394 行
JAVA
394 行
/*
* @(#)ServerApp.java
*
* The program is provided "as is" without any warranty express or
* implied, including the warranty of non-infringement and the implied
* warranties of merchantibility and fitness for a particular purpose.
* IBM will not be liable for any damages suffered by you as a result
* of using the Program. In no event will IBM be liable for any
* special, indirect or consequential damages or lost profits even if
* IBM has been advised of the possibility of their occurrence. IBM
* will not be liable for any third party claims against you.
*/
package shezhi;
import com.ibm.aglet.*;
import com.ibm.aglet.system.*;
import java.net.URL;
import java.util.Properties;
import com.ibm.awb.util.Resource;
import com.ibm.atp.daemon.Daemon;
//added
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;
import com.ibm.aglet.event.*;
public class shezhi3 extends ContextAdapter {
public void agletCreated(ContextEvent ev) {
System.out.println("Aglet Created : " + ev.getAgletProxy());
}
public void agletCloned(ContextEvent ev) {
System.out.println("Aglet Cloned : " + ev.getAgletProxy());
}
public void agletArrived(ContextEvent ev) {
System.out.println("Aglet Arrived : " + ev.getAgletProxy());
}
public void agletActivated(ContextEvent ev) {
System.out.println("Aglet Activated : " + ev.getAgletProxy());
}
public void agletDisposed(ContextEvent ev) {
System.out.println("Aglet Disposed : " + ev.getAgletProxy());
}
public void agletDispatched(ContextEvent ev) {
System.out.println("Aglet Dispatched : " + ev.getAgletProxy());
}
public void agletDeactivated(ContextEvent ev) {
System.out.println("Aglet Deactivated : " + ev.getAgletProxy());
}
public void agletReverted(ContextEvent ev) {
System.out.println("Aglet Reverted : " + ev.getAgletProxy());
}
public void showMessage(ContextEvent ev) {
System.out.println("message : " + ev.getMessage());
}
public static void main(String args[]) throws java.lang.Exception {
//added
ResultSet rs1,rs2,rs3;
String tmpstr;
//AgletProxy[] p=new AgletProxy[1]; //used for the master
tableSql t1,t2,t3;
log log;
String[] dest=new String[50];
String[] Unit=new String[50];
String[][] record=new String[10][9];
int fazhi=0,jiaoyiliang=0,jiaoyizijin=0,bilifanwei=0,jiaoyizonge=0,cycle=0,other=0;
//end add
com.ibm.atp.daemon.Main.importOptions(args);
//
// Create and initialize a server.
//
Daemon daemon = Daemon.init(null);
daemon.setAccessLogStream(System.out);
daemon.setMessageLogStream(System.out);
daemon.setErrorLogStream(System.err);
//
// Obtains a runtime object
//
AgletRuntime runtime = AgletRuntime.init(null);
//
// Creates a named context. To dispatch to this context, you have to
// specify the destination, for example,
// "atp://aglets.trl.ibm.com:434/test"
//
AgletContext cxt = runtime.createAgletContext("test");
cxt.addContextListener(new shezhi3());
// If you want to allow incoming aglets to use GUI.
// initialize gui....
try {
Class.forName("sun.awt.image.JPEGImageDecoder");
Class.forName("sun.audio.AudioPlayer");
} catch (Exception ex) {
ex.printStackTrace();
}
try {
Class.forName("sun.awt.PlatformFont"); // for 1.1
} catch (Exception ex) {
ex.printStackTrace();
}
try {
new java.awt.Frame().addNotify();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
}
try {
Class.forName("sun.awt.ScreenUpdater");
} catch (Throwable t) {
}
//
// Starts this server as aglets server.
//
daemon.start("aglets");
//
// Starts the AgletContext.
//
cxt.start();
//
// From here on, you can use this context.
// (creating, dispatching an aglet, for instance)
//
//ServerApp server=new ServerApp();
///query db and display result
/**************************************************************/
while (true)
{
int no=0;
int number=0;
int Change=0,change=0;
log=new log();
log.Init("zqjk");
try
{
String[] recordTemp=new String[5];
String[] recordTemp2=new String[5];
String[] UnitTemp=new String[8];
String[][] Unify=new String[15][7];
t1 = new tableSql();
t1.tableInit("zqjk");
t2 = new tableSql();
t2.tableInit("zqjk");
t3= new tableSql();
t3.tableInit("zqjk");
try
{
rs2 = t2.recordSql("select * from UnitInfo where dispatchflag="+1);
while (rs2.next()){
for(int i=0;i<8;i++){
UnitTemp[i]=rs2.getString(i+1);
}
dest[no]= UnitTemp[3];
Unit[no]=UnitTemp[1];
no++;
}//end while
}
catch (Exception ex) {
ex.printStackTrace();
}
dest[no]=null;
try
{
rs2 = t2.recordSql("select * from MonitoredValueInfo where Change="+1);
while(rs2.next())
Change=1;
}
catch (Exception ex) {
ex.printStackTrace();
}
try
{
rs2 = t2.recordSql("select * from AgentSetupValueInfo where Change="+1);
while(rs2.next())
change=1;
}
catch (Exception ex) {
ex.printStackTrace();
}
//
try
{
rs3 = t3.recordSql("select * from UnifyMonitoredValueInfo order by MonitoredValueID asc");
while (rs3.next()){
for(int i=0;i<7;i++){
Unify[number][i]=rs3.getString(i+1);
}
number++;
}//end while
}
catch (Exception ex) {
ex.printStackTrace();
}
//
try
{
for (int j=0;j<no;j++)
{
if(Integer.parseInt(Unify[0][6])==1)
{
for(int k=0;k<7;k++)
{
record[j][k]=Unify[k][2];
System.out.println(record[j][k]);
}
log.UpdateUnify();
log.Change(Unit[j]);
log.Change1(Unit[j]);
log.Change13(Unit[j]);
log.Change14(Unit[j]);
log.Change15(Unit[j]);
log.Change16(Unit[j]);
log.Change17(Unit[j]);
log.Change2();
log.Change3();
}
else
{
System.out.println("UnitName IS "+Unit[j]);
rs2 = t2.recordSql("select * from MonitoredValueInfo where UnitName="+"'"+Unit[j]+"'");
while(rs2.next())
{
for(int i=0;i<5;i++){
recordTemp[i]=rs2.getString(i+1);
}
// Change=Integer.parseInt(recordTemp[4]);
if(Change==1)
{
if (Integer.parseInt(recordTemp[0])==1)
{
record[j][0]=recordTemp[2];
System.out.println("jiaoyiliang is: "+record[j][0]);
log.Change(Unit[j]);
}
else if (Integer.parseInt(recordTemp[0])==2)
{
record[j][1]=recordTemp[2];
System.out.println("jiaoyizijin is: "+record[j][1]);
log.Change1(Unit[j]);
}
else if (Integer.parseInt(recordTemp[0])==3)
{
record[j][2]=recordTemp[2];
System.out.println("bilifanwei is: "+record[j][2]);
log.Change13(Unit[j]);
}
else if (Integer.parseInt(recordTemp[0])==4)
{
record[j][3]=recordTemp[2];
System.out.println("fazhi is: "+record[j][3]);
log.Change14(Unit[j]);
}
else if (Integer.parseInt(recordTemp[0])==5)
{
record[j][4]=recordTemp[2];
System.out.println("jiaoyizonge is: "+record[j][4]);
log.Change15(Unit[j]);
}
else if (Integer.parseInt(recordTemp[0])==6)
{
record[j][5]=recordTemp[2];
System.out.println("gudongdaima is: "+record[j][5]);
log.Change16(Unit[j]);
}
else if (Integer.parseInt(recordTemp[0])==7)
{
record[j][6]=recordTemp[2];
System.out.println("zhengquandaima is: "+record[j][6]);
log.Change17(Unit[j]);
}
}//end if(Change=1)
}//end while
}//end else
//*************
try
{
rs1 = t1.recordSql("select * from AgentSetupValueInfo");
while(rs1.next())
{
for(int k=0;k<5;k++){
recordTemp2[k]=rs1.getString(k+1);
}
// change=Integer.parseInt(recordTemp2[4]);
if (change==1)
{
if (Integer.parseInt(recordTemp2[0])==1)
{
record[j][7]=recordTemp2[2];
cycle=Integer.parseInt(recordTemp2[2]);
System.out.println("cycle is: "+cycle);
log.Change2();
}
else
{
record[j][8]=recordTemp2[2];
System.out.println("other is: "+record[j][8]);
log.Change3();
}
}//end if(change==1)
}//end while
}//end try
catch (Exception ex) {
ex.printStackTrace();
}
//**************
}//end for
}//end try
catch (Exception ex) {
ex.printStackTrace();
}
record[no][0]=null;
t2.closeConnect();
t1.closeConnect();
t3.closeConnect();
System.out.println("cycle is: "+cycle);
if (Change==1||change==1)
{
// AgletContext context = getAgletContext();
AgletProxy proxy = cxt.createAglet(null, "shezhi.shezhiClient", null);
// proxy.sendOnewayMessage(new Message("dispatch",dest));
System.out.println("i have dispach setupProxy");
// proxy.sendOnewayMessage(new Message("sendWrite",record));
System.out.println("i have send writemesage to setupProxy");
log.Add("success","setupClient:setupClient create and dispatch setupProxy success!");
}//end if(Change==1||change==1)
Thread.sleep(cycle);
}//end try
catch (InvalidAgletException ex) {
ex.printStackTrace();
log.Add("error","setupClient:setupClient dispatch setupProxy failed");
}
catch (Exception ex){
ex.printStackTrace();
}
}//end while(true)
//end add
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?