File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Web Services and the fly likes web services and transactions Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "web services and transactions" Watch "web services and transactions" New topic
Author

web services and transactions

Ravi Danum
Ranch Hand

Joined: Jan 13, 2009
Posts: 104
Hello,

Question 1:
I have an EJB web service. If the web service is invoked from another EJB which is in the middle of a transaction, and the web service has the transaction attribute set to: TransactionAttributeType.REQUIRED, will a new transaction be created in the web service, or will the caller's transaction be used?

Question 2:
I have a servlet based web service which invokes a stateless session bean with TransactionAttributeType.REQUIRED set. If another EJB that is currently in a transaction invokes the servlet based web service, will the stateless session bean invoked by the web service always create a new transaction?

Thanks so much.

Ravi
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2921
    
    5
Why do you think an SLSB exposed as a web service cannot support "mandatory"?

Because the transaction does not propagate over the HTTP/SOAP link.
  • "required" will always start a new transaction.
  • An SLSB being accessed as a web service is being accessed as a web service - not as an SLSB
  • An EJB client accessing a web service has no idea whether the web service is actually based on a SLSB - so EJB features don't apply.

  • See also Servlet endpoint Vs EJB endpoint
    Peer Reynders
    Bartender

    Joined: Aug 19, 2005
    Posts: 2921
        
        5
    Now if both ends have Project Tango installed then WS-AtomicTransaction is used to propagate transactions over the web service link. But that is a very special case...
    Ravi Danum
    Ranch Hand

    Joined: Jan 13, 2009
    Posts: 104
    Peer,

    I am deploying my web service on Glassfish which I believe has Tango. Will I have to configure it to get the behavior you mentioned? I am so glad for your response.

    Many Thanks.

    Ravi
    Peer Reynders
    Bartender

    Joined: Aug 19, 2005
    Posts: 2921
        
        5
    I'm not sure but I wouldn't be surprised if it is automatically active as part of WSIT on Glassfish. Something about WS-AtomicTransaction automatically working for SLSBs and that it can be used manually on servlets.

    About the basicWSTX Example

    So Glassfish-to-Glassfish and Glassfish-to-Microsoft WCF should work. But I haven't come across any evidence that either WS-AtomicTransaction or WSIT are part of Java EE 5. Though JBoss 5 seems to include WS-AtomicTransaction support.
    But it is probably safer to look at this as WS-AtomicTransaction support - not EJB transaction support - it would be surprising if things lined up perfectly.
    Ravi Danum
    Ranch Hand

    Joined: Jan 13, 2009
    Posts: 104
    Thanks, Peer. I wouldn't be aware of this without your help. There may be cases where we want the web service to be part of its caller's transaction. This is very helpful.

    Many thanks.

    Ravi
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: web services and transactions
     
    Similar Threads
    BMT and Bean Type.
    Mark Hansen - SOA and EJB
    Transaction propagation in EJB
    TransactionAttributeType REQUIRED and rollback
    long post IBM.158