📚
DB接続時のTCPポート番号の調べ方[Java]
はじめに
こんにちは。
プログラミング初心者wakinozaと申します。
Java勉強中に調べたことを記事にまとめています。
十分気をつけて執筆していますが、なにぶん初心者が書いた記事なので、理解が浅い点などあるかと思います。
間違い等あれば、指摘いただけると助かります。
記事を参考にされる方は、初心者の記事であることを念頭において、お読みいただけると幸いです。
記事のテーマ
- SQLの練習のため、H2database(以下、H2)の設定を行っていたのですが、/META-INF/context.xmlのResource要素のurl属性のTCPポート番号がわからずに苦労しました
- TCPポート番号を調べる方法が見つかったので、備忘録として記録しておきます
本文
Tomcatなどのサーバでデータソースを利用するためには、DBの接続が必要です。
DB接続を記述する方法はいくつかありますが、設定を一元管理でき、アプリケーションコードから分離できるcontext.xmlに記載する方法が一般的です。
具体的には、META-INFディレクトリにcontext.xmlを作成し、以下の内容を記載します。
<?xml version="1.0" encoding="UTF-8" ?>
<Context>
<Resource
name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.h2.Driver"
url="jdbc:h2:tcp://localhost:9092/~/test"
username="name"
password="password"
/>
</Context>
接続モードに応じて、Resource要素のurl属性の指定方法が異なります。
接続モードの1つであるサーバモードで起動すると、TCPでWebアプリケーションからDBに接続します。
サーバモードは、主に本番環境などで利用される接続モードで、url属性の指定方法は以下の通りです。
url="jdbc:h2:tcp://<ホスト名>:<ポート番号>/<データベースの絶対パスまたはエイリアス>"
上の通り、接続で利用されるTCPポート番号が必要です。
サーバモードで起動した際のデフォルトは、TCPポート番号が9092、Webコンソールが8082です。
TCPポート番号を確認したい場合は、H2のJARファイルをコマンドラインから起動し、起動時のメッセージ出力からTCPポート番号を確認できます。
手順は以下の通りです。
- H2をインストールしたディレクトリに移動し、以下のコマンドを実行
java -jar <H2のJARファイル名> -web -tcp
- 起動時のメッセージを確認
サーバを起動すると、コマンドラインに以下のようなメッセージが表示され、TCPサーバがどのポートで待機しているかが明示されます。
TCP server started, URL: tcp://<IPアドレス>:9092
...
Web server running at http://<IPアドレス>:8082 (only local connections)
...
上の例では、TCP接続用のポート番号は「9092」であると確認できます。
記事は以上です。
最後までお読みいただき、ありがとうございました。
Discussion