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 + -
显示快捷键?