我的系統有一個問題,其中約500個服務器通過JMS超過1000個主題與中央服務器通信。這是一個有10年曆史的系統,它在幾個月前運行良好。JMS奇怪的問題
在過去的3個月,我有這些類型的錯誤:
中心服務器無法反序列化整數,因爲整數消息中有錯誤SerialVersionID
Deserialize message failed. - cause: java.io.InvalidClassException: java.lang.Integer; local class incompatible: stream classdesc serialVersionUID = 1360651450463909473, local class serialVersionUID = 1360826667806852920
中央服務器可以」 t反序列化未知類
Deserialize message failed. - cause: java.lang.ClassNotFoundException: No ClassLoaders found for: javnteger.Integer
JMS嘗試實例數類,這是抽象的
Caught JVM Error: java.lang.InstantiationError: java.lang.Number
對於問題在一個隨機話題本地化的所有錯誤。如果來自該主題的消息被刪除並再次從服務器發送,則一切正常。
我懷疑JMS硬件。硬盤沒問題。我們需要測試記憶,我不知道接下來要看的地方。
任何人有任何建議?
任何升級到JVM? –
第二次反序列化錯誤,您是否複製/粘貼或者真的引用了一個名爲javnteger.Integer的類? – Perception
這*真的*聞起來像您的不同服務器之間的JVM版本不匹配。像Damokles說的那樣,他們最近是否對你園區中的任何服務器進行過任何JVM升級?另外,第2點(如果它確實應該是javnteger.Integer)看起來像一個典型的IDE導致的錯誤。有人編寫了應該使用java.lang.Integer的代碼,但意外地導入了另一個javnteger.Integer類,這是接收服務器不知道的。 – pap