If I had to guess, it would be that event gateway requests handle the way timeout="0"
incorrectly. The docs for <cflock>
for ColdFusion 9 say this:
If you set timout="0", the timeout is determined by the "Timeout Requests after x" setting in the ColdFusion Administrator Settings page, if that setting is enabled. However, if the setting is not enabled, and you set timeout="0", ColdFusion can wait indefinitely to obtain the lock.
Perhaps - and this really is just speculation - CF deals with locks that time out incorrectly when run via an event gateway?
To troubleshoot, maybe put a sleep()
in the locked code so that concurrent gateway requests will timeout, and see what gets logged?
Do you have a request timeout set?