📄 xmlrouter.java~88~
字号:
import java.io.*;
import java.net.*;
import Services.*;
/**
* <p>Title: InHand SMS platform XMLRouter</p>
* <p>Description: InHand 短信服务平台服务路由器</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: 北京映翰通网络技术有限公司</p>
* @author 韩传俊 shock2000@21cn.com
* @version 1.0
*/
public class XMLRouter {
boolean isRunning=false;
RecvManager recv=null;
SendManager send=null;
Socket socket=null;
public XMLRouter() {
}
public boolean connectXMLCenter(){
try{
System.out.println("try to connect XMLCenter ...");
socket=new Socket(Config.server_host,Config.server_port);
socket.setSoTimeout(10000);
socket.setSendBufferSize(9192);
socket.setReceiveBufferSize(9192);
recv=new RecvManager(socket.getInputStream());
send=new SendManager(socket.getOutputStream());
send.startup();
recv.startup();
return true;
}catch(Exception e){
//e.printStackTrace();
System.out.println("fail to connect to the XMLRouter!");
Config.log.log(e,"while connect to the XMLRouter!");
}
return false;
}
public static void main(String[] args) {
XMLRouter router=new XMLRouter();
ServiceInfo serviceInfo=null;
router.isRunning=true;
try{
Config.getConfig();
while(!router.connectXMLCenter()){
System.out.println("Connect to XMLCenter("+Config.server_host+":"+Config.server_port+"),wait for a moment to retry!");
Thread.sleep(5000);
}
System.out.println("connect to XMLCenter("+Config.server_host+":"+Config.server_port+") success!");
Config.log.log("connect to XMLCenter("+Config.server_host+":"+Config.server_port+") success!");
ServiceServer service=new ServiceServer();
service.startup();
ProcessServiceID processServiceID=new ProcessServiceID();
processServiceID.startup();
ProcessSubcode processSubcode=new ProcessSubcode();
processSubcode.startup();
ProcessSMS processMO=new ProcessSMS();
processMO.startup();
//ProcessSMS processMO2=new ProcessSMS();
//processMO2.startup();
//ProcessServiceID processServiceID1=new ProcessServiceID();
//processServiceID1.startup();
//ProcessSubcode processSubcode1=new ProcessSubcode();
//processSubcode1.startup();
ThreadManager manager=new ThreadManager(router);
manager.startup();
while(router.isRunning){
Thread.sleep(5000);
//System.out.println("dfasdfasdasdfsd");
if (!router.recv.isRunning() || !router.send.isRunning()){
router.recv.shutdown();
router.send.shutdown();
router.recv=null;
router.send=null;
router.close();
System.out.println("the connect to xmlcenter is abnormal,try to reconnect ...");
if(!router.connectXMLCenter()){
System.out.println("connect to XMLCenter("+Config.server_host+":"+Config.server_port+"),wait for a moment to retry!");
}else{
System.out.println("connect to XMLCenter("+Config.server_host+":"+Config.server_port+") success!");
Config.log.log("connect to XMLCenter("+Config.server_host+":"+Config.server_port+") success!");
}
}
if(!processServiceID.isRunning() || !processServiceID.isAlive()){
Config.log.log("Thread processServiceID is not running("+processServiceID.isRunning()+"),try to restrart!");
try{
processServiceID.shutdown();
processServiceID.join(1000);
Thread.sleep(1500);
}catch(Exception e){
Config.log.log(e,"in main()");
}
processServiceID.startup();
}
if(!processSubcode.isRunning() || !processSubcode.isAlive()){
Config.log.log("Thread processSubcode is not running("+processSubcode.isRunning()+"),try to restrart!");
try{
processSubcode.shutdown();
processSubcode.join(1000);
Thread.sleep(1500);
}catch(Exception e){
Config.log.log(e,"in main()");
}
processSubcode.startup();
}
if(!processMO.isRunning() || !processMO.isAlive()){
Config.log.log("Thread processMO is not running("+processMO.isRunning()+"),try to restrart!");
try{
processMO.shutdown();
processMO.join(1000);
Thread.sleep(1500);
}catch(Exception e){
Config.log.log(e,"in main()");
}
processMO.startup();
}
if(!service.isRunning() || !service.isAlive()){
Config.log.log("Thread service is not running("+service.isRunning()+"),try to restrart!");
try{
service.shutdown();
service.join(1000);
Thread.sleep(1500);
}catch(Exception e){
Config.log.log(e,"in main()");
}
service.startup();
}
//for(int i=0;i<Config.subcode_item.size();i++){
// serviceInfo=(ServiceInfo)Config.subcode_item.elementAt(i);
// if (serviceInfo.m_socket==null){
//
//}
//for(int i=0;i<Config.service_id_item.size();i++){
// serviceInfo=(ServiceInfo)Config.service_id_item.elementAt(i);
// //if (){
// //}
//}
}
router.recv.shutdown();
router.send.shutdown();
processMO.shutdown();
//processMO2.shutdown();
processSubcode.shutdown();
processServiceID.shutdown();
// processSubcode1.shutdown();
//processServiceID1.shutdown();
service.shutdown();
Thread.sleep(3000);
router.close();
System.out.println("System quit ...");
Config.log.log("System quit ...");
Config.releaseConfig();
}catch(Exception e){
e.printStackTrace();
System.exit(0);
}
}
public void close(){
if (this.socket != null){
try{
this.socket.close();
}catch(Exception e){
}
}
this.socket=null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -