2012-08-06 55 views
1

當我們關閉iSeries服務器時,我們有一個定期運行的進程。它執行以下(i系列的,但你可以告訴MQSC命令是什麼)命令:什麼導致我的MQ頻道死亡?

RCDMQMIMG OBJ(*ALL) OBJTYPE(*ALL) DSPJRNDTA(*YES) 
ENDMQMCSVR MQMNAME(IA001.QUEUE.MANAGER) 
ENDMQM  MQMNAME(IA001.QUEUE.MANAGER) 
DLYJOB  DLY(120)      
ENDMQMLSR MQMNAME(IA001.QUEUE.MANAGER) 

通常這種運行沒有問題,但是在最後時刻,五出6個通道正常,並立即和結束大約75秒後,第六個異常結束。

從日誌中通道的工作,這兩個消息都是連續的(即沒有介入的問題):

23/07/12 08:26:44.033529 LIBMQMCS_R QMQM  *STMT QCMD  QSYS  01C8 
From module . . . . . . . . : AMQXEIMX_R             
From procedure . . . . . . : xcsSendMessage            
Statement . . . . . . . . . : 38               
Message . . . . : Channel 'IA001.TO.ISPRO' is starting.         
Cause . . . . . : Channel 'IA001.TO.ISPRO' is starting. Recovery . . . :     
None. Technical Description . . . . . . . . : None.          

04/08/12 21:11:28.872098 QWTPITP2  QSYS  061A  *EXT     *N 
Message . . . . : Job ended abnormally.             
Cause . . . . . : A SIGKILL signal was received for the job. The action for    
the signal was to terminate the job.              

注意,ENDMQM不使用* WAIT等待隊列管理器來結束(對默認* CNTRLD在起作用),但我認爲這對這種情況不會有什麼幫助,因爲我找不到任何證據表明任何其他程序可能會暫停程序。通道作業的強制結束髮生在手動插入代碼的120秒延遲內(我知道,我們應該使用* WAIT,但這個代碼很舊)。

我認爲在隊列管理器結束時假定通道正在處理消息是合理的,否則爲什麼在下一個操作之前經過75秒?似乎* CNTRLD選項有一個隱含的超時時間,儘管我無法在文檔中的任何位置看到這一點。要麼這樣,要麼干涉別的東西。但是什麼?

一個ENDSBS *所有確實如此,但我已經證明這是在頻道死亡後幾分鐘。

以後創建的有趣場景是,當隊列管理器重新啓動時,出現錯誤說明通道已在運行,但通道作業完全按照正常情況顯示,顯示日誌中的「通道啓動」事實上它運行良好。

任何有關可能涉及哪些外力或者是否有超時的建議都將不勝感激。

回答

1

有幾個可能的原因。該頻道似乎是一個出站頻道,當QMgr關閉時,頻道可能處於阻止網絡呼叫。或者,它可以在一批中間並等待另一側進行響應。如果對方暫停或連接中斷,則通道在等待響應時可能會掛起。

如果偵聽器仍在運行,則入站通道往往難以停止。如果對方有消息要發送並啓用觸發,它將立即嘗試重新啓動信道。該請求會觸發啓動該進程的偵聽器。由於QMgr正在關閉,該頻道無法完成其CONNECT,但短時間內有一個頻道過程正在運行。

無論是入站還是出站,QMgr最終都會終止不會自行關閉的進程。這不應該成爲一個問題,因爲通道會協商有序的重新啓動,儘管它在日誌中留下了一些錯誤。

調整所有這些因素包括TCP Keepalive,HBINT,DISCINT,通道重試參數和採用MCA參數。

+0

感謝您的信息。 這確實是一個出站渠道。奇怪的是,使用通過這個通道運行的隊列的系統進程在幾分鐘之前就被關閉了,所以幾乎不可能有任何連接或者有任何消息要發送。 很明顯,隊列管理器在關閉時「清理乾淨」,但是重新啓動後,其頭部的實際問題仍然存在。 – zkarj 2012-08-07 22:09:40

+0

我們的啓動過程啓動隊列管理器,命令服務器和偵聽器,然後運行MQ命令腳本來啓動所有出站通道。該通道在該通道上執行失敗,稱該通道「正在使用」,並且在深入挖掘時已經「正在運行」。 我假設了猝死和重啓錯誤之間的聯繫。 – zkarj 2012-08-07 22:13:46

+0

我會研究你所建議的調整參數,但我認爲這是一個'正在發生的事情',正如你所建議的那樣,但我們永遠不會知道那是什麼。 – zkarj 2012-08-07 22:15:47

相關問題