continueExcute.jsp 5.57 KB
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="weaver.general.InitServer" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.general.GCONST" %>
<%@ page import="weaver.system.SystemUpgrade" %>
<%@ page import="weaver.file.FileManage" %>
<%@ page import="weaver.system.SysUpgradeCominfo" %>
<%@ page import="weaver.system.SystemUpgradeOperation" %>
<%@ page import="java.io.*" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="java.util.Properties" %>
<%@ page import="java.util.ArrayList" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>continueExcute</title>
<style>
.btnclass {
	margin-top:50px;
	margin-left:50px;
	widht:300px;
	height:30px;
}
</style>
</head>
<body>
<%


int checkadmin=1;
Properties prop = new Properties();
FileInputStream fis =new FileInputStream(GCONST.getRootPath() +"WEB-INF"+ File.separatorChar
		+ "prop" + File.separatorChar+"upgradesetting.properties");
prop.load(fis);
checkadmin=Util.getIntValue(Util.null2String(prop.getProperty("checkadmin"),"1"),1);
boolean flag=true;
if(checkadmin==1){
    String islogin=Util.null2String(request.getSession(true).getAttribute("weaver_uadminLogin")+"","0");
	if(!islogin.equals("1")){
		flag=false;
	}
}

if(flag){
	String skipall = Util.null2String(request.getParameter("skipall"));
	String type = Util.null2String(request.getParameter("type"));
//确认已经检查过数据库链接,并开始执行脚本
	if("checkecologydburl".equals(type)) {
		boolean doExecute = false;
		boolean hasSystemUpgrade = false;
		Thread threadSysUpgrade = null;
		//判断是否存在systemupgrade
		ArrayList list = InitServer.getThreadPool();
		for(int i = 0; i< list.size(); i++) {
			String tname = ((Thread)list.get(i)).getName();
			if("systemupgrade".equals(tname)){
				hasSystemUpgrade = true;
				threadSysUpgrade = (Thread)list.get(i);
				break;
			}
		}
		if(threadSysUpgrade == null){
			threadSysUpgrade = (Thread)weaver.general.InitServer.getThreadPool().get(0);
		}
		//threadSysUpgrade = (Thread)weaver.general.InitServer.getThreadPool().get(0);
		BaseBean baseBean = new BaseBean();
		if(threadSysUpgrade != null && !threadSysUpgrade.isAlive()){
			doExecute = true;
   		} else {
			SysUpgradeCominfo suc =  new SysUpgradeCominfo();
			suc.log("######from continueExcute");
			String threadName = threadSysUpgrade.getName();
			suc.log(threadName + " is still alive!!!");

			//systemupgrade不存在就执行线程新建;如果存在可能是线程异常导致的
			if(!hasSystemUpgrade) {
				doExecute = true;
			} else {
				out.print("systemupgrade-threaderror");
			}

		}

		if(doExecute){
			SysUpgradeCominfo suc=new SysUpgradeCominfo();
			suc.ChangeProp("0","",0,0,"","");
			baseBean.writeLog("continueExcute:ThreadName:" + threadSysUpgrade.getName());
			baseBean.writeLog("continueExcute:SystemUpgrade Stop.....");
			//System.out.println("SystemUpgrade Stop.....");
			if("systemupgrade".equals(threadSysUpgrade.getName())) {
				InitServer.getThreadPool().remove(threadSysUpgrade);
			}

			SystemUpgrade systemupgrade = new SystemUpgrade();
			Thread u = new Thread(systemupgrade);
			u.setName("systemupgrade");
			//升级脚本线程应该是在第一个
			InitServer.getThreadPool().add(0,u);
			u.start();

			SysUpgradeCominfo.continueFlag = true;

			RecordSet rs = new RecordSet();
			rs.execute("select 1 from  UpgradeCheckInfo");
			if(rs.next()) {
				rs.execute("update  UpgradeCheckInfo set checkdburl='1'");
			} else {
				rs.execute("insert into UpgradeCheckInfo(checkdburl) values ('1')");
			}
			out.print("systemupgrade-threadesuccess");
			baseBean.writeLog("continueExcute:SystemUpgrade Restart.....");

			ArrayList newList = InitServer.getThreadPool();
			for(int i = 0; i< newList.size(); i++) {
				suc.log("newList" + i + ":" + ((Thread)newList.get(i)).getName());
			}
		}

		return;
	}

	if("1".equals(skipall)) {

		Thread threadSysUpgrade = null;
		threadSysUpgrade = (Thread)weaver.general.InitServer.getThreadPool().get(0);
		BaseBean baseBean = new BaseBean();
		if(!threadSysUpgrade.isAlive()){
			SysUpgradeCominfo suc=new SysUpgradeCominfo();
			int pagestatus = suc.getPagestatus();
			String sqlname = suc.getErrorFile();
			//重新计算运行比例
			String sqlpath = GCONST.getRootPath() + "sqlupgrade" + File.separatorChar;
			String datapath = GCONST.getRootPath()+"data" + File.separatorChar;
			RecordSet rs1 = new RecordSet();

			sqlpath = sqlpath + suc.getDBFileName();
			datapath = datapath + suc.getDBFileName();


			try {
				//拷贝整条语句
				FileManage.moveFileTo(sqlpath+File.separatorChar+sqlname,datapath+File.separatorChar+sqlname);
			} catch (IOException e) {
				e.printStackTrace();
			}
			File sqls = new File(sqlpath);
			SystemUpgrade.setRunFileCount(sqls.list().length);
			SystemUpgrade.setRunFile(0);

			if(pagestatus == 3) {
				suc.ChangeProp("0","",0,0,"","");
			} else {
				suc.ChangeProp("0","",1,0,"","");
				baseBean.writeLog("SystemUpgrade Stop.....");
				//System.out.println("SystemUpgrade Stop.....");
				InitServer.getThreadPool().remove(0);
				SystemUpgrade systemupgrade = new SystemUpgrade();
				Thread u = new Thread(systemupgrade);
				InitServer.getThreadPool().add(0,u);
				u.start();
				baseBean.writeLog("SystemUpgrade Restart.....");
				//System.out.println("SystemUpgrade Restart.....");
			}

		}

	} else {
		SysUpgradeCominfo suc=new SysUpgradeCominfo();
		suc.continueExecute();
	}
}
%>
</body>
</html>