2009年9月28日月曜日

EJBの仕組み概要

EJBって聞いたことはあるけどよく知らなかった仕組みなんで、
理解しようとしてみた。

初心者には、このページがわかりやすかった。

JBossで学ぶEJB入門

第二回までは、EJBの一般論が書かれているので、JBossでなくても
通用する話でした。

2009年9月19日土曜日

OracleでNotNull制約を解除する

先日、Oracleのテーブル定義でNotNull制約を解除するAlter文ってどう書くんだろう
ということではまってしまった。

ALTER TABLE XXXXXX MODIFY (YYYYYY VARchar(20))


とやってみてもNotNull制約は解除されない。正しくは、下記のように書くんですね。
ALTER TABLE XXXXXX MODIFY (YYYYYY VARchar(20) NULL)

2009年9月16日水曜日

DelphiアプリケーションのWindowsのダンプファイルの調査のしかた

Windowsファイルが出力するダンプファイルなんで今まで遠ざけていたのだけど、
ちょっとチャレンジしてみた。

まず、必要なものは、windbgというマイクロソフトの無料のツール
これは、下記から説明およびダウンロードができる。

http://www.microsoft.com/japan/whdc/devtools/debugging/debugstart.mspx

次にDelphiのアプリケーションからは、生成されないマップ情報を生成する必要が
あるのだけど、それは、下記のDelphiのmapファイルをdbgファイルに
変換してくれる便利なツール「map2dbg」があるようです。

参考になったサイトは下記のサイト(英文)です。
http://www.sandon.it/?q=node/45

これらを踏まえた上で、下記のサイトを見てwindbgを使ってみると、
スタックとレースを見ることが出来るという部分までが理解できた。

クラッシュダンプを読んでその原因を究明する

いろいろ見てみると、
STACK_TEXT:

という部分あたりに、関数の呼び出し履歴みたいなのが表示されるようです。

現実問題、これがわかるだけでも結構でかいなぁ....

昔、この本を読もうとして、ちょっとやめたのだけど、やっぱり読んでみようかな
とまた思い始めてみる。
Windowsダンプの極意 エラーが発生したら、まずダンプ解析! (大型本)





2009年9月15日火曜日

XMLDocumentをStringにする

XML処理のデバッグなどをしていると、
XMLDocumentをStringにしてみてみたいなぁと思い、それをする方法を調べていたら
下記のページにたどり着いた。

Java Technology & XML - Re: how to transform a dom object to String?

これをほんのちょっとだけ、アレンジして下記のようなmethodを作ったところ
イメージどおりの動作をしてくれました。

 private static String getStringFromDocument(Document doc){
   String str=null;
   try {
     TransformerFactory tfac = TransformerFactory.newInstance();
     StringWriter strWtr = new StringWriter();
     StreamResult strResult = new StreamResult(strWtr);
     Transformer trans = tfac.newTransformer();
     trans.transform(new DOMSource(doc.getDocumentElement()), strResult);
     str =strResult.getWriter().toString();  } 
   catch (TransformerException te) {
    te.printStackTrace();
   }
   return str;
 }
 

これで、どこがおかしかったのかを突き止めることが出来ました。

2009年9月5日土曜日

Google App Engine SDK 1.2.5リリース

Google App Engineのブログを見ていると新バージョンが出たというニュースが書かれていた。

App Engine SDK 1.2.5 released for Python and Java, now with XMPP support 

今回の目玉新機能としては、

XMPP Support

ということだそうです。
XMPPなんてよく知らなかったけど、GoogleTalkなんかでも利用されている
メッセンジャー系の仕様みたいです。

XMPPとは 【eXtensible Messaging and Presence Protocol】

また、今回は初のPythonとJavagの同時リリースということみたいです。
いままでJavaは遅れてのリリースだったのでPythonだけしかない機能が結構あったけど、
これはうれしい知らせです。

また、いつの間にかGoogle Plugin for Eclipse がEclipse 3.5 (Galileo)に対応したようなので
eclipseも3.5に更新しておきました。

3.5ではsoftware updateのメニュー構成が若干変わっていて少々戸惑いました。

インストール方法は、下記のページに書かれています。
Installing the Google Plugin for Eclipse