This is exactly the direction in which I am going. It seems like this is a locking issue, I am able to reproduce the problem by editing an object, then trying to query all objects from the same table.
This somehow leaves the table in a locked state.
I still can't explain why this happens. My configuration is as follows.
Code:
<bean id="myApp"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager" />
<property name="target">
<bean class="com.xxxx.service.ServiceManagerImpl"
init-method="init">
<property name="dao" ref="dao" />
<property name="asd" value="${asdsda}" />
</bean>
</property>
<property name="transactionAttributes">
<props>
<prop key="store*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="send*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
I will try changing the transactionManager to JtaTransactionManager...
Is there a reason why the HibernateTransactionManager would no longer work on WebSphere? As I understand it, the HbnTxManager would do local transactions as opposed to JtaTxManager would be global transactions - should it not work correctly both ways (performance put aside)?
Thanks for the help!