本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。プロフィールで選択した情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

WAS 小ワザ集: 第16回:Application Anti Pattern(3) 外部リソース利用の繰り返し

WebSphere事業部, , IBM Japan
WebSphere事業部, IBM Japan

概要: 「WebSphere Application Server 小ワザ集」では WebSphere Application Serverを導入・構築・運用管理する上で便利な機能やツール、コマンドなどをご紹介します。WebSphere Application Serverをもっと使いやすくするためのヒントとしてご活用ください。

このシリーズの他の記事を見る

日付:  2012年 3月 28日
レベル: 初級
アクティビティー: 1224 ビュー
お気軽にご意見・ご感想をお寄せください: 


Anti Pattern

あるお客様が、アプリケーションの挙動を詳細に調査するため、自作のロギングクラスを作成し、アプリケーション内の各所に追加されました。

このロギングクラスは、ログを記録するメソッドが呼ばれるたびに、ファイルをオープンし、ログを書き込み、クローズする、というつくりになっていました。

Result

クライアントからのリクエストが一回行われるたびに、このロギング・メソッドは数回~十数回呼び出されるようになっていました。

ファイルのオープン・クローズという処理はかなり重い処理です。

このため、アプリケーション全体のパフォーマンスがかなり低下してしまいました。特に、ログを記録するメソッドがsynchronized指定されていたため、多くのクライアントからリクエストが集中したときには処理が直列化され、著しいパフォーマンスの劣化を招いてしまいました。

Best Practice

外部のリソース、たとえばファイル、ネットワーク接続、DB接続などを使用する際には、使用前にオープン、使用後にクローズの処理が必要になります。このオープン・クローズの処理は、多くの場合において非常に大きなコストのかかる重い処理です。これらの処理は極力減らすようにコーディングする必要があります。

例えば今回の例では、ファイルはロギングを担当するマネージャークラスがオープンして保持しておき、個々のログの記録が行われるときには直接ログをファイルに書き込むのではなく、マネージャークラスへログの通知を行うような設計にするべきでした。ファイルへの書き出しは、マネージャークラスが一括して、一定時間ごと、あるいは一定回数ごとに非同期的に行うようにしておけば、パフォーマンスの劣化は最小限にすることができます。

また、共有可能な外部リソースについては、プーリングによる再利用をおこなって、リソースのオープン/クローズの回数を減らすことも効果があります。


参考文献

著者について

WebSphere事業部, IBM Japan

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=WebSphere
ArticleID=806646
ArticleTitle=WAS 小ワザ集: 第16回:Application Anti Pattern(3) 外部リソース利用の繰り返し
publish-date=03282012