A Cautionary Tale About Multi-Source JNDI Configuration
Posted
by scott.s.nelson(at)oracle.com
on Oracle Blogs
See other posts from Oracle Blogs
or by scott.s.nelson(at)oracle.com
Published on Wed, 22 Dec 2010 18:58:17 +0000
Indexed on
2010/12/22
19:58 UTC
Read the original article
Hit count: 350
WLS Configuration
Here's a bit of fun with WebLogic JDBC configurations. I ran into this issue after reading that p13nDataSource and cgDataSource-NonXA should not be configured as multi-source. There were some issues changing them to use the basic JDBC connection string and when rolling back to the bad configuration the server went "Boom". Since one purpose behind this blog is to share lessons learned, I just had to post this.
If you write your descriptors manually (as opposed to generating them using the WLS console) and put a comma-separated list of JNDI addresses like this:
<jdbc-data-source-params>
<jndi-name>weblogic.jdbc.jts.commercePool,contentDataSource,
contentVersioningDataSource,portalFrameworkPool</jndi-name>
<algorithm-type>Load-Balancing</algorithm-type>
<data-source-list>portalDataSource-rac0,portalDataSource-rac1</data-source-list>
<failover-request-if-busy>false</failover-request-if-busy>
</jdbc-data-source-params>
so long as the first address resolves, it will still work. Sort of. If you call this connection to do an update, only one node of the RAC instance is updated. Other wonderful side-effects include the server refusing to start sometimes.
The proper way to list the JNDI sources is one per node, like this:
<jdbc-data-source-params>
<jndi-name>weblogic.jdbc.jts.commercePool</jndi-name>
<jndi-name>contentDataSource</jndi-name>
<jndi-name>contentVersioningDataSource</jndi-name>
<jndi-name>portalFrameworkPool</jndi-name>
<algorithm-type>Load-Balancing</algorithm-type>
<data-source-list>portalDataSource-rac0,
portalDataSource-rac1,
portalDataSource-rac2
</data-source-list>
<failover-request-if-busy>false</failover-request-if-busy>
</jdbc-data-source-params>
(Props to Sandeep Seshan for locating the root cause)
© Oracle Blogs or respective owner