2013-04-10 166 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);