非同期 XML Web サービス メソッド
長時間の実行でスレッドをブロックするメソッドを呼び出す Web サービス メソッドのパフォーマンスを向上するには、それを非同期 Web サービス メソッドとして公開します。非同期 Web サービス メソッドを実装すると、スレッドがスレッド プールに返されたときに、そのスレッドで別のコードを実行することができます。これにより、スレッド プール内で数が限られているスレッドをもう 1 つ実行して、システム全体のパフォーマンスとスケーラビリティを向上できます。
Web サービス メソッドを非同期アクセス用の 1 組のメソッドに変換するための詳しい手順については、「方法 : 非同期 Web サービス メソッドを作成する」を参照してください。その他のコード例については、「方法 : Web サービス メソッドで非同期呼び出しをチェーンする」を参照してください。
一般に、I/O 操作を実行するメソッドを呼び出す Web サービス メソッドは、非同期の実装に適しています。このようなメソッドの例には、他の Web サービスと通信するメソッド、リモート データベースにアクセスするメソッド、ネットワーク I/O を実行するメソッド、サイズの大きいファイルを読み書きするメソッドなどがあります。このようなメソッドはハードウェアで長時間実行されるので、Web サービス メソッドを実行するスレッドがブロックされたままになります。Web サービス メソッドが非同期的に実装されている場合、そのスレッドを開放して別のコードを実行できます。
Web サービス メソッドが非同期的に実装されているかどうかに関係なく、クライアントは Web サービス メソッドと非同期的に通信できます。Web サービス メソッドが同期的に実装されている場合でも、Web サービス記述言語 (WSDL.EXE) ツールによって生成されたプロキシ クラスでは、.NET クライアントに非同期の通信が公開されます。プロキシ クラスには、各 Web サービス メソッドと非同期的に通信するための Begin メソッドおよび End メソッドが含まれています。このため、Web サービス メソッドを非同期的に実装するか同期的に実装するかは、パフォーマンスに基づいて判断する必要があります。
メモ : |
---|
非同期 Web サービス メソッドを実装しても、クライアントと、Web サービスをホストするサーバーとの間の HTTP 接続には影響しません。HTTP 接続は切断されず、プールされません。 |
関連項目
タスク
方法 : 非同期 Web サービス メソッドを作成する
方法 : Web サービス メソッドで非同期呼び出しをチェーンする
概念
その他の技術情報
Copyright © 2007 by Microsoft Corporation.All rights reserved.