-
1. Re: How to configure JBoss to connect to 2 databases?
wdfink May 11, 2012 6:05 AM (in response to span7152)You need two configurations of datasources i.e. two *-ds.xml files.
Whithin the messaging persistence service or other services you reference the (JNDI) name of the datasource.
-
2. Re: How to configure JBoss to connect to 2 databases?
span7152 May 11, 2012 11:14 AM (in response to wdfink)Mr. Wolf-Dieter,
I've done following steps before trying
Copied “ojdbc14.jar” into server/default/lib dir.
Removed “hsqldb-ds.xml” from server/default/deploy dir.
Removed “hsqldb.jar” and “hsqldb-plugin.jar” from common/lib dir.
Removed HsqlDbRealm from “login-confgi.xml”.
Added "OracleDbRealm" into login-config.xml
Fixed web.xml, jboss-web.xml, META-INF/jbosscmp-jdbc.xml.
Please see 2 attemps as below. I need more instructions.
(1) Split “oracle-xa-ds.xml” into “oracleds1-xa-ds.xml” for OracleDS1 and “oracleds2-xa-ds.xml” for OracleDS2.
oracleds1-xa-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<xa-datasource>
<jndi-name>jdbc/OracleDS1</jndi-name>
<!-- use-java-context>false</use-java-context -->
<track-connection-by-tx>true</track-connection-by-tx>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">URL</xa-datasource-property>
<xa-datasource-property name="User">User</xa-datasource-property>
<xa-datasource-property name="Password">Password</xa-datasource-property>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<no-tx-separate-pools/>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</xa-datasource>
<mbean code="org.jboss.resource.adapter.jdbc.vendor.OracleXAExceptionFormatter"
name="jboss.jca:service=OracleXAExceptionFormatter">
<depends optional-attribute-name="TransactionManagerService">
jboss:service=TransactionManager
</depends>
</mbean>
</datasources>
oracleds2-xa-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
<xa-datasource>
<jndi-name>jdbc/OracleDS2</jndi-name>
<!-- use-java-context>false</use-java-context -->
<track-connection-by-tx>true</track-connection-by-tx>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">URL</xa-datasource-property>
<xa-datasource-property name="User">User</xa-datasource-property>
<xa-datasource-property name="Password">Password</xa-datasource-property>
<security-domain>OracleDbRealm</security-domain>
<security-domain-and-application>OracleDbRealm</security-domain-and-application>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<no-tx-separate-pools/>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</xa-datasource>
<mbean code="org.jboss.resource.adapter.jdbc.vendor.OracleXAExceptionFormatter"
name="jboss.jca:service=OracleXAExceptionFormatter">
<depends optional-attribute-name="TransactionManagerService">
jboss:service=TransactionManager
</depends>
</mbean>
</datasources>
At the same time, split “oracle-persistence-service.xml” into “oracleds1-persistence-service.xml” for OracleDS1 and
“oracleds2-persistence-service.xml” for topmisOracleDS2.
oracleds1-persistence-service.xml:
<!-- Persistence Manager MBean configuration
======================================== -->
<mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
name="jboss.messaging:service=PersistenceManager"
xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
<depends>jboss.jca:service=DataSourceBinding,name=jdbc/OracleDS1</depends>
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
<!-- The datasource to use for the persistence manager -->
<attribute name="DataSource">java:jdbc/OracleDS1</attribute>
...........
</mbean>
oracleds2-persistence-service.xml:
<!-- Persistence Manager MBean configuration
======================================== -->
<mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
name="jboss.messaging:service=PersistenceManager"
xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
<depends>jboss.jca:service=DataSourceBinding,name=jdbc/OracleDS2</depends>
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
<!-- The datasource to use for the persistence manager -->
<attribute name="DataSource">java:jdbc/OracleDS2</attribute>
...........
</mbean>
Got a lot of warning/error
WARN [AbstractDeploymentContext] Unable to register deployment mbean jboss.messaging:service=PersistenceManager
javax.management.InstanceAlreadyExistsException: jboss.deployment:id="jboss.messaging:service=PersistenceManager",type=Component already registered.(2)
<mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
name="jboss.messaging:service=PersistenceManager"
xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
<depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
<!-- The datasource to use for the persistence manager -->
<attribute name="DataSource">java:DefaultDS</attribute>
...........
</mbean>
Got the following warning/error messages:
“
09:48:13,007 WARN [TransactionManagerService] XAExceptionFormatters are not supported by the JBossTS Transaction Service - this warning can safely be ignored
09:48:13,725 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=jdbc/topmisDS' to JNDI name 'java:jdbc/topmisDS'
09:48:13,732 WARN [AbstractDeploymentContext] Unable to register deployment mbean jboss.jca:service=OracleXAExceptionFormatter
javax.management.InstanceAlreadyExistsException: jboss.deployment:id="jboss.jca:service=OracleXAExceptionFormatter",type=Component already registered. -
3. Re: How to configure JBoss to connect to 2 databases?
wdfink May 18, 2012 5:05 AM (in response to span7152)You should remove one MBean OracleXAExceptionFormatter because it must not registered twice.
Also you need only one JDBCPersistenceManager for messaging, so remove oracleds2-persistence-service.xml
-
4. Re: How to configure JBoss to connect to 2 databases?
span7152 May 21, 2012 3:37 PM (in response to wdfink)1 of 1 people found this helpfulMr. Wold-Dieter,
Can we write oracleds-persistence-service.xml as follows? (Not sure???)
<!-- Persistence Manager MBean configuration
======================================== -->
<mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
name="jboss.messaging:service=PersistenceManager"
xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
<depends>jboss.jca:service=DataSourceBinding,name=jdbc/OracleDS1</depends>
<depends>jboss.jca:service=DataSourceBinding,name=jdbc/OracleDS2</depends>
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
<!-- The datasource to use for the persistence manager -->
<attribute name="DataSource">java:jdbc/OracleDS1</attribute>
<attribute name="DataSource">java:jdbc/OracleDS2</attribute>
...........
</mbean>
Thanks,
-
5. Re: How to configure JBoss to connect to 2 databases?
wdfink May 21, 2012 3:46 PM (in response to span7152)No,
it is not possible to have more than one persistence for the messaging system.
Also I don't see a need for that.
-
6. Re: How to configure JBoss to connect to 2 databases?
span7152 Jun 6, 2012 12:40 PM (in response to wdfink)Mr. Wolf-Dieter,
Thank you for your information.
One more assoicted question. How to put 2 <security-domain> in "jboss-web.xml" because of 2 databases?
The loing-config is as follows:
<application-policy name="oracleds1">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
flag="required">
<module-option name="usersProperties">props/oracleds1-users.properties</module-option>
<module-option name="rolesProperties">props/oracleds1-roles.properties</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="oracleds2">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
flag="required">
<module-option name="usersProperties">props/oracleds2-users.properties</module-option>
<module-option name="rolesProperties">props/oracleds2-roles.properties</module-option>
</login-module>
</authentication>
</application-policy> -
7. Re: How to configure JBoss to connect to 2 databases?
wdfink Jun 6, 2012 1:16 PM (in response to span7152)I'm not sure what you mean. As far as I know the web.xml can only contain one security-domain.
But this is a different issue I would recommend to mark this thread as answered and open a new one because you might get a better answer if you post with a better subject into the right forum.
-
8. Re: How to configure JBoss to connect to 2 databases?
span7152 Jun 6, 2012 1:37 PM (in response to wdfink)Thanks! Will open one new thread.