[jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-4391) Need to add transaction propagation types to @Transactional

Stuart Douglas (JIRA) jira-events at lists.jboss.org
Wed Sep 2 21:47:35 EDT 2009


     [ https://jira.jboss.org/jira/browse/JBSEAM-4391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stuart Douglas updated JBSEAM-4391:
-----------------------------------

    Attachment: jbseam-requires-new-3.diff


I have attached a patch that prevents the propegation of the SMPC across transaction boundaries and includes integration tests.

> Need to add transaction propagation types to @Transactional
> -----------------------------------------------------------
>
>                 Key: JBSEAM-4391
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-4391
>             Project: Seam
>          Issue Type: Feature Request
>          Components: Core
>    Affects Versions: 2.2.0.GA
>         Environment: N/A
>            Reporter: asookazian
>         Attachments: jbseam-requires-new-1.diff, jbseam-requires-new-2.diff, jbseam-requires-new-3.diff
>
>
> The current tx propagation types for use with @Transactional are the following:
> REQUIRED, MANDATORY, SUPPORTS, NEVER;
> Here is a comment from the TransactionalPropagationType enum class:
> * Transaction propagation strategies for Seam JavaBean components. Note that unlike EJB3 components, there are no strategies for suspending transactions.
> Please add REQUIRES_NEW and NOT_SUPPORTED.  I am unable to solve my functional requirement of calling a webservice which inserts into remote db (which does not require a tx) and inserting into multiple local db tables (requires tx) using JavaBean components and Seam @Transactional.  The requirement is that even if the webservice call fails, the local db inserts should continue and succeed (i.e. no atomicity, no rollback).
> There is an action method in my JavaBean Seam component that is invoked from a commandButton in JSF page.  Then there are two private methods that are invoked from that public method.  One requires tx support, the other does not.  With EJB3, I would simply use NOT_SUPPORTED for one and REQUIRES_NEW for the other.  Now using JavaBeans and @Transactional, I cannot solve my problem in terms of tx support requirements.  @Transactional only works on public methods.
> I tried recalling the component's private method (now refactored to public with @Transactional) using Component.getInstance("foo"); but that did not work.
> Spring has robust tx support like EJB 3.  Seam needs to be ramped up in terms of tx support for JavaBean components.
> References:
> http://www.seamframework.org/Community/TransactionalPropagationTypes
> http://www.seamframework.org/Community/TransactionalOnPrivateMethod

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

        


More information about the seam-issues mailing list