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)
No comments:
Post a Comment