2013-04-10 167 views
0

如何在jboss * -ds.xml(在server/default/deploy中)將兩個不同的數據源映射到login-config中的兩個獨立登錄模塊。 XML(在服務器/默認/ conf)?JBOSS login-config.xml和* -ds.xml(映射數據源)

(數據源的是在兩個不同的IP地址)

我已經試過到目前爲止以下,但無濟於事:

* -ds.xml

<connection-url>jdbc:mysql:loadbalance://hostip1,hostip2:port/dbname?loadBalanceBlacklistTimeout=5000</connection-url> 

<security-domain>Policy1</security-domain> 

登錄-config.xml

<application-policy name="Policy1"> 
<authentication> 

    <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="sufficient"> 
<module-option name="username">userforip1</module-option> 
<module-option name="password">pwdforip1</module-option> 
</login-module> 

    <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="sufficient"> 
<module-option name="username">userforip2</module-option> 
<module-option name="password">pwdforip2</module-option> 
</login-module> 

</authentication> 
</application-policy> 

還需要做些什麼?

+0

richa.a91你能告訴我你的數據庫集羣是否正常工作? – 2013-04-22 05:10:52

回答

0

<local-tx-datasource> 
    <jndi-name>Name1</jndi-name> 
    <connection-url>jdbc:mysql://Host1:Port1/catissuecore</connection-url> 
    <user-name>user1</user-name> 
    <password>pwd1</password> 
    <driver-class>org.gjt.mm.mysql.Driver</driver-class> 
    <check-valid-connection-sql>select 1</check-valid-connection-sql> 
</local-tx-datasource> 
<local-tx-datasource> 
    <jndi-name>Name2</jndi-name> 
    <connection-url>jdbc:mysql://Host2:Port2/catissuecore</connection-url> 
    <user-name>user2</user-name> 
    <password>pwd2</password> 
    <driver-class>org.gjt.mm.mysql.Driver</driver-class> 
    <check-valid-connection-sql>select 1</check-valid-connection-sql> 
</local-tx-datasource> 

上面是你可以使用你的目的的數據源文件。 用戶應具有適當的權限和訪問權限。

+0

這裏的問題是@ richa.a91只有一個數據源,它支持故障轉移。 – 2013-04-20 14:30:14

0

我想弄清楚一些事情,但似乎你無法用默認登錄模塊做任何事情。

我唯一想到的解決方案是創建自定義登錄模塊並實現所需的邏輯。

0

如果您對您的項目縫,你可以使用一個程序化的方式來獲取persistenceUnitName來可以diferent爲每個用戶,例如實體管理器:

EntityManager的EM =(EntityManager的)org.jboss.seam.Component .getInstance(「persistenceUnitName」+ user.getName(),true);