Jboss

集群 JBoss 消息傳遞、XA 恢復:JMSSecurityException

  • June 16, 2009

我正在嘗試在 JBoss EAP 4.3 (CP04)上的基本非集群預設伺服器配置(我們只想要集群消息傳遞,其餘是無狀態的僅故障轉移)上設置集群 jboss-messaging 和 XA-recovery。

當我添加 XA-recovery 時,我在日誌中收到以下錯誤:

09:05:07,558 ERROR [ExceptionUtil] ConnectionFactoryEndpoint[jboss.messaging.connectionfactory:service=ConnectionFactory] createFailoverConnectionDelegate [s-ar10uuuf-1-k1eztuuf-z44sla-t6avs4]
javax.jms.JMSSecurityException: User null is NOT authenticated

[... stacktrace removed for readablity ...]

09:05:07,559 ERROR [MessagingXAResourceWrapper] ********************************Failed to connect to server
javax.jms.JMSSecurityException: User null is NOT authenticated

看起來我缺少一些安全配置 - 但我不知道在哪裡。

我已經兩次和三次檢查了我的配置是否有錯誤,並且我正在使用以下文件:

http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.3/doc/messaging/JBoss_Messaging_User_Guide/html/recovery.html

相同的配置在生產配置中就像一個魅力(更新:不再是真的,見下文)

有沒有人這樣做過?有什麼想法我做錯了嗎?

更新:

該錯誤取決於我在消息傳遞配置 (*-presistence-service.xml) 中使用的數據源(DefaultDS 與 MyOwnDS)。我嘗試了以下場景:

  1. DefaultDS/HSQLDB:有效(當然這是標準配置……但誰想在生產中使用這個配置?)
  2. DefaultDS/MySQL:有效(這是一個可接受的解決方法)
  3. MyOwnDS/MySQL:不工作

消息傳遞不可能取決於名為“DefaultDS”的數據源,所以我猜想當我使用自己的 DS 時,一些與 DefaultDS 相關的配置會失去。但我想不通是什麼…

login-config.xml 中有一個條目(HsqlDbRealm)使用“DefaultDS”,但它看起來不像是消息傳遞使用的?

我錯過了什麼?

用於身份驗證的數據源在messaging-jboss-beans.xml 中指定。

引用自:https://serverfault.com/questions/10274