JDBCSystemResourceMBean cannot be null.

データベースを別サーバーに移行した関係で、WebLogic Server 9.2のJDBCのデータソースのURLを変更して「変更のアクティブ化」をしたのだが、以下のような例外が発生した。

JDBCSystemResourceMBean cannot be null.
Stack Trace: java.lang.IllegalArgumentException: JDBCSystemResourceMBean cannot be null. at com.bea.console.utils.jdbc.JDBCUtils.getJdbcDataSourceBean(JDBCUtils.java:796) at 
...

別の担当者がWebLogic Serverをstop_weblogic_manager/start_weblogic_managerで再起動したところ、つながった。
http://forums.bea.com/thread.jspa?threadID=300000410にも設定内容を破棄して再起動だぜと書いてある。

使用予定

グループウェアを何にしようか物色していたが、Aipoがニーズに合っていると思ったので、採用しようと思う。
ニーズは以下のとおりである。

  • オープンソース
  • Javaで作成されている
  • 携帯電話の主要3キャリアをサポートしている
  • タイムカード機能
  • プロジェクト管理機能(これはどこまで使えるかは未知数)
  • Webメール
  • リンク機能(これは僕はあまり重要視はしていないが、この機能がほしいという人がいるため)
  • Google Calendar並みの操作性

何よりもオープンソースということで、ニーズに合っていないところは自分で改修ができるという便利さがある。あとはコミュニティがどこまで活発であるかが知りたいが、mixiに登録していないため、知ることができない。
Jetspeedを使用しているようなので、追加機能はポートレットの形で開発することにより、簡単に機能が追加できるように思う。
しかしサポートしているデータベースが、PostgresSQLだけのようなのだが、こちらはMySQLを使用しているので、それで動作できるように動作確認及び改修をしよう。
また、Mavenもバージョン1を使用しているようなので、バージョン2の設定ファイルを作成して、Maven2で動作するように変更しようと思う。
CentOSへのインストールは、グループウエアAipoをCentOS5にインストール - 情報技術の四方山話を参考にしてみよう。

mysql.sockが存在しない

MySQL 5.1.29をCentOS5.2にrpmでインストールしたのだが、Starting MySQL...と表示された後に「Manager of pid-file quit without updating file.[失敗]」と表示される。インストールに失敗したんだということはわかるが、昨日別のマシンで実行したときには問題なくインストールができた。今回のCentOSは不要なX-Windowなども入っているから削除してもらおう。
いろいろ試した結果、SELinuxがEnableになっていた。PermissiveもしくはDisabledにしてMySQLをインストールしたところ、正常にインストールができた。そういえば、昨日別のマシンで実行したときには、あらかじめSELinuxをPermissiveにしておいた。

ORA-00911:文字が無効です。

日本語のフィールドを持ったビューを作成しようとしたところ、「ORA-00911:文字が無効です。」というエラーが発生する。

CREATE OR REPLACE VIEW VIEW_FOO
(
    ID, 名前, ...
)
...

マルチバイトのフィールドを規定する場合にはフィールド名をダブルクォーテーションで囲む必要がある。
修正後

CREATE OR REPLACE VIEW VIEW_FOO
(
    ID, "名前", ...
)
...

とすることによって正常にビューが作成できた。

テーブルを親とする外部キーを検索する

Oracleで指定したテーブルを親とする外部キーを検索するには、以下のSQLを実行するとよい。

前提

  • テーブルの主キーの物理名が分かっていること

SQL

SELECT CONSTRAINT_NAME, TABLE_NAME FROM USER_CONSTRAINTS WHERE R_CONSTRAINT_NAME = '主キーの物理名'

InterceptorにrequestがDIされない

と同僚が質問してきた。
独自Interceptorを作成し、app_aop.diconにコンポーネントを追加したが、instance属性を指定しなかったため、singletonとしてTomcat起動時に独自Interceptorが生成される。しかしながら、requestは当然リクエスト時に作成されるため、独自Interceptor生成時点ではrequestインスタンスは存在しないため、DIされない。
そのため、instance属性をrequestと指定するように依頼した。そうするとhotdeploy環境ではDIされることが確認できた。
しかし、InterceptorからLogicをDIする設定にしているのだが、DIされない。app_aop.diconにコンポーネントを追加したため、SMART Deployではなくなっていた。InterceptorCreatorにより、interceptorパッケージにあるInterceptorプレフィックスのクラスはコンポーネントとして登録されるのだから、app_aop.diconにわざわざコンポーネントを登録する必要はない。なので、app_aop.diconから独自Interceptorの行を削除したところ、Pageクラスのinitializeメソッドに織り込んでいた独自Interceptorは実行されて、LogicもDIされているのを確認した。
めでたしめでたし。だが、なぜLogicがDIされないのかの原因が分からない。
あとCoolDeployで実行するとどうなるかをしてみなくてはならないが、

この状態で、HOT deploy な環境で動作テストをしているとちゃんと動いたので、COOL deploy で動かしてみるか〜と動かしてみると・・・ForPageInterceptor には HttpServletRequest が DI されるのに、ForDaoInterceptor には DI されなくなっちゃいました。

http://d.hatena.ne.jp/Ewigkeit/20080318/1205849053

にあるKoichiさんのコメントにある対応をしなくてはならないかもしれない。

日本ソフトボール北京五輪金メダルおめでとう

日本ソフトボール北京オリンピックで強豪アメリカを下し、金メダルを取った。
ソフトボール種目がオリンピックで最後になるということなので、有終の美を飾ることができた。本当におめでとうと言いたい。というか言ってる。

それに比べて野球は残念な結果になってしまった。韓国の球界はWBCで日本に敗れてから改革に取り組んだそうだ。オリンピックで使用するちょっと大きめのボールに近いボールをペナントレースでも使用し、マウンドも33センチから25センチまでと規定が変更されたようだ。これにより、日本のピッチャーに比べ、オリンピックの環境に適応する時間が短くて済んだのではないか。日本がWBC初代チャンピオンで浮かれていたときに韓国は捲土重来、雪辱を晴らすために一生懸命になっていたのではないか。
だいたいボールの大きさが地域によって違うなんてとんでもないことだ。世界でもっとも人気の高い球技といえばサッカーがあるが、このボールは世界どこでも同じなのではないか。あと、統治機構FIFAがあるが、野球の統治機構というのがあるのだろうか?日本国内でも高校生は高野連で、プロ野球NPBで、社会人は別の組織でといった連携が取りにくい環境にあるのではないか。
野球を世界に広めたいのであれば、FIFAのようなピラミッド式の態勢が必要なのでは?

ソフトボールに戻るが、世界最速の上野投手はただ球速が速いだけではなくて新たにボールがジャイロする変化球を身につけたそうだ。2日で3連投だそうだが、これを聞くとあの今年亡くなった鉄腕稲尾を連想する。

ジャイロボールとは?
ジャイロボールとは手塚一志氏によって発見されたボールで、ボールの進行方向と回転軸が一致したボールです。

http://baseballers.fc2web.com/pitching/jairo-index.html