看到這個報錯,是不是覺得很嘲諷,down了 還 666呢,搞心態吧,也不知道誰定義的這個報錯,
先說下報錯的背景,開發環境中,我們有個調度系統,并且允許其他系統的使用,調度平臺主要功能 定時執行一些,設定好的任務、命令列作業,
大資料平臺,反饋出一個調度系統執行作業時,一直報錯 session is down 666,導致作業一直執行失敗,嚴重影響了他們的開發,需要我協助解決,
主要原因,調度系統 使用 ssh 遠程服務器,連接失敗,
1.登錄調度服務器,使用 ssh命令遠程大資料服務器 ,
ssh 用戶名(大資料服務器用戶名)@idp(大資料服務器用戶名)
密碼*****
結果是可以連接的,排除兩服務器 之間沒有開通 ssh訪問關系可能,
2.查看 被遠程的服務器(大資料服務器)系統設定,命令為
cat /etc/ssh/sshd_config
查看服務器配置項 PasswordAuthentication 居然設定的是 no 不允許密碼 登錄,這就簡單了,改下配置就可以了,但是這個步驟需要用 root權限,本次也是 因為被遠程的服務器這個設定的為no,導致連接失敗的,改為 yes后,訪問正常,
3.jar加載順序
造成這種報錯,還有一種可能,也是最難排查的一種,就是java程式中 jar包加載順序,因為生產上我遇到過這種問題,本文中就一塊說了,占用篇幅較長,
我們程式中使用連接 服務器的方式是 ,使用ssh 連接,建立會話,然后 執行 shell 命令或執行腳本,建立ssh 鏈接使用的工具包為 jsch-0.1.51.jar sshcore2.0.2.jar ,這兩個jar包 ,在本地部署運行時正常,遠程服務器,執行 shell命令都沒問題,但是部署到was服務器后,就會出現報錯 session is down 666,
這個是由于 was服務器的類加載順序造成的,需要調整類的加載策略,調整方式 為
服務器 -> 服務器型別 -> websphere -> application ->servaer ->server1(我的是1)
選擇類裝入策略 :單個
類裝入方式 :類已裝入并且先使用本地類裝入器(父類最后)
再將 選擇類裝入策略改為 :多個
確定,保存至主配置,
到這里基本問題基本已得到解決,如果還沒有解決,那就只能用最后一種方式,手動調整jar包加載順序,調整jar包位置,將 jsch-0.1.51.jar 由WEB-INFO lib 路徑下 復制到 WEB-INFO class 路徑下,然后重啟was服務器,這樣 就會先加載 jsch-0.1.51.jar,再加載 sshcore2.0.2.jar 就不會出現這兩個類 加載順序的問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243529.html
標籤:其他
上一篇:黑客帝國代碼雨
