状態管理

インスタンス化モード

  • PerCall
     一回のサービス呼び出しに対して1個のサービスインスタンスが作成
  • PerSession
     クライアントで作成したチャンネル1個のサービスインスタンスが作成
  • Single
     すべての呼び出しを1個のサービスインスタンスで処理

利用例:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class Service1 : IService
{

}
モードインスタンスの生成インスタンスの廃棄特徴
PerCallクライアントから呼び出された時呼び出し完了と同時にインスタンス生存期間が短い
CPUやメモリなどのリソース消費最小
スケーラビリティ高いサービスの構築
PerSessionチャンネルからの最初の呼び出しがあった時チャンネルが閉じられた時状態管理が必要なサービスに適している(インスタンス毎)
Singleサービスが開始された時サービスが終了された時状態の共有が容易

インスタンスの廃棄

 メモリ上のサービスインスタンスの廃棄はガベージコレクタが行うから、ガベージコレクタ起動するまでメモリ上に残っている。

 IDisposable を実装した廃棄は、インスタンスが生存している間だけリソースを確保されるようになり、リソースを効率的に利用できる。

 IDisposable を実装しても、サービスのインスタンスはガベージコレクタが起動するまで解放しない。

インスタンスの制限

  • 呼び出しの制限 (MaxConcurrentCalls) デフォルトは 64
  • インスタンス数の制限 (MaxConcurrentInstances) デフォルトは Int32.MaxValue
  • セッション数の制限 (MaxConcurrentSessions) デフォルトは 10


中古車買取実績No.1ガリバー

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:44:04 (727d)