Hey Guys,

I am getting a lot of these errors today:

"Transaction (Process ID 65) was deadlocked on lock | communication buffer
resources with another process and has been chosen as the deadlock victim.
Rerun the transaction."

On a system that is used to track 'views' of a page via an ajax request. All
of the errors are related to updating a specific table with a query like
this (this is not the CFML query..):

update formAnalytics_view 
set INLINESTART={ts '2013-07-16 10:04:21'} , 
INTERACTED=1 
where sessionid = '5BAC1158-D89E-4CB5-A8FB-1DC06D3E82A9'

The table has 4,925,131 rows and growing. It is has more writes than reads.
Is there something I can do to optimize this table to avoid these deadlock
errors? 

I had added a try/catch around the transactions that were causing these
deadlocks, and then I was re-running the failed transaction in the catch
segment, but it looks like the lock was not yet removed and this was just
leading to more errors. What is the best way to resolve this? Would adding a
thread.sleep() statement and then re-trying the transaction work or would
that just lead to more errors?

Note the queries should 9 times out of 10 be updating different rows of this
table. Should I add an index on the sessionID? Or would that make writes
slower?

Brook



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:356191
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to