I was wondering if there are any guidelines regarding cftransaction across
multiple functions in a cfc

ex:

<cfcomponent>
    <cffunction name="f1"...>
        <!---do some initialization here    --->
        <cftransaction action = "begin">
            <!--- call another cfc method that performs database
interactions--->
             <cfset rt = f2 (arg1, ...)>
                  <cfif rt eq 1>
                        <cftransaction action = "rollback"/>
                        <cfreturn 1>
                   </cfif>
              <!---  if everything Ok continue with the transaction--->
              <cfset rt = f3 (arg1, ...)>
              <cfif rt eq 1>
                        <cftransaction action = "rollback"/>
                        <cfreturn 1>
              </cfif>
            <!--- OK--->
            <!--- do some more db stuff --->
            <cftransaction action = "commit"/>
       </cftransaction>
        <cfreturn 0>
  </cfunction>

    <cffunction name="f2"...>
        <cftry>
            <cfquery 1>
                ......
            </cfquery>

            <cfquery 2>
                .....
            </cfquery>
               <cfcatch type = "database">
                   <cfreturn 1>
                </cfcatch>
            </cftry>
    </cffunction>
</cfcomponent>

Each of the above function is doing some database updates/inserts that are
surrounded by <cftry><cfcatch>
that will return an error code to the main function which is doing the
rollback.
The above doesn't work as expected allowing partial commits. So if a db
error happens in the f2 at the second <cfquery 2> the first <cfquery 1>
actually update the database instead of rolling back .
It seems that the transaction is not seen in the called functions and as
such each cfquery in the those functions are on their own and not part of a
transaction.

Any pointers are appreciated.

thanks

Marius Milosav
www.scorpiosoft.com
It's not about technology, it's about people.
Virtual Company (VICO) Application Demo
www.scorpiosoft.com/vicodemo/login.cfm

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Your ad could be here. Monies from ads go to support these lists and provide more 
resources for the community. http://www.fusionauthority.com/ads.cfm

Reply via email to