実行状態を特定する
ハイパーテキスト転送プロトコル (HTTP) は、コネクションレスプロトコルおよびステートレス プロトコルです。 コネクションレスでステートレスとは、異なる要求が同じクライアントから送信されたかどうか、または単一のブラウザー インスタンスがまだページまたはサイトをアクティブに表示しているかどうかを自動的に示さないことを意味します。 セッションが論理接続を作成し、HTTP を介したサーバーとクライアント間の状態を保持します。 特定のセッションに関連するユーザー固有情報は、セッション状態と呼ばれます。
セッション管理には、HTTP 要求を同じセッションから生成された他の以前の要求と相関させることが含まれます。 セッション管理を使用しないと、HTTP プロトコルがコネクションレスでステートレスな性質であるため、このような要求がレポート サーバー Web サービスと関係なく表示されます。
Reporting Services では、ASP.NET によって公開されるなど、セッション状態の包括的な概念は公開されません。 ただし、レポートを実行する場合に、レポート サーバーは実行の形式でメソッド呼び出し間で状態を保持します。 実行によって、レポート サーバーからレポートを読み込む、レポートの資格情報とパラメーターを設定する、レポートを表示するなど、ユーザーが複数の方法でレポートと対話することができます。
レポート サーバーと通信している間、クライアントは実行を使用してレポートの表示とレポート内の他のページへのユーザー ナビゲーションを管理し、レポートのセクションの表示と非表示を切り替えます。 クライアント アプリケーションが実行しているレポートごとに、固有の実行が存在します。
一般的に、ユーザーがブラウザーまたはクライアント アプリケーションにナビゲートし、表示するレポートを選択したときに、実行の有効期間が開始します。 実行は、実行に対する最後の要求が受信された後の短いタイムアウト期間の後に破棄されます (既定のタイムアウトは 20 分です)。
Web サービスのタイムアウトが開始するのは、レポート サーバー Web サービス LoadReport、LoadReportDefinition、または Render メソッドが呼び出されたときです。 アプリケーションは、他のメソッドを使用してアクティブな実行を操作できます (パラメーターの設定やデータ ソースの設定など)。 実行は、実行に対する最後の要求が受信された後の短いタイムアウト期間の後に破棄されます (既定のタイムアウトは 20 分です)。
アプリケーションは、ExecutionIDを保存することで、Web サービス Renderと RenderStream メソッドの呼び出しの間で複数のアクティブな実行を追跡します。 実行 ID は、 LoadReport メソッドおよび LoadReportDefinition メソッドから SOAP ヘッダーで返されます。
次のダイアグラムは、レポートに対する処理と表示のパスを示しています。
前述の関数をサポートするために、現在の SOAP Render メソッドは、実行の初期化、処理、レンダリングの各フェーズを含む複数のメソッドに分割されます。
プログラムによってレポートを表示するには、次の操作を行う必要があります。
LoadReport または LoadReportDefinition を使用して、レポートまたはレポート定義を読み込みます。
レポートに資格情報またはパラメーターが必要かどうかを確認します。このとき、CredentialsRequired または ParametersRequired によって返された ExecutionInfo オブジェクトの LoadReport プロパティと LoadReportDefinition プロパティの値を確認します。
必要に応じて、SetExecutionCredentials メソッドおよび SetExecutionParameters メソッドを使用して、資格情報またはパラメーター、あるいはその両方を設定します。
Render メソッドを呼び出してレポートを表示します。
レポートがセッション中の間は、レポート サーバー データベースに格納された基になるレポートを変更できます。 たとえば、レポート定義の変更、レポートの削除や移動、ユーザー権限の変更ができます。 レポートがアクティブなセッションにある場合、基になるレポート (つまり、レポート サーバー データベースに格納されているレポート) に対する変更は影響しません。
URL アクセス コマンドを使用して、レポート セッションを管理することもできます。