マキノ式@Blogger

マキノ式@ブログ! Java関連をベースとしてWEBとかプログラミングとか

7.31.2005

例外設計の要諦をつかむ

JavaWorld9月号の記事で「例外設計の要諦をつかむ」という記事がある。
迷わず買いです。
  • 例外の基本
  • ユーザー定義例外の設計原則
  • EJBにおける例外処理
という構成だが、どれも面白い。

特に面白いというか、役に立つのが「EJBにおける例外処理」である。
実際、ここ1ヶ月EJBのXAExceptionに悩まされおりEJBの例外発生時のコンテナの振る舞いについて勉強が足りないなーと感じていた矢先の記事だったので飛びついてしまった。
具体的には、EJBにおけるアプリケーション例外、システム例外発生時にクライアントはどのように対処すべきか、そしてコンテナはどのようにトランザクションを処理するかが書かれている。
多少、日本語がわかりづらいが非常に役に立った。

ただ、ユーザー定義例外の設計原則においてRuntimeExceptionを継承してExceptionを作るべきではないという部分には、若干疑問が残る。
例えば記事の中では、FileNotFoundExceptionにはIOExceptionがあるように上位クラスではスーパークラスでキャストしてカテゴリーごとに対処すべきだと言っている。
しかし、現実的じゃないような気がする。
例えばSQLExceptionって、ロックタイムアウトや重複時の例外以外ってRDBのエラーだったりするわけである。つまり回復なんぞおお無理なわけだから、通常の例外にされると他のクラス設計によからぬ影響を残す気がする。
だもんで、Model部分でキャッチしてログを出した後にRuntimeExceptionでthrowしてしまうほうが良いのではないだろうか?という事である。

ただ、この辺が不勉強なところで、EJBコンテナにおいてはどうもRuntimeExceptionしたときの振る舞いが判然としない。

-------

ちなみに、DB2でXA利用時にLocktimeOutのSQLExceptionが出ると、キャッチして握りつぶしてもXAResourceがXA_RBDEADLOCKによってendできないのは仕様なのだろうか?DBにはちゃんと反映されているんだけどなー。
そもそもLocktimeOutが発生した時点で、だめってことなのかな?

7.30.2005

FC4ぶっ壊れた・・・

FedoraCore4がぶっ壊れた。
正確にいうと、GDMでroot以外でログインできなくなってしまった。
原因は不明だが、ある日リモートからXDMCPでログインしてみたら、ログインしたあとすぐにログアウトされてしまう。
おかしいと思って、本体でログインしたら
あなたのセッションは10秒以上続きませんでした。もしあなた自身の手でログアウトしたのでなければ、インストールの問題があるか、ディスクスペースが足 りないか、ということを意味します。フェイルセーフなセッションからログインしてみて、この問題を解決できるかどうか確認してください

って、言われちゃう。
ちょっと調べてみると同じ現象に遭遇している人はいるものの、掲示板で放置プレイ。
しかも原因がいろいろあるっぽい。

http://cvs.gnome.org/viewcvs/gdm2/po/ja.po?rev=1.30
のサイトから英語のメッセージを調べ、それで探してもいまいち原因がわからない。

そろそろ1週間になるのであきらめて、WBEL4に乗り換え決定!

7.29.2005

技術革新の足を引っ張るな

この著作権の権利団体というのが、いまいち既得権益団体にしか見えない。
日本のオンラインコンテンツの流通を妨げてるのは、やつらでは・・・・

速やかに「iPod課金」を――音楽関係7団体が強く要望
http://www.itmedia.co.jp/lifestyle/articles/0507/28/news106.html

7.02.2005

おっ、Geronimo来るか?

アパッチ族の大酋長の名を冠するオープンソースJ2EE実装「Geronimo」、開発開始から2年、満を持していよいよ登場するかもしれない。
果たして昨今の軽量コンテナブームを押しのけて存在感をアピールできるか!?

実際問題、中立的であるApacheからJ2EE互換コンテナがリリースされるのは非常に喜ばしい。
兼ねてより、私はJ2EEを習得するに当たり、その仕様の複雑性よりももっと大きな問題があると思っている。
その問題とは、J2EEを始めようとしたときに何から手をつけてよいのかまったくわからいということである(少なくとも私は・・・)。
例 えば代表的な製品でIBMのWebSphere、BEAのWebLogic、SunのSunOne(もう名前変わりすぎて覚えてないヨ)、JBossな どがあるが、どれを触ってみてもどこからがベンダ固有で、どこからがJ2EEの仕様なのかがわからないのである。それゆえ、苦労して覚えても役に立たない のではないかという不安に襲われるのである。かくして初心者は、その不安とJ2EE特有の複雑性・・・もとい芸術性により、かのEJBを語るとき遠い目を してしまうのである。

つまりGeronimoの意義とは、かつてサーブレット開発者がTomcatを学ぶことによって各ベンダのサーバに適応していったように、J2EEコンテナにおける標準スキルパスを用意することにあると思う。

是非、Tomcatと同様にGeronimoがJ2EEコンテナのデファクトスタンダードになってくれることを望みたい。

Apache Geronimo公式サイト
http://geronimo.apache.org/

developerWorks - Apache Geronimo resources
http://www-128.ibm.com/developerworks
/opensource/top-projects/geronimo.html


アパッチの「Geronimo」プロジェクト、Java互換性試験に合格
http://japan.cnet.com/news/media/story/0,2000047715,20084928,00.htm

さーて、じぇねりっくす時代が始まるざーんす!

Eclipse3.1正式リリース!!!
http://eclipse.org/

Eclipse3.1のJDTがフルサポートするJDK1.5(J2SE5.0)は、Genericsプログラミング、Annotation、enum型 サポート、Autoboxing、拡張for文など数多くの言語仕様拡張とThread制御周りを初めとするAPIの大幅な強化により別言語といっても良 いと思う。

これらの非常にエキサイティングな拡張は、新たなコーディングスタイルやプログラミングパターン、設計ノウハウをもたらすに違いない。

これからのことを考えると、ワクワクするなぁ~~!
ああっ、生まれてきて良かった。