1

最小および最大プール サイズが 1 のオブジェクト プーリングを使用するように構成された COM+ データ サービスがあります。そのため、シングルトンがあります。一部のシナリオでは、オブジェクト数 (このインスタンスへの参照を持つクライアントの数) が 1 を超え、着実に増加しています。インスタンスの作成とそのメソッドへの 1 回の呼び出しは using stmt でラップされるため、インスタンスはプールに適切に返される必要があります。これが発生すると同時に、いくつかのネットワークの問題が発生します (SQLServer でのトランスポート レベル エラーの例外)。そこに何らかの相関関係があるのではないかと推測しています。

オブジェクト数が 1 を超えて増加するのはなぜですか?

4

1 に答える 1

1

オブジェクト プーリングによる JIT (ジャスト イン タイム アクティベーション) の効果が見られます。

JIT を使用すると、複数のクライアントが同じオブジェクトへの参照を持つことができ、すべてのメソッド呼び出しを同じインスタンスで処理できます。各クライアントは、コンテキスト オブジェクトへの参照のみを保持します。メソッドが呼び出された後、メソッドがコンテキストに Done フラグを設定すると、オブジェクトはコンテキストから切断され、別のクライアントからの別のメソッド呼び出しで使用できるようにプールに戻されます。これにより、1 つのオブジェクトで多くのクライアントにサービスを提供できるため、リソースが節約されます。

以下を参照してください。 COM+ ジャストインタイム アクティベーションの概念

于 2009-01-27T20:41:40.160 に答える