Java

NoClassDefFoundErrorの原因と対応(2)

NoClassDefFoundErrorの原因と対応(2)

 前回はTomcatにおけるクラスローダの全体像を書いた。今回はクラスの参照可否性について説明したい。クラスの参照可否性とはクラスローダがクラスを読み込むことができるかどうかの条件で、少々複雑な内容になる。 前回説明したクラスローダの階層と今回説明する参照可否条件まで知っておけば、クラスローダに起因す …

NoClassDefFoundErrorの原因と対応(1)

NoClassDefFoundErrorの原因と対応(1)

 前回の記事ではJavaクラスローダに関する現象を書いた。普段はあまり意識することの少ないクラスローダだけど、前回のような現象が現実に起きていることを考えると、クラスローダに対する多少の知識はあったほうが絶対に役立つ。 今回はクラスローダの様々な機能・特徴のうち、Webアプリケーションプログラマでも是 …

MissingResourceExceptionの解決法

MissingResourceExceptionの解決法

 JavaベースのWebアプリケーション実行環境Tomcatをターゲットとしたアプリケーションを開発していたときのこと。一部のロジックをmainメソッドから実行できるように変更した。そして、いざ実行してみるとこれまで読み込めていたプロパティファイルが読めなくなってしまった! なぜこんなことになってしま …

OutOfMemoryErrorの原因と対応(3)

OutOfMemoryErrorの原因と対応(3)

 OutOfMemoryError回避のためのJavaコーディング – 前編と後編でOutOfMemoryErrorの典型的な発生パターンを3つ紹介した。 (A)サイズオーバー型 巨大な領域確保によって一気にヒープの最大サイズをオーバー (B)メモリリーク型 開放されないオブジェクトが溜ま …

OutOfMemoryErrorの原因と対応(2)

OutOfMemoryErrorの原因と対応(2)

 前回(OutOfMemoryError回避のためのJavaコーディング – 前編)に引き続き、OutOfMemoryErrorの話題。前回は、OutOfMemoryErrorを3パターンに分けた。 (A)サイズオーバー型 巨大な領域確保によって一気にヒープの最大サイズをオーバー (B)メ …

OutOfMemoryErrorの原因と対応(1)

OutOfMemoryErrorの原因と対応(1)

 Javaアプリケーションサーバーを使っていると、OutOfMemoryErrorに遭遇することが時々ある。最近はサーバーの物理メモリサイズが2GBを超えることもあるのに、やっぱりこのエラーは発生する。 OutOfMemoryErrorは文字通り、メモリが足りないという意味だ。だけど、当然ながら物理メ …

スレッドの注意点まとめ

スレッドの注意点まとめ | Java

 どんなプログラム言語でもそうなのですが、マルチスレッド下でプログラムを組むときは、シングルスレッドとは違うところに色々気を使わないといけません。 今回は、Javaマルチスレッドプログラムでは基本的なことですが(自分だけかもしれませんが)よく忘れて、不可解な動作に首を傾げてしまうポイントについて説明し …

JavaMailの文字化け解決法

JavaMailの文字化け解決法

 今回は以前JavaでWebアプリケーションを開発した際に遭遇したJavaMailに関しての対応策とその原因の調査結果を書きます。 対策は簡単だったのですが、原因は調査するにつれ込み入った話であることが分かりました。 Javaの関連記事: OutOfMemoryError回避のためのJavaコーディン …

ArrayListをスレッドセーフ化するには?

ArrayListをスレッドセーフ化するには?

 前回は、DateFormatクラスがマルチスレッド問題によってバグを引き起こす例を紹介した。マルチスレッドによる問題に対処するには、スレッドごとにインスタンスを作成するか、synchronizedブロックによる同期化を行う。でも「正しい同期化」を行うには十分な知識とコードの把握が不可欠・・・。 そん …

プロプロセッサの使い方

プロプロセッサの使い方 | Java

 現在のJavaでは資源の節約があまり意識されなくなってきていますが、 今でも少ない資源(メモリ・CPU・VRAM等のリソース)の下でJavaを使ったプログラムのニーズはあります。 例えば、今では誰もが持っている携帯電話や家電製品等の組み込み系がそれに当たります。 ここでは、携帯電話でのJavaアプリ …

SimpleDateFormatのマルチスレッド問題

SimpleDateFormatのマルチスレッド問題 | Java

 JavaベースのWebサイトを本番リリースした後、発生するトラブル・・・。あってはいけないけど、トラブルが発生した原因を調査し、対処しなきゃいけない。 で、原因を調査するとき、まず再現条件を調べるんだけど、再現させるのが難しいのがこのマルチスレッド問題。ページをリロードする度に、うまくいったり、エラ …

Page Top