2012-04-02 2 views
1

ColdFusion 9では、アプリケーションが最大タイムアウトに達してメモリスペースがダンプされると、アプリケーションがリビルドされますか?つまり、onApplicationStartが呼び出されますか?タイムアウト後にonApplicationStartは実行されますか?

もしそうなら、どの時点でタイムアウトか次のページが呼び出されますか?

答えて

6

アプリケーションがタイムアウトすると、アプリケーションにの次の要求があり、onApplicationStart()が呼び出されます。しかし、アプリケーションに対するすべての要求がタイマーをリセットします。言い換えれば、アプリケーションが「タイムアウト」するためには、アプリケーションタイムアウトプロパティで指定された時間の間、アイドル状態(ゼロ要求を処理中)でなければなりません。

1

あなたがonApplicationStart()メソッドがちょうど発射したことを自分のために確認したい場合は、メソッドの最後に、このような何かを行うことができます。

<cfscript> 
// GOES WITHIN THE ON APPLICATION START METHOD 
APPLICATION.AppSettings.ThisDomain = CGI.HTTP_HOST; 
if (APPLICATION.AppSettings.ThisDomain == "YourAwesomeDomain.com") { 
    APPLICATION.AppSettings.ProductionMode = true; 
} else if (APPLICATION.AppSettings.ThisDomain == "127.0.0.1:8500") { 
    APPLICATION.AppSettings.ProductionMode = false; 
} else { 
    abort; 
} 
// STALL THE APP IF IT IS IS DEVELOPMENT MODE 
if (APPLICATION.AppSettings.ProductionMode == true) { 
    writeoutput("<h1>Just FIRED UP the APPLICATION in DEVELOPMENT mode.</h1>"); 
    writeoutput("<a href="">continue.</a>"); 
    abort; 
} 
</cfscript> 

あなたは5秒後にアプリケーションをタイムアウトした場合と、このページに5秒以上の頻度でヒットすると、「ただ起動しました」というメッセージが表示されます。 5秒未満の頻度でページに当たると、このメッセージは表示されません。

新しいセッションがあまりに作成されたときに表示され、これを拡張することができます。

<cfscript> 
// GOES WITHIN THE ON SESSION START METHOD 
// STALL THE APP IF IT IS IS DEVELOPMENT MODE 
if (APPLICATION.AppSettings.ProductionMode == true) { 
    writeoutput("<h1>Just FIRED UP a new SESSION in DEVELOPMENT mode.</h1>"); 
    writeoutput("<a href="">continue.</a>"); 
    abort; 
} 
</cfscript> 
関連する問題