SCP NeoでConnection pooling

作っていたREST APIはローカル環境でテストしてOKっぽいのでDeployすることに。Deploy先はSCP(SAP Cloud Platform)。しかもNeo。Cloud Foundryじゃない方。とりあえず動作したけど毎回java.sql.DriverManager#getConnection()でコネクションを取得する。うーん、やはりここはConnection poolingにしないとカッコつかないよな~、ということで取り掛かる。

Poolingにはjavax.sql.DataSourceを使う。その設定はserver.xmlとweb.xmlに記述する。しかしEclipseの動的Webプロジェクトからエクポートしたwarファイルには、servler.xmlが入ってない。Neoで動かしても実行時例外。当たり前だ。

グーグル先生にいろいろ尋ねたところヒットしたのがこれ。

Configure the Database Connection Pool Size

なるほど。DeployするときのダイアログでDataSource名とプール数をJVM変数として指定するのね。ということはNeo内部にDataSourceを定義することろがあるんじゃね?と思ってCookipitのDeployしたJavaアプリケーションのページをみたら、あ~これだ。データソースバインディンだ。ここでDataSource名とコネクション情報を関連付けるのね。やってみたらビンゴ!

とりあえずプーリングしてるっぽい。しかしプーリングしていないときと、応答時間に差はない。おそらくネットワークのレイテンシ>>DB処理時間なのかな。負荷をかければ差がでるかもしれないけど、今回はそこまでやる予定はない。