目的
Libertyと、Db2, MySQL, Derbyで環境を構築してDataSourceをテストします。
Gitレポジトリ
用意したGitレポジトリをクローンします。
git clone https://github.com/pdprof/db-connections
cd db-connections/derby-docker/
DBイメージのビルド、Libertyイメージのビルド
Libertyと、Db2, MySQL, Derbyのイメージをビルドします。localhost 以外の docker を動かしているホストのIPアドレスをACCESS_HOSTに指定します。
export ACCESS_HOST=172.17.0.1
# export ACCESS_HOST=`hostname` # hostnameコマンドで返す値でアクセスできる場合
./setup-docker.sh
MySQLの起動
MySQL以外にもDb2がありますが、ここではMySQLを起動します。今回あらたに用意したのがMySQLだからです。DerbyはLibertyのプロセス内で動作するので、Dbを別に起動する必要はありません。
./mysql-start.sh
# ./db2-start.sh # db2を起動する場合
MySQLにアクセスするLibertyの起動
MySQLにアクセスするLibertyを起動します。
./ds-mysql-start.sh
# ./ds-db2-start.sh # Db2にアクセスする場合
# ./ds-derby-start.sh # Derbyにアクセスする場合
アプリケーションにアクセスして動作確認
http://localhost:9080/db.connections/
にアクセスすると以下画面が確認できます。localhost部分はACCESS_HOSTに指定したものと置き換えます。
Simple db access test をクリックすると TABLEの作成とデータ挿入が実行されます。
Insert, Update, Delete ができるようになっているので、フォームに値を入力してボタンをクリックして動作を確認します。
トラブルシューティング
接続がうまくいかない場合は、/config/server.xml で指定したホスト名(IPアドレス)が問題ないか、DBが動作しているか確認します。DBは
docker logs -f mysqldb # ログ確認
docker restart mysqldb # 再起動
docker inspect mysqldb # container 確認
docker exec -it mysqldb bash # Container内状況確認
など試してみましょう。
まとめ
DBの環境を構築をしてテストをすることができました。