[ 
https://issues.apache.org/jira/browse/OPENJPA-144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12473085
 ] 

Brad L Vandermoon commented on OPENJPA-144:
-------------------------------------------

When we specify only a jta-data-source, we get:  
"<4|false|0.9.7-incubating-SNAPSHOT> 
org.apache.openjpa.util.InvalidStateException: Unable to execute suspend on a 
WebSphere managed transaction. WebSphere does not support direct manipulation 
of managed transactions."

When we try to use JNDI to specify the non-jta-data-source, we get the same 
error.  JDBCConfigurationImpl doesn't appear to use this information to 
populate datasource2.

When we pass the properties to have OpenJPA create the connection it works 
fine.  Here's the properties we pass: 

       <entry key="openjpa.Connection2DriverName" 
value="com.ibm.db2.jcc.DB2Driver"/>
        <entry key="openjpa.Connection2UserName" value="Test"/>
        <entry key="openjpa.Connection2Password" value="password"/>
        <entry key="openjpa.Connection2URL" 
value="jdbc:db2://localhost:3700/RQSTSET"/> 
        <entry key="openjpa.jdbc.Schema" value="PROPCAS"/>

In this later case, JDBCConfigurationImpl creates a SimpleDriverDataSource for 
the datasource2 and uses it to do the sequence.


> JDBCConfigurationImpl does not support JNDI lookup for non-jta-data-source.  
> -----------------------------------------------------------------------------
>
>                 Key: OPENJPA-144
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-144
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>         Environment: WebSphere 6.1, DB2 v8.1 and sequences
>            Reporter: Brad L Vandermoon
>
> A non-jta-data-source is required for DB2 sequences; however, 
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl does not support a JNDI 
> lookup for this data source from the openjpa.ConnectionFactory2Name property 
> as documented (refer to section 5.12 and 4.2.1 of the OpenJPA manual).
> It seems like the same implementation for the jta-data-source should be 
> implemented for the non-jta-data-source.  i.e.
> // ADD createConnectionFactory2()
> private DecoratingDataSource createConnectionFactory2() {
>         DataSource ds = (DataSource) connectionFactory2.get();
>         if (ds != null)
>             return setupConnectionFactory(ds, true);
>         ds = (DataSource) super.getConnectionFactory2(); // JNDI lookup
>         if (ds == null)
>             ds = DataSourceFactory.newDataSource(this, true);
>         return setupConnectionFactory(ds, true);
>     }
> // MODIFY this method 
> public Object getConnectionFactory2() {
>         // override to configure data source
>         if (dataSource2 == null) {
>             DecoratingDataSource ds = createConnectionFactory2();
>             dataSource2 = DataSourceFactory.installDBDictionary
>                 (getDBDictionaryInstance(), ds, this, true);
>         }
>         return dataSource2;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to