LoginSignup
0

Liberty といろんな DB でDataSourceをためす

Last updated at Posted at 2023-05-23

目的

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に指定したものと置き換えます。

image.png

Simple db access test をクリックすると TABLEの作成とデータ挿入が実行されます。

image.png

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の環境を構築をしてテストをすることができました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0