RMI non-JRMP server at remote endpoint


又是一個jmx問題

jmx明明端口占用了, 而且相關java進程也起來了, 為什么會不能通過jconsole訪問jmx呢?總是:RMI non-JRMP server at remote endpoint

證書不對嗎? 為什么通過的密碼,那個機器的jms-ssl證書和我本機的大小不一樣? 權限問題? 明明沒錯的? 拿我的證書拷貝過去, 結果, 還是一樣。。。

jmx-client.xml、jmx-server.xml配置問題?修改后報密碼不對—— 那說明了原來密碼是沒問題的! 白名單?—— 我擦,現在的jmx啟動加入了白名單功能: 只允許名單內的機器去連接。 加上白名單,重啟,還是一樣。。。。

 

他又開始不停的說我“靠猜”了,。。

真TM郁悶。 遠程調試吧, 代碼對應不上了。方法跳來跳去, 而且又卡, 實在搞不懂啊。。  好像行號不對啊。整個更新本機代碼, 刷新,重新遠程調試  。。。 仍然不行,,, 下載遠端代碼,反編譯,發現一樣的啊, 那為什么不能代碼對應上呢 ——— 之前都是好好的,,,,, —— 看日志,我想可能是這樣吧。。。 ( 我沒意思到,我已經在猜了, 雖然日志提供了一定的證據,但是並不是直接原因)

他又開始不停的說我“靠猜”了。。。

 

在他的指導下, 添加上源碼,代碼可以對應得上的調試了

 

———— 這個就明顯不是password的問題了,如果password不對,提示不是這樣的。

 

仔細仔細再看看。 還是明白, 代碼跳來跳去,而且遠程調試有很卡, 我十分郁悶。 

 

最后還是他看到了原因。說是鎖住了—— 我一聽,好像是這么回事哦。—— 這代碼里面到處是synchronized, 到處是filelock。 等等 , 還有很多的atomic的操作。。。 很多陌生api

 

我仔細看,可是沒看到哪里有死鎖啊,—— 他是怎么發現的? 通過jstat? jconsole? jvisualvm? jmap ?  哎

 

請教, 原來是死循環! 神奇的死循環!! 難怪之前調試有時候看到StackOverFlow呢!  難怪一個方法一直沒反應過來呢,難怪他進去后就一直沒出來了呢!難怪日志文件分秒不差的毫秒不差的不停打印日志呢!!  原來是死循環!!!  第一次在項目中碰到啊! 神奇了!

 

 

A類包含mapProceInfo等等

m1(processName) {

if(mapProceInfo.contains(processName)) {

  復雜的process信息讀取過程,並添加到mapProceInfo中。——————  因為配置文件配錯了,所以,mapProceInfo一直為空, 此處就顯然死循環

  讀取過程中又刷新proceInfos, 刷新需要獲取proceInfos,獲取proceInfos調用的正是mapProceInfo!!!

}

return mapProceInfo.get(processName);

}

 

如圖, 長時間的stepping 即表示了死!循!環!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM