⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appmainserver.java

📁 this is example use EJB with jboss.
💻 JAVA
字号:
/*
 * Copyright(C) 2008, NTT AT Co., Ltd.
 * Project: AWGView
 *
 * Notes:
 *  N/A
 *
 * Record of change:
 * Date         Version      Name       Content
 * 2008/12/15   1.0          TriNT      First create       
 */
package jp.co.ntt.awgview.server;

import java.io.IOException;

import javax.jms.JMSException;
import javax.naming.NamingException;

import jp.co.ntt.awgview.server.common.AlarmLevel;
import jp.co.ntt.awgview.server.common.AlarmType;
import jp.co.ntt.awgview.server.common.LogWriter;
import jp.co.ntt.awgview.server.common.Setting;
import jp.co.ntt.awgview.server.common.Utils;
import jp.co.ntt.awgview.server.constant.Constants;
import jp.co.ntt.awgview.server.jms.JMSManager;
import jp.co.ntt.awgview.server.snmp.SnmpManager;
import jp.co.ntt.awgview.server.thread.AgentDispatcher;
import jp.co.ntt.awgview.server.thread.ShutdownHook;

/**
 * Class name : AppMainServer <BR>
 * 
 * Package : jp.co.ntt_at.awgview.server <BR>
 * 
 * Description: This class is provides function to load all configuration, 
 * create all object necessary and start AWGView server application <BR>
 *
 * @author : AI&T
 * @version : 1.0
 */
public class AppMainServer {  
	/** This Object provides functions to trapping SNMP command of all Requestor*/
	public static AgentDispatcher agentDispatcher = null;
	/**This Object provides functions to send SNMP Command and receive SNMP data.*/
	public static SnmpManager snmpTrapManager = null;
	/** Version information*/
	private static final String VERSION = "-version";
	/** Help content*/
	private static final String HELP = "-help";		
	/** Keep path of JBOSS Server*/
	public static String JBOSS_HOME = null;
	/** ShutdownHook object provides a way of trapping a shutdown of the virtual machine*/
	private static ShutdownHook shutdownHook = null;
	/** JMSManager object control all JMS Queue of application*/
	private static JMSManager jmsManager = null;
	
	/**
	 * Application main of AWG-View
	 * 
	 * @param args
	 */
	public static void main(String[] args) {	
		try {
			
			Setting.getJBossHome();
			
			if (JBOSS_HOME == null){
				System.out.println("FATAL: Make sure that JBOSS_HOME variable is still defined in the environment");
				System.out.println("FATAL: Cannot start application");
				System.exit(0);
			}
			
			if ((args != null) && (args.length > 0)){
				if (args[0] != null) {
					if (VERSION.equalsIgnoreCase(args[0].trim())) {
						printVersion();
						System.exit(Constants.SYSTEM_EXIT);
					} else if (HELP.equalsIgnoreCase(args[0].trim())) {
						printHelp();
						System.exit(Constants.SYSTEM_EXIT);
					}	
				}				
			}
			
			LogWriter.getSNMPLogger().info("AWGView initialize ...");
			
			if (!Utils.checkConfigFiles()){
				LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
				System.exit(Constants.SYSTEM_EXIT);
			}
			LogWriter.getSNMPLogger().info("Checking license ...");
			
			if (Utils.checkLicense()){
				LogWriter.getSNMPLogger().info("License is valid");
			}else{
				LogWriter.getSNMPLogger().fatal("License is invalid");
				LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
				System.exit(Constants.SYSTEM_EXIT);
			}
			
			LogWriter.getSNMPLogger().info("Loading application configuration ...");				
	
			if (!Setting.readConfig()){
				LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
				System.exit(Constants.SYSTEM_EXIT);
			}
			
			if (!AlarmLevel.loadAlarmLevel()){	
				LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
				System.exit(Constants.SYSTEM_EXIT);
			}
			
			if (!AlarmType.loadAlarmType()){
				LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
				System.exit(Constants.SYSTEM_EXIT);
			}			

			snmpTrapManager = new SnmpManager(true);			
			snmpTrapManager.startTrapListener();
				
			LogWriter.getSNMPLogger().info("Starting Trap Listener ...");			
			
			LogWriter.getSNMPLogger().info("Starting lister SNMP command to Client ...");
			
			//Create AgentDispatcher to control command
			agentDispatcher = new AgentDispatcher();
			// Create JMSManager to control JMS/QUEUE
			jmsManager = new JMSManager();			
			jmsManager.startJMSManager();
			// Set shutdown hook
			setShutdownHook();
			
			LogWriter.getSNMPLogger().info("AWGView Server started in " + Utils.getNow(Constants.DATE_FORMAT));			
						
		} catch (NamingException e) {			
			LogWriter.getSNMPLogger().fatal(e.toString());
			LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
			shutDown();
			LogWriter.getSNMPLogger().info("AWGView Server stopped");
			System.exit(Constants.SYSTEM_EXIT);
		} catch (JMSException e) {			
			LogWriter.getSNMPLogger().fatal(e.toString());
			
			if(LogWriter.getSNMPLogger().isTraceEnabled()){
				LogWriter.getSNMPLogger().trace(Utils.parseException(e));
			}
			LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
			shutDown();
			LogWriter.getSNMPLogger().info("AWGView Server stopped");
			System.exit(Constants.SYSTEM_EXIT);
		} catch (IOException e) {
			LogWriter.getSNMPLogger().fatal(e.toString());
			
			if(LogWriter.getSNMPLogger().isTraceEnabled()){
				LogWriter.getSNMPLogger().trace(Utils.parseException(e));
			}
			LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
			shutDown();	
			System.exit(Constants.SYSTEM_EXIT);
		} catch (Exception e) {
			LogWriter.getSNMPLogger().fatal(e.toString());
			
			if(LogWriter.getSNMPLogger().isTraceEnabled()){
				LogWriter.getSNMPLogger().trace(Utils.parseException(e));
			}			
			LogWriter.getSNMPLogger().fatal("Cannot start AWGView Server");
			shutDown();			
			LogWriter.getSNMPLogger().info("AWGView Server stopped");
			System.exit(Constants.SYSTEM_EXIT);
		}
	}
	
	/**
	 * This is the function to print version of AWG-View project
	 */
	protected static void printVersion() {
		System.out.println(Constants.VERSION);
	}

	/**
	 * This is the function to print help of AWG-View project
	 */
	protected static void printHelp() {
		System.out.println(Constants.HELP);
	}
	
	/**
	 * 	Demonstrate adding a Shutdown Hook to the Runtime.
	 */
	protected static void setShutdownHook(){
		try{
			Thread curThread = Thread.currentThread();
			curThread.setName("main");
			shutdownHook = new ShutdownHook();
			shutdownHook.setSnmpThread(curThread);
			Runtime.getRuntime().addShutdownHook(shutdownHook);
			LogWriter.getSNMPLogger().info("[AWGView_SNMP] Shutdown hook added");			
		}catch (Exception e){
			LogWriter.getSNMPLogger().warn("[AWGView_SNMP] Could not add Shutdown hook");
			if(LogWriter.getSNMPLogger().isTraceEnabled()){
				LogWriter.getSNMPLogger().trace(Utils.parseException(e));
			}			
		}
	}
	
	/**
	 * Shutdown application to clean-up when the user shuts down application.
	 */
	public static void shutDown() {
		try{						
			if (snmpTrapManager != null){				
				snmpTrapManager.destroy();				
			}
			snmpTrapManager = null;
			
			if (jmsManager != null){
				jmsManager.stopJMSManager();
			}
			jmsManager = null;
			
			if (agentDispatcher != null){
				agentDispatcher.destroy();	
			}
			agentDispatcher = null;			
			System.gc();					
		}catch (JMSException e){
			if (Thread.currentThread().isAlive()){
				Thread.currentThread().interrupt();
			}
			LogWriter.getSNMPLogger().error("Error when closing application" + e.toString());
			if(LogWriter.getSNMPLogger().isTraceEnabled()){
				LogWriter.getSNMPLogger().trace(Utils.parseException(e));
			}
			e.printStackTrace();
			System.gc();
			
		}catch (Throwable e){
			if (Thread.currentThread().isAlive()){
				Thread.currentThread().interrupt();
			}
			LogWriter.getSNMPLogger().error("Error when closing application" + e.toString());			
			if(LogWriter.getSNMPLogger().isTraceEnabled()){
				LogWriter.getSNMPLogger().trace(Utils.parseException(e));
			}
			e.printStackTrace();
			System.gc();			
		}
	}
}

⌨️ 快捷键说明

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