クライアント性能モニタ機能運用時の注意事項を次に示します。
表9-9 クライアント性能モニタ機能適用によって挙動が変更されるWebアプリケーション
項番 | 項目 | 説明 |
---|---|---|
1 | 通信量の増加 |
|
2 | Content-Lengthヘッダの無効 |
|
3 | コンテンツのキャッシュ制御 | クライアント性能測定スクリプトが挿入されたHTMLコンテンツは,Webブラウザおよびキャッシュサーバにキャッシュされません。レスポンスには次のHTTPヘッダが付与されます。 Cache-Control: no-store, no-cache Pragma: no-cache この結果,Webブラウザの[戻る]ボタンを押すと,事前のフォーム入力内容が消えてしまうなどの影響があります。 なお,そのほかのHTMLコンテンツ以外(画像ファイルなど)のキャッシュ制御は,クライアント性能モニタ機能を適用する前と同じです。 |
4 | WebアプリケーションのリクエストヘッダIf-None-MatchおよびIf-Modified-Sinceの削除 |
|
5 | WebアプリケーションのレスポンスヘッダLast-Modifiedの変換 | HTTPレスポンスにLast-Modifiedヘッダが含まれる場合,クライアント性能フィルタを適用したアプリケーションの開始時刻に変換します。 遷移については,「図9-24 Webアプリケーションのリクエストヘッダおよびレスポンスヘッダの制御例」を参照してください。 |
6 | フレーム構成のWebブラウザの見た目の変化 | クライアント性能フィルタが適用されたフレーム構成のWebブラウザを表示した場合,ページの最上部または最左部に境界線が表示されます。 |
7 | javax.servlet.ServletResponseのバッファサイズの変化 | クライアント性能フィルタでは,javax.servlet.ServletResposeを独自に拡張したクラスのインスタンスを生成して,サーブレットフィルタ,サーブレット,JSPまたは静的コンテンツに送信します。このときgetBufferSizeメソッドで取得できるバッファサイズは,クライアント性能フィルタ適用前よりも大きくなる場合があります。この場合のバッファサイズは,クライアント性能フィルタの初期化パラメタfilterSizeに指定した値になります。 |
8 | WebアプリケーションのリクエストヘッダRangeの変化 |
|
図9-24 Webアプリケーションのリクエストヘッダおよびレスポンスヘッダの制御例
クライアント性能モニタ機能の性能データは,アプリケーション単位で取得されます。そのため,モニタページで確認できるのはモニタページ表示のためにアクセスしている同一アプリケーション内の情報だけです。複数のWebアプリケーションの性能データを横断的に表示および確認することはできません。
クライアント性能モニタ機能では,Internet Explorerのuser Dataビヘイビアを使用して性能データを記録します。ただし,user Dataビヘイビアを使用して保存できるデータサイズには上限があります。クライアント性能モニタ機能が使用できるデータサイズは,一つのWebアプリケーション当たり最大384キロバイトです。
Webアプリケーションでuser Dataビヘイビアを使用している場合,同じドメイン内で保存するデータサイズの合計が,user Dataビヘイビアの仕様で定められている上限値を超えないようしてください。user Dataビヘイビアについては,Internet Explorerのドキュメントを参照してください。
デフォルト設定の場合,クライアント性能モニタ機能が生成する問い合わせIDには,サーバが動作しているホストのIPアドレスが含まれます。負荷分散機やリバースプロキシを使用している場合など,サーバのIPアドレスをクライアント側に公開しないシステム構成のときには,問い合わせIDにIPアドレスを含まないように設定することを推奨します。詳細は,「9.2.3 問い合わせIDの定義方法」を参照してください。
サーブレットやJSPなどからコンテンツを出力する場合にjavax.servlet.ServletResponseクラスのgetOutputStreamメソッドを使用して取得した出力ストリームに出力するときは,setContentTypeメソッドなどによってコンテンツの文字セットを適切に設定しておいてください。設定されている文字セットとサーブレットが出力するコンテンツが異なる場合,クライアント性能測定スクリプトが挿入されないことがあります。
また,クライアント性能測定スクリプトが挿入されたコンテンツでは,Webブラウザでの文字セットの自動識別の結果が挿入前と変化することがあります。この場合,文字セットが指定されていないコンテンツで表示すると,結果に文字化けが発生することがあります。クライアント性能モニタ機能を適用していない場合は正常に表示されていたコンテンツでも,文字化けが表示される場合があります。
クライアント性能測定スクリプトでは,変数としてClientPerformanceを使用します。WebアプリケーションのHTMLコンテンツで同じ変数名を使用している場合,クライアント性能モニタ機能は適用できません。
次に示すファイル名はクライアント性能モニタ機能で予約されています。Webアプリケーションでは使用しないでください。
これらのファイル名に重複するものがWebアプリケーションにある場合,クライアント性能モニタ機能は適用できません。重複するファイル名がある場合は,Webアプリケーションのファイル名を変更してください。ファイル名にはサーブレットマッピングなども含みます。
クライアント性能測定スクリプトが挿入されたコンテンツを表示している最中,モニタページを操作している最中などに,Webブラウザの中止ボタンは使用しないでください。保存している性能データが壊れるおそれがあります。
クライアント性能モニタ機能を適用したWebアプリケーションでは,性能取得フェーズで複数のWebブラウザを同時に並行して操作しないでください。保存している性能データが壊れるおそれがあります。この理由から,クライアント性能モニタ機能はユーザの操作なしで自動的に画面を遷移させる機能(HTMLのMETAタグによる自動更新など)を持つようなWebアプリケーションには適用できません。
フレーム構成のWebブラウザ(<iframe>によるインラインフレームページを含む)に対してクライアント性能モニタ機能を適用する場合,親フレームを表示した時に最初に表示される子フレームのコンテンツの通信時間,描画時間および応答時間の情報は取得されないことがあります。ただし,そのあとの子フレーム内で遷移した時に表示される各コンテンツの情報は取得されます。
次の図に例を示します。
図9-25 フレーム構成のWebブラウザの性能データを取得する場合の例
子フレームBの通信時間,描画時間および応答時間は取得されない場合があります。親フレームAおよび子フレームCの情報については取得されます。
クライアント性能フィルタは,クライアント性能測定スクリプトの挿入位置を文字列の比較で検索します。HTMLコンテンツのコメント部分など,HTMLタグが無効となる位置に,<head>,</head>,<body>,<frameset>などのHTMLタグを表す文字列がある場合,これらの位置にクライアント性能測定スクリプトを挿入するおそれがあります。このようなHTMLコンテンツを含むWebアプリケーションには,クライアント性能モニタ機能は適用できません。