2011-01-31 17 views
1

すべてのCOM +アプリケーションを反復処理し、キューに登録されているものを開始する単純なVBScriptがあります。これは30分ごとに実行されます。私のサーバーは2.5GBのメモリを持っています。それから約3日後、Windows Script Hostから「メモリ不足」エラーが発生します。しかし、それはサーバーのメモリが正常だと思われる。約1ギガバイト無料です。キューに登録されたCOM +アプリケーションを起動するためのVBScript - リークメモリ

これは私のスクリプトのようです。

dim cat 
Dim apps 
Dim app 

set cat = CreateObject ("COMAdmin.COMAdminCatalog") 

set apps = cat.getcollection("Applications") 
apps.populate 

for each app in apps 
    if app.Value("QueuingEnabled") then 
    cat.StartApplication (app.name) 
    end if 
next 

前回私はこのエラーを報告しました。 set apps = cat.getcollection("Applications")はメモリが不足している場所です。誰もこの問題を解決する方法に関する提案はありますか?私はCOM +の経験がほとんどないので、ここで何がメモリを消費しているかを知ることは難しいです。サーバー上には約8つのCOM +アプリケーションしか実行されておらず、大きなものではありません。

ここにお手伝いいただければ幸いです。

答えて

1

私はあなたが必要だと思う:あなたのスクリプトの最後に

Set app = Nothing 
Set apps = Nothing 
Set cat = Nothing 

COMAdmin.COMAdminCatalogオブジェクトの使用例については、http://support.microsoft.com/kb/304713を参照してください。

+0

私は "procmon"を走らせることができたことを知りました。 「何もない」宣言は良い習慣ですが、私はあなたに答えを教えてくれます:] – cc0

+0

Eric Lippertの[いつオブジェクトに何も設定する必要はありませんか?](http://blogs.msdn.com/b/ericlippert/var/Nothing'プラクティスについての興味深い議論のためには、/ var/nad//archive/2004/04/28/122259.aspx)。驚くべき答えは、ほとんど決してありません。 –

関連する問題