Hi,
 
there's no rule that manadates that a JDBC template has to use a JDBC 
connection that has been instantiated from within Castor. Just instantiate a 
jdbcTemplate using the standard way, and Spring (together with Castor's help 
and vice versa) will be able to figure that there's already an active 
transaction associated with a given JDBC connection (and thus re-use it).
 
Werner


________________________________

        From: Sébastien PERES-LABOURDETTE [mailto:[EMAIL PROTECTED] 
        Sent: Freitag, 23. Februar 2007 12:40
        To: [email protected]
        Subject: Re: [castor-user] CastorTransactionManager
        
        
        You are right, this is just what i wish to do, but how do you get a 
JDBCTemplate working with a JDOManager (or a Database) since it expects a 
DataSource ?
        
        For native JDBC code (out of spring) this is easy with 
Database.getJDBCConnection()
        
        
        
        Werner Guttmann a écrit : 

                Yes, that is true. But the limitation is that this still needs 
to run within the context of a Spring platform tx manager, as all the code 
written is Spring-specific. In other words, I do not think that it is possible 
to use things your way.
                 
                If you want to use Castor JDO and plain JDBC from 'within' 
Spring, please consider using the JDBCTemplate classes, as this is designed for 
exectly this need, i.e. to span transactions across multiple datasources.
                 
                Regards
                Werner


________________________________

                        From: Sébastien PERES-LABOURDETTE - Public 
[mailto:[EMAIL PROTECTED] 
                        Sent: Freitag, 23. Februar 2007 11:48
                        To: Castor User
                        Subject: [castor-user] CastorTransactionManager
                        
                        
                        Hi.
                        
                        Performance issues leads me to mix jdo with some plain 
jdbc code.
                        For that reason, i wish to use the spring orm 
implementation for castor.
                        
                        I wrote a method  :
                        
                            public DataSource getDbDs(String dbId) {
                                CastorTransactionManager ctm = new 
CastorTransactionManager(_jdoMap.get(dbId));
                                return ctm.getDataSource();
                            }
                        
                        _jdoMap being a map of JDOManagers successfully 
initialized.
                        
                        Each JDOManager points to a database conf that maps a 
data-source such :
                        
                                <data-source 
class-name="org.apache.commons.dbcp.BasicDataSource">
                                    <param name="driver-class-name" 
value="com.informix.jdbc.IfxDriver" />
                                    <param name="username" value="informix" />
                                    <param name="password" value="informix" />
                                    <param name="url" 
value="jdbc:informix-sqli://url" />
                                    <param name="maxActive" value="10" />
                                    <param name="initialSize" value="3" />
                                    <param name="removeAbandoned" value="true" 
/>
                                </data-source>        
                        
                        But the "getDbDs" method returns null anyway.
                        
                        Any issue ?
                        
                        
                        NB :
                        The javadoc for "CastorTransactionManager" specifies 
this : 
                        
                        "With a CastorDialect specified, this implementation 
also supports direct DataSource access within a transaction (i.e. plain JDBC 
code working with the same DataSource). This allows for mixing services that 
access Castor JDO (including transactional caching) and services that use plain 
JDBC (without being aware of Castor JDO)! Application code needs to stick to 
the same simple Connection lookup pattern as with DataSourceTransactionManager 
(i.e. DataSourceUtils.getConnection)."
                        
                        
                        
                        
                        -- 
                        Sébastien PERES-LABOURDETTE


        -- 
        
Cordialement,   
Sébastien PERES-LABOURDETTE <mailto:[EMAIL PROTECTED]> 
Responsable applications portail.
Service Informatique
  <http://www.omerin.com>       Tél : (+33)4-73-82-57-65
Fax : (+33)4-73-82-50-10        

Attachment: omerin_general.png
Description: omerin_general.png

Reply via email to