[ 
http://jira.dspace.org/jira/browse/DS-383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11011#action_11011
 ] 

Robin Taylor commented on DS-383:
---------------------------------

Some  more thoughts...

I am not sure I agree with Scotts thinking that  "an error in a subsequent 
aspect won't roll back changes that successfully completed in previous 
aspects". My expectation of transactional processing is that its an all or 
nothing deal. If an error occurs in an aspect then I do want everything to be 
rolled back as if the transaction had never happened. Would it be 
possible/sensible to create a 'closing' aspect whose sole responsibility would 
be to do a context.complete ? That would deal with all successful transactions. 
We would still need a context.abort in the filter to close the DB connection 
for any failed transaction. I am getting carried away now but might it be 
sensible to also create an 'opening' aspect thus removing the responsibility 
for context/connection management from the other aspects ? 

 



> Auto commit functionality not working correctly in XMLUI
> --------------------------------------------------------
>
>                 Key: DS-383
>                 URL: http://jira.dspace.org/jira/browse/DS-383
>             Project: DSpace 1.x
>          Issue Type: Bug
>          Components: XMLUI
>    Affects Versions: 1.5.2
>            Reporter: Robin Taylor
>            Assignee: Mark Diggory
>
> My understanding is that Dspace provides transactional processing by setting 
> the database connection to auto-commit=false and doing a 'commit' once all 
> processing has completed successfully. However, Manakin has a filter called  
> DSpaceCocoonServletFilter which contains the following code that runs after 
> the request has been passed on for further processing...
>    // Close out the DSpace context no matter what.
>         ContextUtil.closeContext(realRequest);
> This appears to run, commiting changes to the database, even if an Exception 
> is thrown in the main code.
> The code needs to be more intelligent and only do a commit to the database 
> where appropriate. The current catch-all approach causes problems in the 
> event of a failure and also prevents any sort of multiple items upload, eg 
> from a reference manager.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.dspace.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to