|
||||||||||
| 1 2 3 次のページ | ||||||||||
| トラブル事例 | ||||||||||
|
「第1回:Javaで重要なことは開発ではない?」では障害対応について、「第2回:障害発生を考えていますか?」では障害発生時にありがちな事例と対処法について説明しました。今回はクライアントPCなど、システム利用環境で発生しがちなトラブル事例についての対処法を解説します。 実際にお客様のシステムで発生した障害において、次のような経験はないでしょうか。
表1:システム障害の例 |
||||||||||
| 原因はWebコンテンツのキャッシュ | ||||||||||
|
このトラブル事例の原因は「Webコンテンツのキャッシュ」です。Webコンテンツのキャッシュは表2のような効果があり、アクセスのたびに変更がないコンテンツに対しては、非常に有用な機能となります。
表2:Webコンテンツのキャッシュによる効果 しかし、Webアプリケーションのシステムのように、アクセスのたびにコンテンツが変わる場合は、逆に悪影響をおよぼします。特に、最近よくみられるAjaxを採用したシステムは、画面でマウス操作やキーボード操作をするたびにコンテンツが変わるため、Webコンテンツのキャッシュが悪影響をおよぼしてしまいます。 |
||||||||||
| Webコンテンツのキャッシュが悪影響をおよぼす理由 | ||||||||||
|
ここでは図1のような画面遷移をするシンプルなWebアプリケーション例に、悪影響をおよぼす理由について解説します。 ![]() 図1:Webアプリケーションの例 「1.検索キーワード入力画面」にて、利用者は検索キーワードを入力し、検索ボタンを押します。システムは入力したキーワードをもとに商品を検索し、「2.商品検索結果表示画面」を表示します。 このとき、「X」というキーワードで商品検索すると、「X」というキーワードの「2.商品検索結果表示画面」について、「http://www.sample.jp/resultのキャッシュ」として保存されます。次に「Y」というキーワードで商品検索すると、先ほど保存した「http://www.sample.jp/resultのキャッシュ」を使用し、商品検索結果画面を表示します。その結果、「Y」というキーワードの商品検索結果画面が表示されません。 |
||||||||||
| キャッシュ機能を持つ機器 | ||||||||||
|
では、キャッシュ機能はどこにあるのでしょうか。Webブラウザが動作するクライアントPCからコンテンツを提供するサーバまでのネットワークをたどることで、キャッシュ機能を持つ機器をあげてみましょう。 社内ネットワークを利用する場合は図2のように、「クライアントPCにあるWebブラウザ」「プロキシサーバ」「Webサーバ」「アプリケーションサーバ」の4箇所でキャッシュが行われることが考えられます。 また、社内ネットワークではなくインターネットを経由すると、さらに機器は増えます。突然のアクセス増加に備えて、キャッシュサーバを設置しているケースや、コンテンツデリバリネットワーク(CDN:Contents Delivery Network)のサービスを導入しているケースも考えられます。 |
||||||||||
| キャッシュを制御する必要性 | ||||||||||
|
このように、ネットワークには様々な箇所にキャッシュ機能を持つ機器があります。対策としてはキャッシュ機能の無効化をすることです。しかし、現実としてすべての機器に対して対応できないことがあるでしょう。 また、画像ファイルやスタイルシートはアクセスのたびに変更することはほとんどありません。そのようなコンテンツはキャッシュ機能を使うべきでしょう。キャッシュ機能を無効化すべきなのは、アクセスのたびに変更するコンテンツであり、コンテンツによって適切にキャッシュを制御すべきです。 |
||||||||||
|
1 2 3 次のページ |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||




