2017-05-10 11 views
3

で見つかりませんでした。ColdBox 4.2を実行していて、reinitの後にこのエラーが表示されていましたが、特定のハンドラcfcが1つしかありませんでした。我々が何度か再考すれば、最終的にはなくなるだろう。これは競争状態のように聞こえる。ColdBox:_actionExistsメソッドがコンポーネント

我々だけではなく、ハンドラメソッドフレームワークミックスをさせるよりも、直接extends="coldbox.system.EventHandler"を行うのと思ったが、我々は別のエラーを見て始めた:

Error building: myApp.handlers.admin.report -> The CONTROLLER parameter to the init function is required but was not passed in. with constructor arguments: {}

我々は数回REINIT場合は同様に、このエラーが離れて行くだろうinitが途中でリクエストが来る前に、ベーキングが終わるところまで取得します。

負荷が大幅に軽減されているため、非プロードシステムではこれを再現できません。

誰もが似たようなことに遭遇し、負荷をかけながらフレームワークを正常に再開始する方法を見つけましたか?

答えて

2

私は実際には合理的に確実に再初期化の間に競合状態エラーを再現するために管理し、かなり多くの応答がこれまで正しい生産にfwreinitを使用していないされ、問題COLDBOX-307としてそれを掲示し、私たちはapplicationStopを呼び出し、私たち自身の方法を使用してに切り替えfwreinitを使用しているときに見ていた問題を修正しました。それが呼び出されたときに、いくつかの奇妙なエラーを持つことができるようにapplicationStopを使用しているとき、それはスレッドセーフではありません注意する

ことの一つは、(多分右の用語ではない)現在実行中のすべての要求ためのアプリケーションスコープを意味バイバイ行きますこのようにして

+0

セッション自体が終了しますか?私は本質的に、reinitを必要とする新しいコードを配備するために皆をログアウトするのは嫌です。 – jinglesthula

+0

@jinglesthulaセッション記憶域を使用してセッションが完全に再開されるので、私はそれについては実際にはわかりませんが、メモリセッションでのみ使用すると想像すると、基本的にはcoldfusionサーバーサービスを再起動するのと同じですが、セッションスコープが以前のアプリケーションからのオブジェクトを含むことができず、ガベージコレクションされないようにしていない場合は、メモリが不足するリスクがあります。 – Snipzwolf

+3

@ jinglesthula実際には答えはノーです。 applicationStopを呼び出すと、既存のセッションは終了しません。 –

関連する問題