if(isFinish != 0 || (waitTime >= maxWaitTime) ||(stopTime > maxStopTime))
";
if($DEBUG) echo "
if($isFinish != 0 || ($waitTime >= $maxWaitTime) ||($stopTime > $maxStopTime))
";
//命令处理完毕
//----------------
if(($isFinish != 0) || ($waitTime >= $maxWaitTime) || ($stopTime > $maxStopTime)){
if($commId >= $maxOfCommId){ //初始化命令表
//先删除表
$dropSql = "DROP TABLE $commTable ";
mysqli_query($pubConn,$dropSql);
//再建一个结构相同的新表
$createSql="CREATE TABLE parameterComm (
commId int(6) NOT NULL auto_increment,
commType tinyint(1) NOT NULL default '0',
sysTypeNo smallint(3) NOT NULL default '0',
sysNo smallint(3) NOT NULL default '0',
subSysNo smallint(3) NOT NULL default '0',
instanceNo int(6) unsigned NOT NULL default '0',
paramType tinyint(1) NOT NULL default '0',
objId varchar(30) NOT NULL default '',
commState tinyint(1) NOT NULL default '0',
totalNum int(6) NOT NULL default '0',
finishNum int(6) NOT NULL default '0',
sendTime datetime NOT NULL default '0000-00-00 00:00:00',
bgnTime datetime default '0000-00-00 00:00:00',
endTime datetime default '0000-00-00 00:00:00',
remark varchar(200) binary default NULL,
PRIMARY KEY ( commId ),
KEY commType ( commType ),
KEY sysTypeNo ( sysTypeNo ),
KEY sysNo ( sysNo ),
KEY subSysNo ( subSysNo ),
KEY paramType ( paramType ),
KEY objId ( objId ),
KEY commState ( commState )
) ";
mysqli_query($pubConn,$createSql);
}else{
//删除命令表的相关命令
$commArr = explode('-',$commIdStr);
for($i=0;$ideleteSql = $deleteSql";
mysqli_query($pubConn,$deleteSql);
echo mysqli_error($pubConn);
}
}
// 重定向返回指定页
if($isFinish != 0){
if($isFinish > 0){
echo "Finished!!";
if($DEBUG) exit();
echo " ";
}elseif($isFinish == -1){
echo "Failed in some system!!";
if($DEBUG) exit();
echo " ";
}else{
echo "Failed!!";
if($DEBUG) exit();
echo " ";
}
}elseif($usedTime >= $maxOverTime && $stopTime == 1){
echo "Stoped!!";
if($DEBUG) exit();
echo " ";
}else{ //$usedTime >= $maxOverTime
echo "Timeout!!";
if($DEBUG) exit();
echo " ";
}
exit();
}//end of if($isFinish....)
//显示命令执行状态
//-----------------------------
$showTime = $usedTime*2;
echo "Time:$showTime s";
//$stopTime = 0;
$okNum = 0;
$failNum = 0;
$commNum = 0;
$commArr = explode('-',$commIdStr);
$thisTImeFinishNumstr='';
$lastTimeFinishNumArr = explode('-',$lastTimeFinishNumStr);
for($i=0;$iget command = $commSql";
$commResult = mysqli_query($pubConn,$commSql);
if(mysqli_num_rows($commResult) <= 0){
echo "Cannot find this command's info";
exit();
}
$commRows = @mysqli_fetch_array($commResult);
$sysTypeNo = $commRows[sysTypeNo];
$sysNo = $commRows[sysNo];
$subSysNo = $commRows[subSysNo];
$commType = $commRows[commType];
$paramType = $commRows[paramType];
$objId = $commRows[objId];
$commState = $commRows[commState];
switch($commType){
case 0: echo " GET ";
break;
case 3: echo " SET ";
break;
default:
echo "Unknown Command Type";
exit();
}
//获取该系统类型的snmp头和类型名称
if(!isset($sysTypeName)){
$sysConfSql = "SELECT snmpHead,sysTypeName FROM $sysConfTable WHERE sysTypeNo='$sysTypeNo'";
if($DEBUG) echo "
get conf = $sysConfSql";
$sysConfResult = mysqli_query($pubConn,$sysConfSql);
echo mysqli_error($pubConn);
$sysConfRows = @mysqli_fetch_array($sysConfResult);
$sysTypeName = $sysConfRows[sysTypeName];
$snmpHead = $sysConfRows[snmpHead];
}
$sysName = $sysTypeName.'_'.$sysNo.'_'.$subSysNo;
echo "
$sysName 's";
$objIdStr=$snmpHead.'.'.$objId;
echo "$objIdStr";
switch($paramType){
case 0: echo " [sub-system parameter] ";
break;
case 1: echo " [public sub-system parameter]";
break;
case 2: echo " [public system parameter]";
break;
default:
echo "Unknown Parameter Type";
exit();
}
switch($commState){
case 0: //process failed
$failNum++;
echo "
$commRows[remark]";
break;
case 1: //wait process
$waitTime++;
break;
case 2: //in process
$waitTime = 0;
//只要有一个命令的完成数在增长,就认为该组命令在运行,否则认为命令处理超时
if($DEBUG) echo "====> {$commRows[finishNum]} > {$lastTimeFinishNumArr[$i]}";
if($commRows[finishNum] > $lastTimeFinishNumArr[$i]){
$stopTime = 0;
}else{
$stopTime++;
}
omcProgressBar($commRows[totalNum],$commRows[finishNum]);
break;
case 3: //process finished
$okNum++;
omcProgressBar(100,100);
break;
default:
echo "Unknown Command State";
exit();
}
$thisTimeFinishNumStr .=$commRows[finishNum].'-';
echo "
";
}//end of for($i=0;$i$commNum =?= $finishNum";
if($commNum == $okNum){
$isFinish = 1;
}elseif($failNum > 0 && $okNum > 0){
$isFinish = -1;
}elseif($commNum == $failNum){
$isFinish = -2;
}else{
$isFinish = 0;
}
if($DEBUG) echo"
lastTimeFinishNumStr=$lastTimeFinishNumStr";
if($DEBUG) echo"
thisTimeFinishNumStr=$thisTimeFinishNumStr";
$lastTimeFinishNumStr = $thisTimeFinishNumStr;
//刷新返回
//--------------
$usedTime++; //总时间
$failURL= rawurlencode($failURL);
$okURL = rawurlencode($okURL);
//保留变量值,传到下次刷新
$keepStr= "usedTime=$usedTime&waitTime=$waitTime&isFinish=$isFinish&stopTime=$stopTime&failURL=$failURL&okURL=$okURL&commIdStr=$commIdStr&commNum=$commNum&lastTimeFinishNumStr=$lastTimeFinishNumStr&selectedDPC=$selectedDPC";
if($DEBUG) echo "
keepStr=$keepStr";
?>
">