Just wrap an exclusive lock around the transaction.  Make it a named lock
that will cross all sessions.

-----Original Message-----
From: Tony Weeg [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 08, 2005 7:46 AM
To: CF-Talk
Subject: Re: cftransaction... it wasnt safe?


:) thank you adam...

any idea, how i could restructure it to achieve that?

thanks.
tony


On Tue, 8 Mar 2005 07:27:37 -0500, Adam Haskell <[EMAIL PROTECTED]> wrote:
> I think your concept of how cftransaction works is faulty. The way
> this is set up it is not keeping 2 Select max(acctno) happening prior
> to inserting a new record.
> 
> Adam H
> 
> 
> On Mon, 7 Mar 2005 23:00:02 -0500, Tony Weeg <[EMAIL PROTECTED]> wrote:
> > hi there...
> >
> > i have this section of code... that is enrobed in a cftransaction block
> > that somehow today, was caught in a race condition... meaning...
> >
> > i have two records with the same acctNo, and there should only
> > be one!
> >
> > my first thought, now that i look over the code... would it be better
> > for me to use the request scope for the setting of the newAcctNo?
> >
> > help... thanks!
> >
> > tony
> >
> > <cftransaction>
> >
> >        <cfquery name="getNewAcctNo" datasource="webCollect">
> >                   select max(acctNo) as thisAccountNumber from accts
> >        </cfquery>
> >
> >        <!--- sets the new acct number, which is simply, highest current
one,
> > plus one. --->
> >        <!--- this is different than the identity id field... so that i
can
> > move it to something
> >        else someday :) --->
> >        <cfset newAcctNo = getNewAcctNo.thisAccountNumber + 1>
> >
> >        <!--- this query adds the new account information. --->
> >        <cfquery name="addAccount" datasource="webCollect">
> >                insert into accts
> >                (acctNo, clientNumber, debtorNumber, dateIncurred,
dateAssigned,
> > dateLastPayment, amountLastPayment, attyFee_actual, principal,
> > preJudgementInt, countyId, balance, attyFeeClaimed, csrId)
> >                values
(#newAcctNo#,#form.clientNumber#,#form.debtorNumber#,'#form.dateIncurred#','#
form.dateAssigned#','#form.dateLastPayment#',#form.amountLastPayment#,#reques
t.attyFee_actual#,#form.principal#,#form.preJudgementInt#,#countyId#,#form.pr
incipal#,
> > #form.attyFeeClaimed#, #form.csrId#)
> >        </cfquery>
> >
> >        <!--- i commit it at this point, so that any future requests will
not
> > take my new number, and frankly
> >        im done with it... another request would be valid at this point,
and
> > they could get at it... --->
> > <cftransaction action = "commit"/>
> >
> >        <!--- i then use this to get the new identity value --->
> >        <cfquery name="getNewId" datasource="webCollect">
> >                select @@identity as newAcctId from accts
> >        </cfquery>
> >        <!--- and finally get the acct number to validate that it was in
fact
> > a good transaction --->
> >        <cfquery name="getNewAccountNumber" datasource="webCollect">
> >                select acctNo from accts where id = #getNewId.newAcctId#
> >        </cfquery>
> >
> > </cftransaction>
> >
> > --
> > tony
> >
> > Tony Weeg
> >
> > macromedia certified coldfusion mx developer
> > email: tonyweeg [at] gmail [dot] com
> > blog: http://www.revolutionwebdesign.com/blog/
> > cool tool: http://www.antiwrap.com
> >
> > "He who makes a beast of himself saves himself the
> > pain of being a man..."
> >
> >                          --Hunter S. Thompson.
> >
> >
> 
> 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Logware (www.logware.us): a new and convenient web-based time tracking 
application. Start tracking and documenting hours spent on a project or with a 
client with Logware today. Try it for free with a 15 day trial account.
http://www.houseoffusion.com/banners/view.cfm?bannerid=67

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:197833
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to