2008年8月19日火曜日

Xenコマンド備忘録



たまにしか使わないので良く忘れます。



・ドメインの起動( -c でコンソール接続)
xm create [ドメイン名]
xm create -c [ドメイン名]

・コンソールに接続
xm colsole [ドメイン名]

・稼動状況を表示
xm top

・ドメインのリスト表示
xm list

・終了
xm shutdown [ドメイン名]

・強制終了
xm destroy [ドメイン名]





2008年7月9日水曜日

IE6でJavascriptがうまく動かないとき






<a href="javascript:void(0);" onclick="javascript:location.href = 'http://www.example.com';">移動だ!</a>


上記のような、a タグの href 属性に javascript:void(0); をセットして


onclick 属性で、javascript処理をしようとしたときに、FireFoxや、IE7では、特に問題にならなかったのですが


IE6は、上記では動きませんでした。




<a href="javascript:void(0);" onclick="javascript:location.href = 'http://www.example.com';return false;">移動だ!</a>



解決策としては、onclick 属性の最後に return false; をつければOKです。(仕様?)


他のイベントハンドラーの場合も多分必要です。


文法的に間違ってないのに a タグに設定したJavascriptが、IE6で動かないって時は、一度試してみてください。





2008年6月12日木曜日

DELL サーバ PowerEdge SC1435 メモリー増強



Apacer製のメモリーを買ったがメモリーが認識せず撃沈


メーカーに問い合わせると、


『DELL PowerEdgeSC1435は、PC2-5300 ECC Registered.のメモリに対応していますが、


SPDが通常とは異なっているため、認識できるメモリに制限があります。』


とのこと。。。とりあえず、返品交換に対応してくれるとのことなので一安心。





買ったやつ


Apacer DDR2 667-REG2GB


メモリ型番: AP2048ASRE667


↓


SC1435対応


メモリ型番: AP4096DLSC1435 (P/N: 75.A72A6.G03)





商品を買うときにメモリーの型番まではさすがにチェックするの難しいですね。


そこまで詳しく商品説明している店舗もあんまりないので


購入時には、販売店やメーカーにあらかじめ詳しく対応状況を


確認しておくことをお勧めします。





2008年6月1日日曜日

MySQL パフォーマンス



my.cnf




skip-name-resolve



接続元のIPアドレスから逆引きの名前解決をOFFにする。


アプリケーションからMySQLに接続する際に


接続プールをしていない場合は、結構な効果があるとおもう。





2008年5月22日木曜日

サーバの移転



ここ1ヶ月半くらいまともに日記もかけないほど


毎日仕事が忙しかった。


いやーほんというと、ちょっと位は書く時間はあったけど


書く内容を整理する時間が無かったというのが本音かな。


走り書きのメモが乱雑するデスクまわりをそろそろ片付けようかなと


思っているので、ぼちぼち日記も再開したい。


ここ1ヶ月半くらいは、既存のサーバの移転作業をしてました。


いままで、レンタルサーバでサーバ会社に設置作業などをお願いしてましたが


ハウジングのラックを借りて自前でサーバマシンを用意することになりました。


自社内に、開発用のテストサーバなんかは、いままでも自前で用意してきましたが


運用用のサーバを用意するのは初めてで、なんとなくで設定していることが多々あり


いざちゃんとやるとなると右往左往。。。


なかなかそのあたりの上手な手順なんかを公開しているドキュメントって


ないですよねぇ。


個人の自宅サーバなんてのはよくあるんですが、複数台構成(今回は8台)


各サーバごとのパフォーマンス設定(これがほんとに難しい)


なんかは、これといっていいのがわからない。


サーバのOSインストールからの立ち上げ作業のチュートリアルなんか


誰か公開してくれるとうれしいのですが。。。それって、企業秘密よねほとんど。


あと、いらないアプリケーションの停止ってのが難しい。


通常Webサーバとか、DBサーバに使われるアプリケーションのことはわかるけど


裏方で仕事しているアプリケーションまではよくわからないのが多い。


好き勝手に止めると、ネットワークがつながらなくなったり


なんかよくわからないが、いろいろパフォーマンスがおかしくなったり。


泣く泣く、何の仕事をしているかわからず念のため立ち上げているアプリがあります(情けない)


そのあたりも、今後もっと勉強していかないと、もっとシビアなパフォーマンスを要求されるようになると


たちうちできなくなるなぁ~っと、。。。


まだまだ、未熟な毎日です。





2008年4月3日木曜日

jakarta-poi でExcelファイルを操作したときにはまったこと



3年くらい前に作ったプログラムの修正を今になってする


ぐうたらな話です。



poi-2.5.1-final-20040804.jar


POIを利用して、Excelファイルを読み取って、DBにインポートする


プログラムです。


開発やテストをしているときは、特に問題がなかったのですが


運用しているうちに、たまにセルのデータを読み込むと、


文字の後に空白(スペース)がくっつく現象が起こりました。


すべてにスペースがつくわけではないし、


スペースがつかないセルをコピーして上書きすると


その現象が解消されます。


再現性はあり、一度だめになったExcelデータは何度やってもだめで


同じようになります。


これは、Excelのデータ形式と、POIの読み取りの間でなんかあるなぁ~と思って


いろいろネットで調べていると


http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31297&forum=12&4


どうも、ふりがな機能というのが悪さをしているようなことでした。(バグではないのか!?)


ん~、手っ取り早くなんとかならないかなぁ~ということで、バージョンアップ!!



poi-3.0.2-FINAL-20080204.jar


を使ってみることに。


ものの見事に、直っていました。(手抜きです。笑)


(※私の状況が改善されただけですので、直る保証はありません。)


特に、バージョン間の互換も問題なさそうだったので、そのまま使うことに。





とりあえず、同じ状況の人のために備忘録です。





2008年4月2日水曜日

validator-rule.xml の修正



struts1.2.4 -> struts1.2.9 にアップデートした際に


入力規制がことごとく、Exceptionを吐いていた。



validator.ValidatorForm (ValidatorForm.java:112) - org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)
org.apache.commons.validator.ValidatorException: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)
at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:627)
at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:557)
at org.apache.commons.validator.Field.validateForRule(Field.java:827)
at org.apache.commons.validator.Field.validate(Field.java:906)
at org.apache.commons.validator.Form.validate(Form.java:174)
at org.apache.commons.validator.Validator.validate(Validator.java:367)
at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:110)
at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:950)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:207)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)






仕様は、そんなに変わってないだろーと、安易に考えていたのが間違い!!


設定ファイルの修正がいるとは、露知らず、あたふた。。。


どうも、struts1.2.7 くらいからそうなってたみたいね。


struts1.2.4 validator-rule.xml



<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>




struts1.2.9 validator-rule.xml



<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator, <---- ここ追加
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>



org.apache.struts.validator.FieldChecks の引数の個数が


5→6個に変更って知りませんでした。。。


他の、validator もすべて、methodParamsの修正が必要です。


以後、バージョンアップは気をつけます。