> > It pretty much looks like a singleton design!
> 
> Yep. I think Jaime has it right. It looks like few (if any) of the 
> variables set within the DAO's functions are VAR scoped. So they will 
> automatically be placed in the shared "variables" scope. Since you are 
> working with a singleton, those variables will be accessible to 
> multiple threads. Under heavy load, it is very likely that would lead 
> to the behavior you have described. ie One thread overwriting values 
> set by another.
> 
> All variables that are local to a function must be VAR-scoped. That 
> ensures they are only visible to the function, and not other threads.  
> It seems like the code starts to do the right thing by declaring the 
> function-local structure "stTrans". 
> 
> <cffunction name="process" access="public" returntype="struct"> 
  .....
> 
  
> <cfset var stTrans = structNew() /> 
  ....
> 
 
> <!--- 
    
> theCurrentAvailableBalance will be place the shared variables scope
 
> --->
> 
> </cffunction>
> 
> But then starts using un-VAR'd variables like:
> 
 
> <cfset theCurrentAvailableBalance = variables.accountService.
> getAccountBalance("available", arguments.acctid)> 
...
> 
> 
> Since theCurrentAvailableBalance was not var-scoped (or added to an 
> object that _was_ var-scoped) it will fall into the "variables" scope. 
> Since the DAO functions seem to use a lot of variables, the easiest 
> way to make them function-local would to add them to the localized 
> structure "stTrans". **Note, as Jaime mentioned this includes query 
> names as well.
> 
> Example:
 
> <cfset stTrans.theCurrentAvailableBalance = variables.accountService.
> getAccountBalance("available", arguments.acctid)> 
> <cfset stTrans.theCurrentActualBalance = variables.accountService.
> getAccountBalance("actual", arguments.acctid)>  
... 
> etcetera ...
> 
> 
> <cfquery datasource="#variables.dsn#" name="stTrans.trans_insert" 
> result="stTrans.trans_insert_res"> 
.....
> 
> 
> 
> HTH
> -Leigh
> 
> 
> 
> 
> 
      
Tks Leigh

I changed all the variables to be var scoped. I have also var scoped the 
queries.
Still busy testing but it looks gooooodddd!!!!

Tks again for all the input. Without this I would have been lost! I still 
believe the Singleton is not the correct design pattern here, so will still do 
some work on that.

Andre


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know 
on the House of Fusion mailing lists
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:328999
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to