maxConcurrentInstances: 同時実行モードとインスタンス コンテキスト モードに関係なく、同時に要求を処理できるサービス クラスのインスタンスの最大数。
maxConcurrentSessions: 同時にアクティブな WCF セッションの最大数。
同時実行モードが NO マルチスレッドに設定されていると仮定します。
IF Instance context mode = Per session
THEN Max number of requests processed in parallel = Min(maxConcurrentInstances, maxConcurrentSessions)
IF Instance context mode = Per call
THEN Max number of requests processed in parallel = maxConcurrentInstances
IF Instance context mode = Single
THEN Max number of requests processed in parallel = 1
同時実行モードがマルチスレッドに設定されていると仮定します。
1 つのインスタンスで複数のリクエストを処理できるようになりましたが、同時実行の問題に注意する必要があります。
重要な質問は、インスタンス コンテキスト モードをどのように選択するかということです。
- マルチスレッド プログラミングに自信がない: PerSessionまたはPerCallに固執する
- 同じクライアントからの呼び出しの間、サービス レベルでデータを保持する必要はありません。PerSession を回避します。
- サービスの新しいインスタンスを作成するのは非常にコストがかかります。Single を使用しますが、同時実行の問題に対処する準備をしてください。
その後、インスタンス (PerCall の場合) とセッション (PerSession の場合) の最大数を調整する必要があります。通常、100 などの任意の数値に設定することから始めて、処理が速くなるかどうかを確認します。もしそうなら、大丈夫です。そうでない場合は、インスタンスが十分に迅速に作成できるかどうかを確認してください。