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

📄 locprefixmain.java

📁 中国移动定位引擎的客户端
💻 JAVA
字号:
package ffcs.lbp.le;

import java.io.IOException;

import ffcs.config.Config;
import ffcs.config.Module;
import ffcs.lbp.common.Constant;
import ffcs.lbp.common.TcpServer;
import ffcs.lbp.dao.RouteDAO;
import ffcs.logging.Log;
import ffcs.logging.LogFactory;

/**
* <p>Title: 小区推送LBP项目</p>
* <p>Description:
*   定位前置模块的入口程序 相关程序的初始化,程序退出时地,进行相关资源的释放, 
*   最好该入口程序能做成JMX标准方式来管理,用JMX服务进行热(不停止程序)管理
* </p>
* <p>Copyright: 2008 福建福富软件技术股份有限公司 </p>
* <p>Company: 福建福富软件技术股份有限公司</p> 
* @author chenxin
* @version v1.0
*/
public class LocPrefixMain {
    
	public static final String MODEUL_NAME = "LocPrefix";
	public static final String LocPrefix_PORT = "LocPrefixPort";

//	private static TcpServer ts = null;
	
	private static TcpServer LocPrefixServer = null;
	
//	private static  UDPAlarmServer udp =null;
	
	private static Log log = LogFactory.getLog(LocPrefixMain.class);

	private static boolean running=true;
	
	public static int traceUdpPort=10030;
	
	public static int port=10002;
	public static int LocPrefixPORT=10003;

	/**
	 * 入口方法
	 * @param args 启动时的传入参数
	 */
	public static void main(String[] args) {
		try {
			Module module = Config.getInstance().getModule(MODEUL_NAME);
			port = module.getPort();
//			LocPrefixPORT = Integer.parseInt(module.getProperties(LocPrefix_PORT));
		} catch (Exception e) {
			log.error("读配置文件出错", e);
			System.exit(0);
		}
        
		// 初始化LocPrefixIO管理程序
		LocPrefixIOProcess mgip = new LocPrefixIOProcess();
	
		//初始化服务监听程序
//		ts = new TcpServer(port, mgip);
		LocPrefixServer = new TcpServer(port,mgip);
		
		//如果服务监听程序启动不成功,退出程序
	/*	if (!ts.startServer()) {
			log.error("TcpServer程序启动不成功,请检查端口是否已用:"+port);
			destroy();
		}*/
		//如果服务监听程序启动不成功,
		if (!LocPrefixServer.startServer()) {
			destroy();
			log.error("LocPrefixServer程序启动不成功,请检查端口是否已用:"+LocPrefixPORT);
		}
		
		try {
		    mgip.start();
		} catch (IOException ioe) {
			ioe.printStackTrace();
			destroy();
		}
		
//		initUDPServer();
		
		log.info("程序正常启动完成");
		/**
		 * 其它线程调用,{@link #SmscMain.exit()} 停止该程序;
		 */
		while(running){
			//读取配置文件信息
			try{
				Constant.readConfig();
				//每隔一定时间间隔,更新回送路由表
				RouteDAO.refreshRoute();
			}catch(Exception e){
				log.error("读取配置信息出错",e);
			}
			
			try {
				Thread.sleep(60000);
			} catch (InterruptedException ie) {
			    ie.printStackTrace();
			}
		}
		
		destroy();
	}
	
	/**
	 * 初始化流程追踪的UDP相关程序,
	 * 如果流程追踪初始失败,只是该功能失效,不影响正常的业务功能
	 */   
/*	private static void initUDPServer(){
		traceUdpPort = Integer.parseInt(Config.getInstance().getGlobalProp(
		"trace_server_port"));
        TraceWork work = new TraceWork();
        UdpProcess udpProcess = new UdpProcess(work, 1);
        try { 
            udp = new UDPAlarmServer(traceUdpPort, udpProcess);
            udp.start();
        } catch (Exception ioe) {
        	if(udp!=null){
        		udp.stopUDP();
        	}
            log.error("初始化流程追踪UDP错误,流程追踪功能可能失效",ioe);
        }
	}*/
	/**
	 * 程序退出方法
	 */
	public  static void exit() {
		running=false;
	}
	
	/**
	 * 退出程序,进行相关的资源处理
	 */
	private static void destroy() {
//		ts.stopThread();
		LocPrefixServer.stopThread();
		/* 进行相关资源的释放处理 */
//		DBPool.destroyPool();// 数库库连接资源关闭
		log.error("程序退出");
		System.exit(0);// 退出程序
	}
	
}

⌨️ 快捷键说明

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