H2をWindowsサービスとして起動するときにODBC接続可能とする方法

H2はODBCをサポートするために、PostgresSQLのプロトコルに準じた
サーバーとして動作することができるのですが、
これをWindowsのサービスとして起動するときにも指定する方法が
わからなくて、ちょっと試行錯誤しました。

ODBC接続ができないと、つみきソフトウェアさんのCSEが使えないわけですよ!
へたれだから使い慣れたUIでないと不安になっちゃったりするわけですよ!



コンソールから起動するときにODBC接続できるようにする方法に
ついてはドキュメントに明記してあるのですが、
WindowsサービスとしてH2を起動しているときに、
これを設定する方法がドキュメントのどこにも書かれていない、、のかどうなのか
アレなのですが、少なくとも自分には見つけられなかったのです。


で、ソースを読んだり配置されたファイルを覗いてみたりして調べてみました。


まず、
org.h2.tools.Serverクラスのmain(String[] args)メソッドにより、
オプションとして-pgが付けばOKということが発覚。
引数が"-pg"だとpgStartがtrueなわけですよ。
んで、後ろの方でpgStartがtrueだったら
pgCreateServer(args)なわけですよ。


なにをいってるんでしょうね、僕は。
これだから日本語ができないといわれちゃうわけですよ。



そしてこれをどこで指定してやればいいかというと、
サービスとして起動する際のラッパーが
serviceフォルダにあり、この設定ファイルに記述します。


ファイル名は「wrapper.conf」
このファイルの32行目あたりに、


# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=org.h2.tools.Server
wrapper.app.parameter.2=-tcp
wrapper.app.parameter.3=-web


とあるので、ここに
wrapper.app.parameter.4=-pg


と追記してサービスを再起動してください。
これでキミもODBC経由でH2からゲットコネクション!!!
うぜぇ。自分で言っていながら。


あと、
基本的に他のパラメーターもここで指定できるっぽいです。