Are you using cf5?

If so, have you applied all the hotfixes?

I remember one of them relates to this specific issue.

-----Original Message-----
From: Bud [mailto:[EMAIL PROTECTED]] 
Sent: 09 December 2002 13:40
To: CF-Talk
Subject: Client Variable problem - continued

OK, as I wrote before, I've got a customer that keeps getting this 
message on a site with
client variables enabled.

[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert duplicate
key
row in object 'CDATA' with unique index 'id1'.

I went in and checked, and LastVisit was showing 11/25. I have client 
variables set to purge after 2 days so I don't know why that was even 
in there still.

Now, my sequence of events is:

1) Check to see if client.initialize_session exists. If not, set it to
now().

2) If it does exist, check to see if it was set longer than X minutes 
ago (a hard coded app_timeout variable). If it is older than X 
minutes, loop through and delete all client variables. If it is 
within the app_timeout limit, refresh it to now().

Basically my version of sessiontimeout.

3) I check if client.rollcount is defined. If not, I set it to "1", 
set the cfid=#client.cfid#&cftoken=#client.cftoken# querystring and a 
test cookie. If it is defined, I check for the cookie I set when I 
defined it and get rid of the cfid/cftoken in the querystring.

All fine and dandy. I tried doing stuff like...

<cfcookie name="cfid" value="" expires="now">
<cfcookie name="cftoken" value="" expires="now">

.when I set the initial client.initialize_session, but just 
couldn't get rid of his cfid and cftoken cookie. The only way I could 
kill his cookies was to do the cfcookie thing above BEFORE the 
cfapplication tag. That refreshed his cookies and everything is fine. 
But since there is no way to programatically check if any client 
variables exist BEFORE the cfapplication tag, I'm not sure of how I 
would make sure everyone starts with a fresh set of cookies at the 
beginning of a session.

So, my questions are:

1) What is it that would cause CF to try and insert a new record in 
the clientstorage database rather than updating the record that 
obviously exists?

2) How can I programatically delete the record from the database, 
especially if I don't know the client datasource name or if it's 
stored in the registry?
-- 

Bud Schneehagen - Tropical Web Creations

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ColdFusion Solutions / eCommerce Development
[EMAIL PROTECTED]
http://www.twcreations.com/
954.721.3452

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Signup for the Fusion Authority news alert and keep up with the latest news in 
ColdFusion and related topics. http://www.fusionauthority.com/signup.cfm

Reply via email to