0

いくつかのAdvantage Extended Proceduresを .NET で作成し、Advanced Database Server で実行しています。SP への最初の呼び出しを行った直後に、.NET アセンブリがロックされます。アセンブリを新しいバージョンで更新する必要があります。私が見つけたこの瞬間までの唯一の方法は、ADS の再起動です。これは絶対に不快です。アセンブリのロックを解除する他の方法はありますか?

4

1 に答える 1

1

Advantage Extended Procedure (AEP) をテスト/デバッグする最も簡単な方法は、テスト アプリケーションを実行するたびにロードされ、テスト アプリケーションが終了するとアンロードされる Advantage Local Server (ALS) を使用することです。

Advantage Database Server (ADS) を使用する場合、ストアド プロシージャを使用しているすべてのクライアントが切断されていることを確認する必要があります。アドバンテージは、ストアド プロシージャを使用したすべての接続が閉じられるまで、DLL をメモリに保持します。テスト アプリケーションを異常終了させた場合、サーバーはアプリケーションが終了したことを認識しません。クライアントのタイムアウト設定 (デフォルトは 2 分) 内にクライアントが応答しない場合、接続はサーバーによってクリーンアップされます。

デバッグの一部として /EXE スイッチを使用して、ADS を実行可能ファイルとして起動することもできます。これにより、AEP のデバッグ中に ADS を自動的に開始および停止できます。ただし、この方法を使用する場合は、別途テスト アプリケーションを起動する必要があります。

さらに、AEP をデバッグする前に、ADS_DD_DISABLE_DLL_CACHING システム プロシージャを呼び出して、DLL キャッシングを無効にする必要があります。デフォルトでは、ADS はストアド プロシージャを含む DLL のコピーを作成し、DLL へのアクセス時に新しいバージョンをチェックします。この機能を無効にすると、常に最新バージョンの DLL を使用できます。

于 2010-12-02T18:40:49.707 に答える