web-dev-qa-db-ja.com

コンポーネントサービス、実行中のプロセス、スケジュールされたリサイクル

Windows Server 2003 SBSSP2ボックスを持っています。

それは私たちのビジネスアプリケーションをホストしています。

週に1回程度、オフィス全体のワークステーションでアプリケーションのクライアントが受信するため、「ビジネスサーバーに接続できません」というエラーメッセージが表示されます。

この時点で、私はSBSにリモート接続します

「dcomcnfg」コンソールルート>コンポーネントサービス>コンピュータ>マイコンピュータ>実行中のプロセスを実行します。

そこで、アプリケーションのアイコンを右クリックして、リサイクルを実行します。このプロセスが完了するとすぐに、クライアントはサーバーと再び通信できるようになります。

私の質問は、これを自動化して1日1回リサイクルできるかということです。コマンドラインから実行し、これを実行するためのバッチスクリプトを作成する必要がありますか?この場合、コマンドラインステートメントは何ですか?

GUIのどこかでそれができるなら、あなたは私を正しい方向に向けることができますか?

1
todbanner

PowerShellを使用して、コンポーネントサービスカタログを操作し、「RecycleLifetimeLimit」値を、アプリケーションがリサイクルする前に実行する必要がある分数に設定できます。

$TargetAppName = "todbannersBiznezApp"

$ComCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$ComCatalog.Connect("localhost")

$ComApps = $ComCatalog.GetCollection("Applications")
$ComApps.Populate()

foreach($App in $ComApps)
{
    if($App.Name -eq $TargetAppName)
    {
        # 30240 (21 days) is the maximum lifetime value
        # Let's set it to 1440 (24 hours) 
        $App.Value("RecycleLifetimeLimit") = 1440
        $ComApps.SaveChanges()
        break
    }
}

必要に応じて、コンポーネントサービス管理コンソールからも実行できます。

  1. コンポーネントサービス管理コンソールを開きます(実行-> comexp.msc
  2. [コンポーネントサービス]-> [コンピューター]-> [マイコンピューター/ローカルホスト]に移動します
  3. 展開COM +アプリケーション
  4. ビジネスアプリケーションを右クリックして、プロパティを選択します
  5. 「プーリングとリサイクル」タブに切り替えます
  6. アプリに必要なリサイクル設定を構成します
1