きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

db2sqljcustomizeをantに組み込むための知識

com.ibm.db2.jcc.sqlj.Customizerクラスにmainメソッドがあるのでこれを使う。
antタスクを提供して欲しいくらいだ。


Rational Application Developerだと、SQLJサポートの追加とかがあって、
RADが持ってるプラグインでsqlj.jarなんてのを使ってやるのだが、
db2jcc4.jarとかにcom.ibm.db2.jcc.sqlj.CustomizerはいるのでRADなくても出来ます。
RAD付属のは嫌いだ。
sqljcustomize.xmlを作ってくるのだが、使用するjarとかがRADの中のを使ってる。
それを自分達の使用してるDB2バージョンのに置き換えるのが面倒臭い。
そして、変なところに変なファイルを作って使用しているのがさらにイケてない。
例えばdbの接続に関する情報とか、選んだパッケージとか。
何が言いたいかと言うと、自動化も考えるとそういう情報も含めてSVNにコミットしたいわけだ。


さて、
main(String[])への渡し方がこれまで理解(解析)出来てなかったんだが、
とりあえず上手く出来るようになったので、ここに書き残しておく。


大事なのは、-pathと.serの指定の仕方だ。
その他はご自由に。
いちおう{"-tracefile","C:\\tmp\\trace.log","-tracelevel","TRACE_ALL"}みたいにオプションと値を分けて書く。
url、user、passwordは必須だろう。bindoptionsとかも使う。
オイラはpkgvesionとrootpkgnameも使う。


オプションの-pathで、SQLJJavaSourceまでのパスを指定する。
RAD使ってない人には意味不明だろうな。
.serの存在するソースフォルダを指定するって意味。
そして、.serの指定の箇所は、パッケージ名を含む.serを指定する。
sample.sqlj.Foo_SJProfile0.serって感じ。


終わったらいちおう.serの内容が更新されているかdb2sqljprintで見た方が良い。
また、自動ビルドで.serが再度作られてしまわないように気を付けないといけない。
整合性トークンとかあるんでね。