2

私はColdFusion8とjQueryを使用しています。

私はjQueryを介していくつかのajax呼び出しを行うページで作業しています。非常に頻繁に、ajaxを介して呼び出されるページの1つでアプリケーションタイムアウトエラーが発生します。すべてのajax呼び出しでエラーが発生するわけではありません。毎回同じ呼び出しでエラーが発生することはありません。

私が理解していることから、エラーは、それぞれが同じアプリケーション変数に同時にアクセスしようとする異なるページによって引き起こされます。問題を解決するための最善のアプローチがわかりません。

コードは2秒のタイムアウトを設定しているようです。これは過剰に思えます。cflockを読み取り専用に設定する必要がありますか?他に何かアドバイスはありますか?

 A timeout occurred while attempting to lock the Application scope.

 The error occurred in E:/INETPUB/WWWROOT/DEV/AVCAT/Application.cfm: line 53
 Called from E:/INETPUB/WWWROOT/DEV/Application.cfm: line 1
 Called from E:/INETPUB/WWWROOT/DEV/Application.cfm: line 53
 Called from E:/INETPUB/WWWROOT/DEV/Application.cfm: line 1

 51 : 
 52 : <!---<cfif NOT IsDefined("application.datasource")>--->
 53 :   <cflock timeout="#CreateTimeSpan(0,0,2,0)#" SCOPE="Application">
4

1 に答える 1

3

タグのtimeout属性は秒を期待しています。cflockしたがって、2 分間のタイムアウト期間が必要な場合は、timeout属性を 120 に設定する必要があります。

<cflock timeout="120" SCOPE="Application">

このCreateTimeSpan()関数は日付/時刻オブジェクトを返します。cflockタイムアウトの値をどのように解釈しているのかわかりません。

exclusiveロックとロックを使用する限りreadonly。コードがアプリケーション スコープ変数のみを読み取る場合は、readonlyロックを使用してください。コードでアプリケーション スコープ変数を設定している場合は、exclusiveロックを使用してください。exclusive属性を指定せずに使用しているロックを使用するtypeと、そのコードがシングルスレッドになります。それがあなたの問題かもしれません。

于 2012-11-12T18:15:36.563 に答える