Bonsoir

Objet : Problème lors de l'initialisation des connexions à une base de donnée Sybase en lecture seule, via C3PO.

J'avais développé une application Web avec Spring et Hibernate 3.

Etant donné que l'application ne fait que des accès en lecture, on me demande aujourd'hui de pouvoir connecter mon appli sur une base (Sybase) de secours qui est en lecture seule.
J'ai cherché dans les docs/forums/google mais je n'ai pas trouvé d'exemple de configuration pour réaliser ceci.

J'ai fait quelques tentatives mais sans succès :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
17:25:12,125  INFO Configuration:888 - processing association property references

17:25:12,125  INFO Configuration:917 - processing foreign key constraints


17:25:12,218  INFO ConnectionProviderFactory:53 - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@18feca1 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@43b5bb [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, idleConnectionTestPeriod -> -1, initialPoolSize -> 1, maxIdleTime -> 1000, maxPoolSize -> 8, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@ff0239 [ description -> null, driverClass -> com.sybase.jdbc2.jdbc.SybDriver, factoryClassLocation -> null, jdbcUrl -> jdbc:sybase:Tds:****:5000/*****, SERVER_INITIATED_TRANSACTIONS=TRUE, properties -> {user=******, password=******} ] , preferredTestQuery -> null, propertyCycle -> 300, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, usesTraditionalReflectiveProxies -> false ] , factoryClassLocation -> null, numHelperThreads -> 3, poolOwnerIdentityToken -> 18feca1 ] 


com.sybase.jdbc2.jdbc.SybSQLException: Attempt to BEGIN TRANSACTION in database '*****' failed because the database is in standby access mode.

	at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2884)
	...
A priori c'est l'initialisation du pool de connection qui pose problème. Cette initialisation se fait en mode transactionnel ce qui n'est pas possible sur une base en lecture seule!

Je souhaiterai donc savoir comment configurer C3PO ou ma session Hibernate afin de ne pas initialiser les connexions en mode transactionnel.

Si vous avez une idée, un lien ... je suis preneur.

Merci d'avance

Bonne soirée