ふたつの川うるおう日記
2006-03-01 (Wed)
_ [Seasar] Seasar入門 〜はじめてのDI&AOP〜 の紹介ページ
なんてものがあったんですね。監修者・著者紹介や制作秘話があり面白いです。
_ [Seasar][Server] メモリ不足?
Out of Memory: Killed processが発生しまくっている問題。cachedとSwapのfreeがありまくるのになんで発生するのだろうか。検索してみたところ、領域外参照やメモリが壊れてる可能性もあるらしい。とりあえずMRTGで統計とることにしました。
追記: dragon3さんから楽観的メモリ配置戦略について教えていただきました。書かれている対策案で改善されるかも?
_ [Work] Mayaa移行
昔作ったやつをMayaaに移行させました。そして、次はこれに別のを合体させないといけない。面倒ー。
昨日はMayaa MLにちょっと恥ずかしいメール投げてしまいちょっと反省。
_ [Work] 挨拶の電話
上の文章書いてたらDellから電話が来た。何言ってるか最初訳わからず、間違い電話かと思い電話先聞いたら合ってました。てっきり故障の対応電話を間違った客に電話しているのかと思ったらそうではなく、うちの担当に新しくなるからよろしくお願いしますという挨拶の電話だった・・・。2・3質問されて、その後、メール送って良いかと聞かれたので良いですとお伝えしたらメールが飛んできました。不思議な電話でしたが、この方を通して購入するとちょっと安くなったりするのだろうか?なるなら嬉しいなー。
_ [Seasar] S2Directory のユーザ管理のアイディア
忘れないうちに。。Tuigwaaのsomedaさんから汎用的なPrincipleとオブジェクトクラスを指定する設定を作って、そこでどんなオブジェクトクラスにも対応できるようにするというアイディアをいただきました。設定から動的にプロセス内でそのオブジェクトクラスのPOJOを生成して、それとPrincipleを混ぜるイメージです。これはかなり良さそうです。ディレクトリらしくユーザやグループに特化したこういった機能も重要ですね。
動的にPOJOを生成というのはディレクトリのオブジェクトクラスならどんなものでもできるので、応用してMapを投げるだけで対応するエントリを操作してしまうなんてこともできそうです。
2006-03-02 (Thu)
_ [Java][Seasar] S2StrutsQualified
S2StrutsとMayaaを使った時のファイル構成で考えた最後の「良さそうな案」を実現するために適当に作ってみました。ちなみに2個目の「今現在行っている構成」のやつもこれ使えばできます。無設定S2Struts用です。
使い方は次の通りです。
- s2-struts-qualified-0.x.x.jar をプロジェクトlibに追加
- s2struts.dicon を入れかえて、プロジェクトのパッケージ構成に併せて修正する。
- packageRule: パッケージからURIへの変換ルール
- 例: org.seasar.struts.examples.*.(action)
- splitUpperName: true の場合大文字で始まる文字列をパスに変換します。
- 例: category.HogeEditActionImpl -> /category/hoge/edit.do
- packageRule: パッケージからURIへの変換ルール
s2struts.diconを手動で修正する場合は以下の通りです。
<!--
<component name="zeroConfigActionRule" class="org.seasar.struts.config.rule.ZeroConfigActionRuleImpl"/>
-->
<component name="zeroConfigActionRule" class="jp.integ.struts.config.rule.QualifiedZeroConfigActionRuleImpl">
<property name="packageRule">"org.seasar.struts.examples.*.(action),org.seasar.struts.other.*.(action)"</property>
<property name="splitUpperName">true</property>
</component>
これでEclipseのパッケージエクスプローラがすっきりしました。
追記: 0.4でpackageRuleをカンマ切り(,)で複数指定できるようにしました。複数指定されている場合は、両方評価して短いURIを採用します。
- packageRule + クラス
- org.seasar.struts.examples.*.(action) + org.seasar.struts.examples.employee.action.EmployeeSearchAction
- 結果(splitUpperName = false): /employee/employeeSearch
- 結果(splitUpperName = true): /employee/employee/search
- org.seasar.struts.examples2.*.(action),org.seasar.struts.examples.*.(action) + org.seasar.struts.examples2.employee.action.EmployeeSearchAction
- 結果(splitUpperName = false): /employee/employeeSearch
- 結果(splitUpperName = true): /employee/employee/search
- org.seasar.struts.(examples2|examples).*.(action) + org.seasar.struts.examples2.employee.action.EmployeeSearchAction
- 結果(splitUpperName = false): /employee/employeeSearch
- 結果(splitUpperName = true): /employee/employee/search
すごい力ずく・・・。
2006-03-05 (Sun)
_ [Server] Hyper Estraier 1.1.3
1.1.3から無停止インデックス更新が出来るようになりました。ただし、MeCabが0.9以上が必要で0.9がまだRC9だったのでアップデートを控えてましたが、無停止インデックス更新がしたくて更新しました。試してみたところ、小さいとこだと更新中に検索投げても待たされるだけで大丈夫でしたが、大きいとこだとタイムアウトしてしまうのか、インデックス更新中と英語で表示されてしまうみたいです。
2006-03-12 (Sun)
_ [Server] Apache 2.2.x + mod_python
ハマりました。mod_python-3.2.8用パッチ from hereで解決。
mod_python入れたらTracが激早になりました。
2006-03-13 (Mon)
_ [Server][大学] LVM + ホスト1(CentOS 4.2) + Xen 3.0 + ゲスト1(CentOS 4.2) + ゲスト2(CentOS 4.2) + ...
タマラナイ。楽しすぎるーー。LVMこんなに便利だったとは・・・。これからは標準で使おう。
Xenも快適に動いてます。ゲスト上でネット繋がらなかったり、iptables動かなかったりいろいろあったけど動けば原因にも納得。次からはスムーズにXen環境構築できるようになりました。後輩の資料も大いに役立ちました、ありがとう。使ったXenのパッケージは、 xen-3.0-x86_32-rhel4.1.bin.tar でした。
LVMで論理ボリューム増殖 + スナップショットから復元の繰り返しでゲスト環境いっぱい作れます。これでテスト環境には困りません(´ー`)。
ハマり所の解決方法を紹介。
- xendomains がうまく動かない
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=171056の添付ファイルに差し替えればOK
- ネットに繋がらない (netfront driver)
/etc/init.d/xend に問題があるのか、起動時の start では vif が上手く追加されません。/etc/rc.local に下記の2行を加えて、起動スクリプトの最後でもう一度起動するようにします。
# for Xen vif /etc/init.d/xend restart
そして、ゲストOSの設定ファイルに下記のvifを追記。macアドレスはぶつからなければ何でもOK。複数やる場合はぶつからないように注意。
... vif = [ 'mac=aa:00:00:00:00:01, bridge=xenbr0' ] ...
これで起動時に /etc/xen/auto にゲストOSの設定ファイルのシンボリックリンクを張っとけば自動的にゲストOSが立ち上がります。
2006-03-14 (Tue)
_ [Server] LVMの考慮する必要がある点
LVM使った場合の問題点として、クラッシュした時のことがありました。LVMにしたパーティションの頭(BDRA内)に論理ボリュームのレイアウト表があって、これが壊れると復旧できなくなるっぽいです。通常LVMじゃない、且つ、RAID 5やRAID 10みたいにデータが分散されていない単一ディスクなどでは、壊れているディスクを無理やりマウントしたりするとディスク内の壊れてる箇所以外にあるデータは回収できますが、それが出来なくなるってことです。
というわけで、LVM便利だけど、確実なバックアップがされている環境でないと怖いかもしれない。ただそれは、RAID 5やRAID 10みたいにデータが分散されてるRAIDを使っている時のデータ回収についての怖さと同じではあるけど。
2006-03-17 (Fri)
_ [Seasar][大学][Work][雑記] 復活。
Seasarの関係者の皆様、メンテナンス当日で延期させちゃってゴメンナサイm(_ _)m。大学の研究室の皆様、送別会参加できずにゴメンナサイm(_ _)m。
一昨日の夜になるにつれ熱が上がり結局39.5度とか熱+放送禁止状態になってました。。どうやら先週姉と姪が掛かったやつを貰ってしまったようで、処方された薬も同じでした。病院の薬飲んで今はもう元気になりました。
というわけで、オープンソースカンファレンス2006 Tokyo/Springを午後から見に行きます。懇親会は病み上がりなので不参加で。
昨日はお仕事の打ち合わせもキャンセルしてしまい、結局いろんなとこにご迷惑を掛けてしまいました。体調管理もっと気を付けないといけないです。
追記: 懇親会は明日だったらしい。即効帰ってきて休んでたので、明日は不参加にしておこう。
2006-03-23 (Thu)
_ [Seasar] サーバ移行中
一部サービス落としてます。
追記: メール周りMailmanのlockファイルの更新頻度が困る。メールサーバ一時停止。
追記: 完了ー。不具合等ありましたらMLまでご連絡ください。新鯖になって空きメモリいっぱいです。また、帯域が約50倍早くなってたりしてます。
これでいろいろ安定すると嬉しいですね。
_ [Server] DNSのTTLを900秒に
JP DNSのTTLが900秒(15分)になったので、この値に併せてみます。昔は86400秒(1日)が標準っぽかったけど、どんどん小さくなってきますねー。最近は3600秒(1時間)をよく使ってましたが、今後は900秒(15分)で。
2006-03-24 (Fri)
_ [Seasar][Java] Mayaa 1.1.0-beta1リリース
手元にあるやつで1.0.2から差し替えてみましたが特に問題なさそうです。実行速度は体感で気持ち速くなったかも。
2006-03-26 (Sun)
_ [Server] 基盤
GForgeやSavane、どっちも動かすのが非常に面倒です。まともに安全を確保しつつ動かせてるのかな皆。Tracの場合は、開発が1企業ベースなのでドキュメントがわりとしっかりしてますが、やっぱしちょっと手間掛かるし、もっとどれもサクっと動けば嬉しいのにな。また、3つとも言語が違うのが良い棲み分けになってるのかもしれないです。TracがPython、GForgeがPHP、SavaneがPerl。それぞれmod_python、APC (or Zend Optimizer or etc...)、FastCGIなどで高速化しないとちょっとキツイです。
もっともサクっと動かせないのは単に僕の能力不足とも言うけどね(;´ー`)。
2006-03-28 (Tue)
_ [Server] NetworkSolutionsのDNS
なんか落ちてる。おかげでWork用のドメインが引けない。。。半年に1回ぐらいのペースでNetworkSolutionsのDNS落ちてる気がする。非常に困るので移動させよう。




_ someda [遅ればせながらですが、S2Directory よろしくお願いします。 Principal は前もお話していたときに出..]
_ jfut [はい、地道に進化させます。 今はまだ役立たないと思いますが・・・(;´ー`)。]