Hi,
I have a mysql master/slave setup which works fine with jdbc datasource.
All inserts goes to the master and all queries goes to the slaves.
I try to access mysql master/slaves using hibernate/spring configuration.
I use org.springframework.orm.hibernate3.HibernateTransactionManager
transaction manager and configure it as follows.
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txHbAdvice"
transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="getPopupPage" propagation="REQUIRED" />
<tx:method name="get*" propagation="SUPPORTS"
read-only="true" />
<tx:method name="find*" propagation="SUPPORTS"
read-only="true" />
<tx:method name="search*" propagation="SUPPORTS"
read-only="true" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
But when i run application, all the requests goes to the master. Tomcat
context configuration is as follows :
<Resource name="jdbc/database" auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="256" minPoolSize="30"
initialPoolSize="5" acquireIncrement="10"
driverClass="com.mysql.jdbc.ReplicationDriver"
factory="org.apache.naming.factory.BeanFactory" user="root"
password="root"
jdbcUrl="jdbc:mysql:replication://master:3306,slave1:3306,slave2:3306/database?useUnicode=true&characterEncoding=UTF-
8&autoReconnect=true&roundRobinLoadBalance=true" />
I searched the net but could not find any solution. I only found that
setting transaction manager to read-only could not set
connection.setReadonly(true).
Any help would be appreciated.
Regards,
Parvin