0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DB接続時のTCPポート番号の調べ方[Java]

Last updated at Posted at 2025-10-22

はじめに

こんにちは。
プログラミング初心者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」であると確認できます。


記事は以上です。
最後までお読みいただき、ありがとうございました。

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?