Tomcat Connection Pool にCData JDBC Driver を設定してPostgreSQL のデータに連携

Tomcat Connection Pool からPostgreSQL に連携接続。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-09-12

この記事で実現できるPostgreSQL 連携のシナリオ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。



CData JDBC Drivers は標準JDBC インターフェースをサポートし、JVM 上で実行されるWeb アプリケーションに統合します。この記事では、Tomcat のConnection Pool からPostgreSQL に接続する方法について詳しく説明します。

Tomcat のConnection Pool 経由でPostgreSQL のデータに接続

  1. CData JAR およびCData .lic ファイルを$CATALINA_HOME/lib にコピーします。CData JAR はインストールディレクトリの[lib]サブフォルダ内にあります。
  2. コンテキストにリソースの定義を追加します:

    PostgreSQL への接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。

    パスワード方式によるSSH 接続

    パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。

    • User: PostgreSQL のユーザ
    • Password: PostgreSQL のパスワード
    • Database: PostgreSQL の接続先データベース
    • Server: PostgreSQL のサーバー
    • Port: PostgreSQL のポート
    • UserSSH: "true"
    • SSHAuthMode: "Password"
    • SSHPort: SSH のポート
    • SSHServer: SSH サーバー
    • SSHUser: SSH ユーザー
    • SSHPassword: SSH パスワード

    接続文字列形式では以下のようになります。

    User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;

    公開鍵認証方式によるSSH 接続

    公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。

    • User: PostgreSQL のユーザ
    • Password: PostgreSQL のパスワード
    • Database: PostgreSQL の接続先データベース
    • Server: PostgreSQL のサーバー
    • Port: PostgreSQL のポート
    • UserSSH: "true"
    • SSHAuthMode: "Public_Key"
    • SSHClientCertType: キーストアの種類
    • SSHPort: SSH のポート
    • SSHServer: SSH サーバー
    • SSHUser: SSH ユーザー
    • SSHClientCert: 秘密鍵ファイルのパス

    接続文字列形式では以下のようになります。

    User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem; <Resource name="jdbc/postgresql" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.postgresql.PostgreSQLDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" url="jdbc:postgresql:User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;" maxActive="20" maxIdle="10" maxWait="-1" />

    一つのアプリケーションからPostgreSQL へのアクセスを許可するには、上のコードをアプリケーションのMETA-INF ディレクトリにあるcontext.xml に追加します。

    共有リソースの設定には、上のコードを$CATALINA_BASE/conf 内にあるcontext.xml に追加します。共有リソースの設定は、すべてのアプリケーションにSalesforce への接続を提供します。

  3. アプリケーションのweb.xml にリソースへの参照を追加します。 PostgreSQL のデータ JSP jdbc/PostgreSQL javax.sql.DataSource コンテナ
  4. Connection pool からの接続の初期化: Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/PostgreSQL"); Connection conn = ds.getConnection();

そのほかのTomcat へのデータ連携ドライバーの統合

上記の手順では、簡単なコネクションプーリングのシナリオでPostgreSQL に接続する方法を説明しました。ほかの使用例や情報については、 Tomcat 製品ドキュメントの 「JNDI Datasource How-To」をご覧ください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。