專利名稱:服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)應(yīng)用技術(shù),具體地說(shuō)是一種服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法。
背景技術(shù):
計(jì)算機(jī)服務(wù)器是計(jì)算機(jī)網(wǎng)絡(luò)的神經(jīng)中樞,服務(wù)器一旦出現(xiàn)故障,就會(huì)造成網(wǎng)絡(luò)服務(wù)中斷或網(wǎng)絡(luò)癱瘓,重要信息數(shù)據(jù)的丟失。通常計(jì)算機(jī)服務(wù)器及其外圍設(shè)備正常工作時(shí),管理人員一般要24小時(shí)值班,隨時(shí)處理服務(wù)器出現(xiàn)的各種問(wèn)題,保證其正常工作。但是現(xiàn)在信息系統(tǒng)應(yīng)用面越來(lái)越寬,作用越來(lái)越大,系統(tǒng)也越來(lái)越復(fù)雜,管理難度越來(lái)越高。在這種情況下,原始的人工管理,已經(jīng)無(wú)法實(shí)時(shí)監(jiān)控如此龐大而復(fù)雜的網(wǎng)絡(luò),無(wú)法實(shí)時(shí)了解網(wǎng)絡(luò)運(yùn)行狀況和通斷情況,無(wú)法實(shí)時(shí)發(fā)現(xiàn)服務(wù)器的故障,快速反應(yīng)。面對(duì)如此眾多的服務(wù)器如何進(jìn)行快速有效的遠(yuǎn)程管理維護(hù)便成為企業(yè)經(jīng)營(yíng)管理上非常重要的課題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法,以確保服務(wù)器正常運(yùn)行,使管理維護(hù)效率更高,減少系統(tǒng)維護(hù)費(fèi)用。
本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,通過(guò)服務(wù)器的主板管理控制器(BMC)監(jiān)測(cè)服務(wù)器系統(tǒng)運(yùn)行狀態(tài),當(dāng)網(wǎng)絡(luò)服務(wù)器系統(tǒng)發(fā)生故障時(shí),自動(dòng)運(yùn)行固化在非易失存儲(chǔ)單元(EEPROM)中的特定指令,此程序的運(yùn)行與主機(jī)運(yùn)行狀態(tài)無(wú)關(guān),只要服務(wù)器電源保留有待機(jī)電壓+5Vstandby即可運(yùn)行。通過(guò)定制特定指令,使服務(wù)器通過(guò)調(diào)制解調(diào)器自動(dòng)連接到電話網(wǎng)絡(luò)系統(tǒng),發(fā)送尋呼報(bào)警信息,即可實(shí)現(xiàn)服務(wù)器的遠(yuǎn)程智能通訊管理維護(hù)服務(wù)。
一、服務(wù)器發(fā)生故障,自動(dòng)撥打管理員尋呼機(jī)(或者手機(jī))。
二、外地管理接到特點(diǎn)的傳呼代碼,發(fā)現(xiàn)服務(wù)器故障。
三、外地管理員通過(guò)網(wǎng)絡(luò)登錄到服務(wù)器,進(jìn)行服務(wù)器的遠(yuǎn)程診斷與維護(hù)。
附圖1為服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法的通訊示意圖。
附圖2為服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法的通訊管理流程圖。
5、實(shí)施方式 參照說(shuō)明書(shū)附圖對(duì)本發(fā)明的服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法作以下詳細(xì)說(shuō)明 服務(wù)器本地的管理子系統(tǒng)自動(dòng)實(shí)時(shí)監(jiān)視探測(cè)系統(tǒng)的運(yùn)行狀態(tài),當(dāng)出現(xiàn)故障時(shí)自動(dòng)運(yùn)行主板管理控制器存儲(chǔ)單元(EEPROM)中的固化撥號(hào)指令,使得服務(wù)器通過(guò)調(diào)制解調(diào)器自動(dòng)連接到市話通訊網(wǎng)絡(luò)中,并且將服務(wù)器的運(yùn)行狀態(tài)信息以數(shù)字代碼或語(yǔ)音短信的方式,通過(guò)市話和無(wú)線通訊網(wǎng)絡(luò),發(fā)送給服務(wù)器管理員。服務(wù)器管理員可通過(guò)服務(wù)器智能無(wú)線通訊實(shí)施多點(diǎn)遠(yuǎn)程監(jiān)控或通過(guò)互聯(lián)網(wǎng)登陸服務(wù)器實(shí)施遠(yuǎn)程診斷與維護(hù)。
主板固化撥號(hào)指令為 void CMyComCtrlMyDial(CString servername){ //獲取預(yù)先設(shè)置的報(bào)警配置信息,如尋呼號(hào)碼等 int m=0,n=0; char str[255]=″0″; CString ExeAdress2; CString msg; GetModuleDir(&ExeAdress2); CString path=ExeAdress2+″\\try.ini″; GetPrivateProfileString(servername,″number1″,″″,str,255,path); CString dialnumber1=str; GetPrivateProfi leString(servername,″number2″,″″,str,255,path); CString dialnumber2=str; GetPrivateProfileString(servername,″number3″,″″,str,255,path); CString dialnumber3=str; GetPrivateProfileString(servername,″callnumber″,″″,str,255,path); CString callnumber=str; GetPrivateProfileString(servername,″callinterval″,″″,str,255,path); CString callinterval=str; m=atoi(cal1number); n=atoi(callinterval); if((dialnumber1==″″)&&(dialnumber2==″″)&&(dialnumber3==″″)) { msg=″Page Number Error″; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return;}else {<!-- SIPO <DP n="2"> --><dp n="d2"/>if(call number==″″){ if(callinterval==″″) { msg=″Configuration error!″; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } else { msg=″Paging count error!″; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } } else if(callinterval==″″) { msg=″尋呼配置錯(cuò)誤!請(qǐng)正確配置呼叫間隔?! ?showMsg.ShowWindow(Sw_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } else { if(m>10) { if(n>300) { msg=″Inter-Time error!″; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } else { msg=″Paging configuration error″;<!-- SIPO <DP n="3"> --><dp n="d3"/>showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } } else if(n>300) { msg=″Paging time configuration error″; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } } } if((callnumber!=″″)&&(callinterval?。健濉?)//if1 { if((m<=10)&&(n<=300))//if2 { RASDIALPARAMS rdParams; rdParams.dwSize=sizeof(RASDIALPARAMS); rdParams.szEntryName
=’\0’; rdParams.szCallbackNumber
=’\0’; rdParams.szUserName
=’\0’; rdParams.szPassword
=’\0’; rdParams.szDomai n
=’\0’; CMainFrame*pMainFrm=(CMainFrame*)AfxGetMainWnd(); for(int x=1;x<=m;x++)//for1 { DWORD dwRet1=-1,dwRet2=-1,dwRet3=-1; lstrcpy(rdParams.szPhoneNumber,dialnumber1); if(rdParams.szPhoneNumber
?。健痋0’) { dwRet1=RasDial(NULL,NULL,&rdParams,OL,NULL, &pMainFrm->hRasConn);//如果撥號(hào)成功,dwRet返回值為零 if((dwRet1!=777)&&(dwRet1?。?1)&&(dwRet1!=651)) { char szBuf1[256]; if(dwRet1==756)<!-- SIPO <DP n="4"> --><dp n="d4"/> wsprintf((LPSTR)szBuf1,″撥號(hào)連接錯(cuò)誤!調(diào)制解調(diào)器沒(méi)有正確配<br/>置,請(qǐng)檢查撥號(hào)設(shè)置(%1d)?!澹琩wRet1);// else { if(RasGetErrorString((UINT)dwRet1,<br/>(LPSTR)szBufl,256)?。?) wsprintf((LPSTR)szBufl,″撥號(hào)錯(cuò)誤,請(qǐng)檢查調(diào)制解<br/>調(diào)器和撥號(hào)設(shè)置(%ld)?!?,dwRet1); } msg=(LPSTR)szBufl; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } } if((dwRet1==777)||(dwRet1==0)||(rdParams.szPhoneNumber
==’\0’)||(dwRet1==651)) { lstrcpy(rdParams.szPhoneNumber,dialnumber2); pMainFrm->hRasConn=NULL; if(rdParams.szPhoneNumber
?。健痋0’) { dwRet2=RasDial(NULL,NULL,&rdParams,OL,NULL,&pMainFrm->hRasConn);//如果撥號(hào)成功,dwRet返回值為零 if((dwRet2 !=777)&&(dwRet2?。?1)&&(dwRet2?。?51)) { char szBuf2[256]; if(RasGetErrorString((UINT)dwRet2,(LPSTR)szBuf2,256)!=0) wsprintf((LPSTR)szBuf2,″撥號(hào)錯(cuò)誤,請(qǐng)檢查您的調(diào)制解調(diào)器和撥號(hào)設(shè)置是否正確(%ld).″,dwRet2); msg=(LPSTR)szBuf2; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } } lstrcpy(rdParams.szPhoneNumber,dialnumber3);<!-- SIPO <DP n="5"> --><dp n="d5"/>pMainFrm->hRasConn=NULL;if(rdParams.szPhoneNumber
?。健痋0’) {dwRet3=RasDial(NULL,NULL,&rdParams,OL,NULL,&pMainFrm->hRasConn);//如果撥號(hào)成功,dwRet返回值為零 if((dwRet3!=777)&&(dwRet3?。?1)&&(dwRet3!=651)) { char szBuf3[256]; if(RasGetErrorString((UINT)dwRet3,(LPSTR)szBuf3,256) !=0) wsprintf((LPSTR)szBuf3,″撥號(hào)錯(cuò)誤,請(qǐng)檢查您的調(diào)制解調(diào)器和撥號(hào)設(shè)置是否正確設(shè)置(%ld).″,dwRet3); msg=(LPSTR)szBuf3; showMsg.ShowWindow(SW_SHOWDEFAULT); showMsg.m_msg.SetWindowText(msg); return; } } } if(x<m) Sleep(n*60000); }//end_for1 }//end_if2}//end_if1} 本發(fā)明的服務(wù)器智能無(wú)線尋呼報(bào)警方法和現(xiàn)有技術(shù)相比,具有構(gòu)思合理、使用方便、節(jié)省人力、智能化程度高等特點(diǎn),因而,具有很好的推廣使用價(jià)值。
權(quán)利要求
1.服務(wù)器遠(yuǎn)程智能通訊管理維護(hù)方法,其特征在于服務(wù)器管理子系統(tǒng)監(jiān)視探測(cè)服務(wù)器系統(tǒng)運(yùn)行狀態(tài),自動(dòng)運(yùn)行主板管理控制器存儲(chǔ)單元(EEPROM)中的固化撥號(hào)指令,服務(wù)器自動(dòng)連接到市話通訊網(wǎng)絡(luò)中,并且將運(yùn)行狀態(tài)信息以數(shù)字代碼或語(yǔ)音短信的方式,通過(guò)市話和無(wú)線通訊網(wǎng)絡(luò),發(fā)送給服務(wù)器管理員,實(shí)現(xiàn)服務(wù)器的遠(yuǎn)程智能無(wú)線尋呼報(bào)警和管理維護(hù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于服務(wù)器管理員通過(guò)服務(wù)器智能無(wú)線通訊實(shí)施多點(diǎn)遠(yuǎn)程監(jiān)控。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于服務(wù)器管理員通過(guò)互聯(lián)網(wǎng)登陸服務(wù)器實(shí)施遠(yuǎn)程診斷與維護(hù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于主板管理控制器(BMC)上固化的自動(dòng)撥號(hào)連接指令為
void CMyComCtrl::MyDial(CString servername){//獲取預(yù)先設(shè)置的報(bào)警配置信息,如尋呼號(hào)碼等int m=0,n=0;char str[255]=″0″;CString ExeAdress2;CString msg;GetModuleDir(& ExeAdress2);CString path=ExeAdress2+″\\try.ini″;GetPrivateProfileString(servername,″number1″,″″,str,255,path);CString dialnumber1=str;GetPrivateProfileString(servername,″number2″,″″,str,255,path);CString dialnumber2=str;GetPrivateProfileString(servername,″number3″,″″,str,255,path);CString dialnumber3=str;GetPrivateProfileString(servername,″callnumber″,″″,str,255,path);CString callnumber=str;GetPrivateProfileString(servername,″callinterval″,″″,str,255,path);CString callinterval=str;m=atoi(callnumber);n=atoi(callinterval);if((dialnumber1==″″) &&(dial number2==″″)&&(dialnumber3==″″)){<!-- SIPO <DP n="1"> --><dp n="c1"/>msg=″Page Number Error″;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}else{if(callnumber==″″){if(callinterval==″″){msg=″Configuration error!″;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}else{msg=″Paging count error!″;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}}elseif(callinterval==″″){msg=″尋呼配置錯(cuò)誤!請(qǐng)正確配置呼叫間隔?!?;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}else{if(m>10){if(n>300){msg=″Inter-Time error!″;<!-- SIPO <DP n="2"> --><dp n="c2"/>showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}else{msg=″Paging configuration error″;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}}elseif(n>300){msg=″Paging time configuration error″;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}}}if((callnumber?。健濉?&&(callinterval?。健濉?)//if1{if((m<=10)&&(n<=300))//if2{RASDIALPARAMS rdParams;rdParams.dwSize=sizeof(RASDIALPARAMS);rdParams.szEntryName
=’\0’;rdParams.szCallbackNumber
=’\0’;rdParams.szUserName
=’\0’;rdParams.szPassword
=’\0’;rdParams.szDomain
=’\0’;CMainFrame * pMainFrm=(CMainFrame*)AfxGetMainWnd();for(int x=1;x<=m;x++)//for1{DWORD dwRet1=-1,dwRet2=-1,dwRet3=-1;lstrcpy(rdParams.szPhoneNumber,dialnumber1);if(rdParams.szPhoneNumber
?。健痋0’)<!-- SIPO <DP n="3"> --><dp n="c3"/>{dwRet1=RasDial(NULL,NULL,&rdParams,OL,NULL,&pMainFrm->hRasConn);//如果撥號(hào)成功,dwRet返回值為零if((dwRet1!=777)&&(dwRet1?。?1)&&(dwRet1!=651)){char szBuf1[256];if(dwRet1==756)wsprintf((LPSTR)szBuf1,″撥號(hào)連接錯(cuò)誤!調(diào)制解調(diào)器沒(méi)有正確配置,請(qǐng)檢查撥號(hào)設(shè)置(%ld)。″,dwRet1);//else{if(RasGetErrorString((UINT)dwRet1,(LPSTR)szBuf1,256)?。?)wsprintf((LPSTR)szBuf1,″撥號(hào)錯(cuò)誤,請(qǐng)檢查調(diào)制解調(diào)器和撥號(hào)設(shè)置(%ld)?!?,dwRet1);}msg=(LPSTR)szBuf1;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}}if((dwRet1==777)||(dwRet1==0)||(rdParams.szPhoneNumber
==’\0’)||(dwRet1==651)){lstrcpy(rdParams.szPhoneNumber,dialnumber2);pMainFrm->hRasConn=NULL;if(rdParams.szPhoneNumber
?。健痋0’){dwRet2=RasDial(NULL,NULL,&rdParams,OL,NULL,&pMainFrm->hRasConn);//如果撥號(hào)成功,dwRet返回值為零if((dwRet2!=777)&&(dwRet2?。?1)&&(dwRet2?。?51)){char szBuf2[256];if(RasGetErrorString((UINT)dwRet2,(LPSTR)szBuf2,256)?。?)wsprintf((LPSTR)szBuf2,″撥號(hào)錯(cuò)誤,請(qǐng)檢查您的調(diào)制解調(diào)器和撥號(hào)設(shè)置是否正確(%ld).″,dwRet2);<!-- SIPO <DP n="4"> --><dp n="c4"/>msg=(LPSTR)szBuf2;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}}lstrcpy(rdParams.szPhoneNumber,dialnumber3);pMainFrm->hRasConn=NULL;if(rdParams.szPhoneNumber
!=’\0’){dwRet3=RasDial(NULL,NULL,&rdParams,OL,NULL,&pMainFrm->hRasConn);//如果撥號(hào)成功,dwRet返回值為零if((dwRet3?。?77)&&(dwRet3?。?1)&&(dwRet3?。?51)){char szBuf3[256];if ( RasGetErrorString((UINT)dwRet3,(LPSTR)szBuf3,256) ?。?)wsprintf((LPSTR)szBuf3,″撥號(hào)錯(cuò)誤,請(qǐng)檢查您的調(diào)制解調(diào)器和撥號(hào)設(shè)置是否正確設(shè)置(%ld).″,dwRet3);msg=(LPSTR)szBuf3;showMsg.ShowWindow(SW_SHOWDEFAULT);showMsg.m_msg.SetWindowText(msg);return;}}}if(x<m)Sleep(n*60000);}//end_for1}//end_if2}//end_if1}
全文摘要
本發(fā)明提供一種服務(wù)器遠(yuǎn)程智能報(bào)警和管理維護(hù)方法。服務(wù)器本地的管理子系統(tǒng)自動(dòng)實(shí)時(shí)監(jiān)視探測(cè)系統(tǒng)的運(yùn)行狀態(tài),當(dāng)出現(xiàn)故障時(shí)自動(dòng)運(yùn)行主板管理控制器存儲(chǔ)單元(EEPROM)中的固化撥號(hào)指令,使得服務(wù)器通過(guò)調(diào)制解調(diào)器自動(dòng)連接到市話通訊網(wǎng)絡(luò)中,并且將服務(wù)器的運(yùn)行狀態(tài)信息以數(shù)字代碼或語(yǔ)音短信的方式,通過(guò)市話和無(wú)線通訊網(wǎng)絡(luò),發(fā)送給服務(wù)器管理員,以實(shí)現(xiàn)服務(wù)器的遠(yuǎn)程智能無(wú)線尋呼報(bào)警和管理維護(hù)。本發(fā)明的服務(wù)器智能無(wú)線尋呼報(bào)警方法和現(xiàn)有技術(shù)相比,具有構(gòu)思合理、使用方便、節(jié)省人力、智能化程度高等特點(diǎn),因而,具有很好的推廣使用價(jià)值。
文檔編號(hào)H04L12/24GK1595888SQ20031011460
公開(kāi)日2005年3月16日 申請(qǐng)日期2003年12月16日 優(yōu)先權(quán)日2003年12月16日
發(fā)明者黃家明, 劉正偉, 孟凡普 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司