Una vez mas por aca estimados amigos:
Antes que nada les cuento que trabajo con multiples bases de datos, y cuando quiero hacer una conexion dinamica es cuando aparece mi problema, si dejo la conexion por defecto(osea a la base de dato por defecto configurada) no tengo el problema, es solo cuando intento generar las conexiones a las distintas bases de datos dinamicamente.
Cuando quiero hacer una transaccion mediante JDBC me conecto se la siguiente manera:
Código:
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] {"classpath:/applicationContext-resources.xml"});
DataSourceFactory dataSourceFactory = new DataSourceFactory(ctx);
JdbcTemplate source = this.getJdbcTemplate();
source.setDataSource(dataSourceFactory.getDataSour ce(esquemaParticular));
Donde esquemaParticular tiene el nombre del bean que me configura la conexion a un determinado esquema
mi defaultDataSource es el siguiente
Código:
<bean id="defaultDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="maxActive" value="100"/>
<property name="maxWait" value="1000"/>
<property name="poolPreparedStatements" value="true"/>
<property name="defaultAutoCommit" value="false"/>
</bean>
y cuando le paso dinamicamente el nombre del esquema hace uso del siguiente bean por ejemplo
Código:
<bean id="esquemaParticular" parent="defaultDataSource">
<property name="driverClassName" value="${jdbc_esquemaParticular.driverClassName}" />
<property name="url" value="${jdbc_esquemaParticular.url}" />
<property name="username" value="${jdbc_esquemaParticular.username}" />
<property name="password" value="${jdbc_esquemaParticular.password}" />
</bean>
Ahora bien les comento como es la cuestion:
Si
Código:
<property name="defaultAutoCommit" value="true"/>
no se lleva a cabo la transaccion osea toma a cada consulta que esta dentro de la transaccion como una consulta particular.
pero si
Código:
<property name="defaultAutoCommit" value="false"/>
se comporta como transaccion, tengo el problema que no surgen efecto los commit en la base de datos, osea no se confirman los datos insertados o actualizdos en la base de datos.
Aparentemente hago algo mal para el manejo de multiples bases de datos, les solicito una ayuda por favor si me puedes orientar un poco, y de no encontrarle solucion a mi problema, cual es la mejor manera de gestionar multiples bases de datos, tu piensas que lo estoy haciendo mal?
Yo la verdad ya no se que intentar y necesito solucionar este problema.
Gracias por darme este tiempo.