3

adobe coldfusion 10 ドキュメント、Defining the application and its event handlers in Application.cfcには、以下の関数を含むサンプル Application.cfc があります。コードを見た後、次のコードにタイプミス/バグがあるかどうか疑問に思っています:

<cffunction name="onSessionStart"> 
    ...
    <cflock timeout="5" throwontimeout="No" type="EXCLUSIVE" scope="SESSION"> 
        <cfset Application.sessions = Application.sessions + 1> 
    </cflock> 
    ...
</cffunction> 

それは次のとおりです。

  • (A) cflock ... scope="SESSION"
    または
  • (B) cflock ... scope="APPLICATION"

?

(A)だったら困ります。誰かが理由を説明できますか?

4

2 に答える 2

1

これは、アドビ フォーラムで尋ねられた同じ質問に対する私の回答の複製です。

混乱しないでください...これはドキュメントのエラーです。ページの下部にコメントを付けることで、アドビに好意を示すことができます。彼らはそれらのコメントを監視しています (彼らは常に反応するとは限りませんが、監視しています)。
onSessionStart() は、セッション スコープに関する限り、本質的にシングル スレッドです。セッションごとに 1 回だけ実行されます (セッションの開始時...)。一方、問題のコード def は、アプリケーション スコープの変数へのシングル スレッド アクセスを望んでいます。これは、特定の単一の値に対して 2 つの同時セッションがヒットすることを望まないためです (それが理にかなっている場合)。

于 2012-06-28T06:13:16.723 に答える
0

書き込み先のSCOPEは常にロックします。この場合、それはアプリケーションになります。

于 2012-06-28T02:24:28.240 に答える