You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by "David Sean Taylor (JIRA)" <je...@portals.apache.org> on 2006/02/21 07:22:25 UTC
[jira] Commented: (JS2-495) OJB + Spring Transactions broken
[ http://issues.apache.org/jira/browse/JS2-495?page=comments#action_12367151 ]
David Sean Taylor commented on JS2-495:
---------------------------------------
Just ran a test *outside* of Jetspeed on another Spring + OJB project here.
Result: transactional commits and rollbacks work as expected
So Im left wondering what we've broken here, as I was sure transactions were operational once upon a time.
Im summing up the differences:
-- Datasource --
other project: org.springframework.jdbc.datasource.DriverManagerDataSource
Jetspeed : org.apache.jetspeed.components.rdbms.ojb.ConnectionRepositoryEntry
-- OJB.properties --
other project: ConnectionFactoryClass=org.springframework.orm.ojb.support.LocalDataSourceConnectionFactory
Jetspeed: ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
other project: ConnectionManagerClass=org.apache.ojb.broker.accesslayer.ConnectionManagerImpl
Jetspeed: ConnectionManagerClass=org.apache.jetspeed.components.rdbms.ojb.ConnectionManagerImpl
All other configuration files seem to be the same
> OJB + Spring Transactions broken
> --------------------------------
>
> Key: JS2-495
> URL: http://issues.apache.org/jira/browse/JS2-495
> Project: Jetspeed 2
> Type: Bug
> Components: Persistence and DAO
> Versions: 2.1-dev
> Reporter: David Sean Taylor
> Assignee: David Sean Taylor
> Priority: Critical
> Fix For: 2.1-dev
>
> I tried writing a unit test to test OJB + Spring transactions.
> To my suprise, transactions are not starting.
> In fact, Im seeing some surprising results in mysql.log
> (yes Im using InnoDB), note no transactions, and the forced autocommit
> 118 Query SET autocommit=1
> 117 Prepare [1] INSERT INTO FOLDER...
> 117 Execute [1] INSERT INTO FOLDER...
> 117 Query SET autocommit=1
> It appears that OJB repeatedly sets autocommit=1
> and
> it never starts any transactions
> Here is my unit test, which tests out a new 'fake' API addPage to the PageManager. This API is temporary to test transactional behavior:
> public void testTx() throws Exception
> {
> Folder root = pageManager.newFolder("/");
> pageManager.updateFolder(root);
> Page[] pages = new Page[3];
> pages[0] = pageManager.newPage("/test1.psml");
> pages[1] = pageManager.newPage("/test2.psml");
> pages[2] = pageManager.newPage("/test3.psml");
> try
> {
> pageManager.addPages(pages);
> }
> In addPages, I try to force a rollback:
> public int addPages(Page[] pages)
> throws JetspeedException
> {
> System.out.println("Adding first page");
> this.updatePage(pages[0]);
> System.out.println("Adding second page");
> this.updatePage(pages[1]);
> System.out.println("About to throw ex");
> throw new JetspeedException("Its gonna blow captain!");
> }
> Finally, add pages is enabled for a Spring tx:
> <prop key="addPages*">PROPAGATION_REQUIRED,-org.apache.jetspeed.exception.JetspeedException</prop>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org