通過STMS傳輸請求時,遇到了如下問題:
STMS傳輸請求,不論等多久的時間,請求狀態一直是running,不能結束。但檢查傳輸的內容時,發現CHANGE REQUEST包含的內容已經傳輸到目標Client。
查詢了很多資料,終於解決了問題,總結如下。
1、CHANGE REQUEST包含的內容已經傳輸到目標Client,排除了RFC出錯的可能性。並且也檢查了RFC,沒有發現存在問題。
2、分析與STMS傳輸任務相關的TABLE(ECC 6已經沒有TMSTLOCK表):TMSTLOCK*、TRJOB、TRBAT。
查看TMSTLOCKNR Table,發現里有與處於running狀態的CHANGE REQUEST相同數量的鎖;
查看TRJOB Table,TRJOB里也有相同數量的任務在運行。
3、將處於鎖定狀態下的任務解鎖,解鎖的方法就是將相關表TMSTLOCK*里的記錄清除(delete),delete的前提條件是確保所有delete的任務都已經傳輸到目標Client。將TMSTLOCKNR里的記錄delete完成后,進入STMS查看請求傳輸的狀態,這時傳輸的狀態已全部為完成。
4、查看TRJOB Table,此時TRJOB已經沒有記錄。
5、查看TRBAT Table,發現TRBAT里仍有兩條記錄,從時間戳所標識的時間來看,這兩條記錄已過去很長時間了,且自此時間后所有的請求傳輸都不能結束,可以斷定是由於此傳輸任務未結束導致后續請求無法傳輸,因此將這兩條記錄清除(delete)。在刪除記錄時,提示記錄不能被刪除,分析原因是由於后台tp進程正在使用表TRBAT,解決辦法:進入應用服務器查看tp進程:ps -ef | grep tp,將tp進程全部kill或者通過SM37結束tp進程,然后再刪除。
6、產生一條新的CHANGE REQUEST做傳輸測試,傳輸可以正常結束。