この章では、asadmin コマンド行ユーティリティーを使用して、Sun GlassFishTM Enterprise Server v3 環境でデータベース接続タスクを実行する手順について説明します。
ここでは、次のテーマを取り上げます。
これらのタスクを管理コンソールを使用して実行する場合の手順は、管理コンソールのオンラインヘルプで説明します。
データベース管理システム (DBMS) は、データを格納、編成、および取得するための機能を提供します。多くの場合、データベース内の情報は持続的なデータとして表現されますが、これはデータがディスク上に保存され、アプリケーションプロセスが終了したあとも存在するためです。ほとんどのビジネスアプリケーションは、データをリレーショナルデータベースに格納します。アプリケーションは JDBC (Java Database Connectivity) API を使用して、データベース情報にアクセスできます。
データベース接続の主な要素は次のとおりです。
「データベース」。エンタープライズのデータが格納されるリポジトリです。Java EE アプリケーションは、JDBC API を介してリレーショナルデータベースにアクセスします。管理の手順については、「データベースの設定」を参照してください。
「JDBC 接続プール」。特定のデータベースのための再利用可能な接続のグループです。管理の手順については、「JDBC 接続プールの管理」を参照してください。
「JDBC リソース」 (データソース)。データベースに接続する手段をアプリケーションに提供します。JDBC リソースを作成するには、関連した接続プールを指定します。複数の JDBC リソースが 1 つの接続プールを指定することもできます。JDBC リソースは、Java Naming Directory Interface (JNDI) 名によって識別されます。管理の手順については、「JDBC リソースの管理」を参照してください。
「JDBC ドライバ」。データベースドライバは、Java アプリケーションがデータベース接続 API とやり取りを行うためのソフトウェアコンポーネントです。データベースごとに専用のドライバが必要です。管理の手順については、「JDBC ドライバの統合」を参照してください。
実行時には、アプリケーションがデータベースに接続するときに次の一連の処理が発生します。
アプリケーションは JNDI API を通して呼び出しを行い、データベースに関連付けられた JDBC リソースを取得します。
リソースの JNDI 名を使用して、ネームサービスとディレクトリサービスが JDBC リソースを検索します。JDBC リソースはそれぞれ接続プールを指定します。
アプリケーションは JDBC リソースを使用してデータベース接続を取得します。
Enterprise Server は、データベースに対応する接続プールから物理接続を取得します。プールは、データベース名 (URL)、ユーザー名、パスワードなどの接続属性を定義します。
データベース接続が確立されると、アプリケーションはデータベースに対してデータの読み取り、変更、および追加を実行できるようになります。
アプリケーションは JDBC API を呼び出すことにより、データベースにアクセスします。JDBC ドライバはアプリケーションの JDBC 呼び出しをデータベースサーバーのプロトコルに変換します。
データベースへのアクセスが完了すると、アプリケーションは接続を閉じ、接続を接続プールに戻します。
多くのアプリケーションは、リレーショナルデータベースを使用してデータを保存、編成、および取得します。アプリケーションは、JDBC (JavaTM Database Connectivity) API を通してリレーショナルデータベースにアクセスします。
ここでは、次のテーマを取り上げます。
サポートされたデータベース製品をインストールします。
Enterprise Server でサポートされているデータベース製品の最新のリストを確認するには、『Sun GlassFish Enterprise Server v3 リリースノート』を参照してください。
データベース製品用のサポートされている JDBC ドライバをインストールします。
Enterprise Server でサポートされているドライバのリストについては、「JDBC ドライバに固有の構成」を参照してください。
ドメイン管理サーバー (DAS) が JDBC ドライバの JAR ファイルにアクセスできるようにします。
「JDBC ドライバの統合」を参照してください。
データベースを作成します。
通常はアプリケーションプロバイダが、データベースを作成しデータを生成するためのスクリプトを提供しています。
Enterprise Server には、Java DB (以前の名称は Derby) の実装が含まれていますが、JDBC に準拠した任意のデータベースも使用できます。データベースは Enterprise Server の起動時に自動では起動されません。したがって、データベースを必要とするアプリケーションを使用する場合は、start-database サブコマンドを使用して Java DB を手動で起動する必要があります。
start-database(1) サブコマンドを使用して、データベースを起動します。
データベースサーバーの起動時、またはクライアントがデータベースサーバーに正常に接続したときに、--dbhome オプションで指定された場所に次のファイルが作成されます。
derby.log ファイルには、データベースサーバープロセスのログが、標準出力および標準エラー情報とともに保存されます。
データベースのファイルには、使用するスキーマ (たとえば、データベース表) が保存されます。
この例では、host1 というホストのポート 5001 で Derby を起動します。
asadmin> start-database --dbhost host1 --dbport 5001 --terse=true Starting database in the background. Log redirected to /opt/SUNWappserver/databases/javadb.log. Command start-database executed successfully. |
コマンド行に asadmin help start-database と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
ローカルの stop-database サブコマンドを使用して、指定したポートの Java DB を停止します。同一のホストのほかのポートで、複数のデータベースサーバープロセスが動作している場合があります。
必要に応じて、データベースを停止することをユーザーに通知します。
stop-database(1) サブコマンドを使用して、データベースを停止します。
この例では、localhost のポート 5001 で動作している Java DB を停止します。
asadmin> stop-database --dbhost=localhost --dbport=5001 onnection obtained for host: localhost, port number 5001. Apache Derby Network Server - 10.2.2.1 - (538595) shutdown at 2008-10-17 23:34:2 7.218 GMT Command stop-database executed successfully. |
ネットワーク間を移動するノートパソコンでは、データベースのシャットダウンに関して問題が発生する場合があります。Java DB を起動したあとに IP アドレスを変更した場合は、--dbhost 引数を指定しなければ Java DB を停止できません。たとえば、asadmin start-database --dbhost = 0.0.0.0 を実行したあと、Ethernet を切断してワイヤレス接続に切り替えた場合、データベースを停止するには次のようなコマンドを実行する必要があります。
asadmin stop-database --dbhost localhost
コマンド行に asadmin help stop-database と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
Enterprise Server で利用できる Java DB の構成には、Java DB の使用に役立つスクリプトが含まれます。次のスクリプトが、as-install/javadb/frameworks/NetworkServer/bin ディレクトリに格納されています。
ネットワークサーバーを起動するスクリプト
ネットワークサーバーを停止するスクリプト
対話式の JDBC スクリプト作成ツール
データベースのすべてまたは一部の DDL を表示するスクリプト
Java DB 環境に関するバージョン情報を表示するスクリプト
NetworkServerControl API でコマンドを実行するスクリプト
JAVA_HOME 環境変数が JDK のインストールディレクトリを指定していることを確認します。
as-install/derby ディレクトリをポイントするように JAVADB_HOME 環境変数を設定します。
これらのユーティリティーの詳細については、次のドキュメントを参照してください。
『Derby Server and Administration Guide』 (http://db.apache.org/derby/docs/10.1/adminguide/)
データベース接続を確立したら、Enterprise Server アプリケーションのアクセス設定を実行できます。データベースにアクセスする前に、アプリケーションは接続を取得する必要があります。
ここでは、次のテーマを取り上げます。
「JDBC 接続プール」は、特定のデータベースのための再利用可能な接続のグループです。新しい物理接続の作成には時間がかかるため、Enterprise Server は使用可能な接続のプールを維持します。アプリケーションが接続を要求すると、プールから 1 つの接続が取得されます。アプリケーションが接続を閉じると、接続はプールに返されます。
JDBC リソースは、リソースが関連付けられている接続プールを指定することで作成されます。複数の JDBC リソースが 1 つの接続プールを指定することもできます。接続プールのプロパティーは、データベースベンダーによっては異なる場合もあります。共通のプロパティーには、データベースの名前 (URL)、ユーザー名、パスワードなどがあります。
次のタスクと情報を使用して、JDBC 接続プールを管理します。
指定した JDBC 接続プール名で新しい JDBC 接続プールを登録するには、リモートモードで create-jdbc-connection-pool サブコマンドを使用します。。JDBC 接続プールまたはコネクタ接続プールは、認証を使用して作成できます。asadmin ユーティリティーでユーザー、パスワード、またはその他の接続情報を指定するサブコマンドオプションを使用するか、XML 記述子ファイルで接続情報を指定します。
各データベースには接続プールが 1 つ必要です。アプリケーションによっては、複数の接続プールが必要な場合もあります。接続プールを構築するときに、JDBC ドライバとデータベースベンダーに固有のデータが必要となります。次に示す固有データの例の一部は、「JDBC ドライバに固有の構成」にも示してあります。
データベースベンダー名
javax.sql.DataSource (ローカルトランザクションのみ) や javax.sql.XADataSource (グローバルトランザクション) などのリソースタイプ
データソースクラス名
データベース名 (URL)、ユーザー名、およびパスワードなどの必要なプロパティー
JDBC 接続プールの作成は動的なイベントであり、サーバーの再起動は必要ありません。ただし、パラメータの中には、サーバーの再起動を求めるものもあります。「サーバーの再起動が必要な構成の変更」を参照してください。
接続プールを作成する前に、データベースとデータベースに関連する JDBC ドライバをインストールして統合しておく必要があります。手順については、「データベースの設定」を参照してください。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
create-jdbc-connection-pool(1) サブコマンドを使用して、JDBC 接続プールを作成します。
(省略可能) 必要な場合は、サーバーを再起動します。
一部のパラメータはサーバーの再起動を必要とします。「サーバーの再起動が必要な構成の変更」を参照してください。
この例では、sample_derby_pool という名前の接続プールを localhost に作成します。
asadmin> create-jdbc-connection-pool --datasourceclassname org.apache.derby.jdbc.ClientDataSource --restype javax.sql.XADataSource --property portNumber=1527:password=APP:user=APP:serverName= localhost:databaseName=sun-appserv-samples:connectionAttribut es=\;create\\=true sample_derby_pool Command create-jdbc-connection-pool executed successfully. |
コマンド行に asadmin help create-jdbc-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
既存の JDBC 接続プールをすべて表示するには、リモートモードで list-jdbc-connection-pools サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-jdbc-connection-pools(1) サブコマンドを使用して、JDBC 接続プールを一覧表示します。
この例では、localhost 上の JDBC 接続プールを一覧表示します。
asadmin> list-jdbc-connection-pools sample_derby_pool2 poolA __TimerPool DerbyPool sample_derby_pool Command list-jdbc-connection-pools executed successfully. |
コマンド行に asadmin help list-jdbc-connection-pools と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
接続プールが使用可能かどうかをテストするには、リモートモードで ping-connection-pool サブコマンドを使用します。たとえば、あとで配備する予定のアプリケーション用に新しい JDBC 接続プールを作成した場合、そのアプリケーションを配備する前に、このコマンドを使用して JDBC プールをテストすることができます。ping を実行すると、プールがまだ作成されていない場合は作成を強制されます。
接続プールと通信する前に、認証を使用して接続プールを作成し、サーバーまたはデータベースを実行しておく必要があります。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
ping-connection-pool(1) サブコマンドを使用して、接続プールに ping を実行します。
この例では、DerbyPool 接続プールが使用可能かどうかを確認します。
asadmin> ping-connection-pool DerbyPool Command ping-connection-pool executed successfully |
コマンド行に asadmin help ping-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
指定した接続プールで確立されたすべての接続を再初期化するには、リモートモードで flush-connection-pool を使用します。JDBC 接続プールまたはコネクタ接続プールは、初期状態にリセットされます。既存の動作中の接続はすべて破棄され、これらの接続に関連付けられているトランザクションは失われます。続いてプールの初期接続が再作成され、プールは通常プールサイズに復元されます。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
flush-connection-pool(1) サブコマンドを使用して、接続プールをリセットします。
この例では、__TimerPool という名前の JDBC 接続プールを通常プールサイズにリセットします。
asadmin> flush-connection-pool __TimerPool Command flush-connection-pool executed successfully. |
コマンド行に asadmin help flush-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
get および set サブコマンドを使用して、JDBC 接続プールのプロパティーの値を表示および変更します。
list-jdbc-connection-pools(1) サブコマンドを使用して、JDBC 接続プールを一覧表示します。
get サブコマンドを使用して、JDBC 接続プールの属性を表示します。
次に例を示します。
asadmin get resources.jdbc-connection-pool.DerbyPool.property |
set サブコマンドを使用して、JDBC 接続プールの属性を設定します。
次に例を示します。
asadmin set resources.jdbc-connection-pool.DerbyPool.steady-pool-size=9 |
(省略可能) 必要な場合は、サーバーを再起動します。
一部のパラメータはサーバーの再起動を必要とします。「サーバーの再起動が必要な構成の変更」を参照してください。
既存の JDBC 接続プールを削除するには、リモートモードで delete-jdbc-connection-pool サブコマンドを使用します。JDBC 接続プールの削除は動的なイベントであり、サーバーの再起動は必要ありません。
JDBC 接続プールを削除する前に、リソースのすべての関連付けを削除する必要があります。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-jdbc-connection-pools(1) サブコマンドを使用して、JDBC 接続プールを一覧表示します。
必要に応じて、JDBC 接続プールを削除することをユーザーに通知します。
delete-jdbc-connection-pool(1) サブコマンドを使用して、接続プールを削除します。
この例では、DerbyPool という名前の JDBC 接続プールを削除します。
asadmin> delete-jdbc-connection-pool jdbc/DerbyPool Command delete-jdbc-connection-pool executed successfully. |
コマンド行に asadmin help delete-jdbc-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
「JDBC リソース」はデータソースとも呼ばれ、アプリケーションがデータベースに接続する手段を提供します。一般的には、ドメインに配備されたアプリケーションがアクセスするデータベースごとに 1 つの JDBC リソースを作成します。1 つのデータベースに複数の JDBC リソースを指定することもできます。
JDBC リソースは、リソースを関連付ける接続プールを指定することで作成されます。一意の Java Naming and Directory Interface (JNDI) 名を使用して、リソースを識別します。たとえば、給与データベースのリソースには、java:comp/env/jdbc/payrolldb のような JNDI 名を付けることができます。
次のタスクと情報を使用して、JDBC リソースを管理します。
JDBC リソースを作成するには、リモートモードで create-jdbc-resource サブコマンドを使用します。JDBC リソースの作成は動的なイベントであり、サーバーの再起動は必要ありません。
すべての JNDI 名は java:comp/env サブコンテキストにあるので、管理コンソール で JDBC リソ スの JNDI を指定するときは、jdbc/name の形式だけを使用します。たとえば、先に述べた給与データベースは、jdbc/payrolldb のように指定できます。
JDBC リソースを作成する前に、JDBC 接続プールを作成する必要があります。手順については、「JDBC 接続プールを作成する」を参照してください。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
create-jdbc-resource(1) サブコマンドを使用して、JDBC リソースを作成します。
このサブコマンドのプロパティーについては、このマニュアルページに記載されています。
必要に応じて、新しいリソースを作成したことをユーザーに通知します。
この例では、DerbyPool という名前の JDBC リソースを作成します。
asadmin> create-jdbc-resource --connectionpoolid DerbyPool jdbc/DerbyPool Command create-jdbc-resource executed successfully. |
コマンド行に asadmin help create-jdbc-resource と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
既存の JDBC リソースを一覧表示するには、リモートモードで list-jdbc-resources サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-jdbc-resources(1) サブコマンドを使用して、JDBC リソースを一覧表示します。
この例では、localhost の JDBC リソースを一覧表示します。
asadmin> list-jdbc-resources jdbc/__TimerPool jdbc/DerbyPool jdbc/__default jdbc1 Command list-jdbc-resources executed successfully. |
コマンド行に asadmin help list-jdbc-resources と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
set サブコマンドを使用して、JDBC リソースを有効または無効にできます。JDBC リソースはドット表記名で識別されます。
list-jdbc-resources(1) サブコマンドを使用して、JDBC リソースを一覧表示します。
set(1) サブコマンドを使用して、指定した JDBC リソースの値を変更します。
次に例を示します。
この例では、res1 の enabled の設定を false に変更します。
asadmin>set resources.jdbc-resource.res1.enabled=false |
既存の JDBC リソースを削除するには、リモートモードで delete-jdbc-resource サブコマンドを使用します。JDBC リソースの削除は動的なイベントであり、サーバーの再起動は必要ありません。
JDBC リソースを削除する前に、削除するリソースのすべての関連付けを削除する必要があります。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-jdbc-resources(1) サブコマンドを使用して、JDBC リソースを一覧表示します。
必要に応じて、JDBC リソースを削除することをユーザーに通知します。
delete-jdbc-resource(1) サブコマンドを使用して、JDBC リソースを削除します。
この例では、DerbyPool という名前の JDBC リソースを削除します。
asadmin> delete-jdbc-resource jdbc/DerbyPool Command delete-jdbc-resource executed successfully. |
コマンド行に asadmin help delete-jdbc-resource と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
接続プールとリソースを設定したあと、次のいずれかの方法で JDBC ドライバを統合します。
共通のクラスローダーがドライバにアクセスできるようにして、ドメインを再起動します。
ドライバの JAR および ZIP ファイルを、domain-dir/lib ディレクトリまたは glassfish_home/lib にコピーするか、ドライバのクラスファイルを domain-dir/lib/ext ディレクトリにコピーします。ドライバの JAR ファイルの完全修飾パス名が認識されます。
Enterprise Server は、対応する JDBC ドライバを使用して、すべてのデータベース管理システムに接続できるように設計されています。
次の JDBC ドライバとデータベースの組み合わせはテスト済みで、コンテナ管理による持続性がサポートされています。
サポートされている JDBC ドライバの最新のリストについては、『Sun GlassFish Enterprise Server v3 リリースノート』を参照してください。
このドライバの JAR ファイルは smdb2.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: DB2
「データソースクラス名」: com.sun.sql.jdbcx.db2.DB2DataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
このドライバの JAR ファイルは smoracle.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Oracle
「データソースクラス名」: com.sun.sql.jdbcx.oracle.OracleDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
このドライバの JAR ファイルは smsqlserver.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Microsoft SQL Server
「データソースクラス名」: com.sun.sql.jdbcx.sqlserver.SQLServerDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
selectMethod – cursor に設定します。
Sun MySQL ドライバは、MySQL Enterprise のみで動作します。このドライバの JAR ファイルは smmysql.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: SQL Server
「データソースクラス名」: com.sun.sql.jdbcx.mysql.MySQLDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
selectMethod – cursor に設定します。
このドライバの JAR ファイルは smsybase.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Sybase
「データソースクラス名」: com.sun.sql.jdbcx.sybase.SybaseDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。これは任意指定です。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
この DB2 ドライバの JAR ファイルは db2jcc.jar、db2jcc_license_cu.jar、および db2java.zip です。環境変数を設定してください。次に例を示します。
LD_LIBRARY_PATH=/usr/db2user/sqllib/lib:${Java EE.home}/lib DB2DIR=/opt/IBM/db2/V8.2 DB2INSTANCE=db2user INSTHOME=/usr/db2user VWSPATH=/usr/db2user/sqllib THREADS_FLAG=native
次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: DB2
「データソースクラス名」: com.ibm.db2.jcc.DB2SimpleDataSource
「プロパティー」:
databaseName - 必要に応じて設定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
driverType – 2 に設定します。
deferPrepares – false に設定します。
Java DB ドライバの JAR ファイルは derbyclient.jar です。Java DB は Apache Derby に基づいています。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: JavaDB
「データソースクラス名」: 次のいずれかを指定します。
org.apache.derby.jdbc.ClientDataSource org.apache.derby.jdbc.ClientXADataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します (デフォルトと異なる場合)。
databaseName – データベースの名前を指定します。
user - データベースユーザーを指定します。
これは、Java DB が認証を使用するように設定されている場合にのみ必要です。Java DB は、デフォルトで認証を使用しません。ユーザーを指定すると、その名前が、テーブルが属するスキーマの名前になります。
password – データベースパスワードを指定します。
これは、Java DB が認証を使用するように設定されている場合にのみ必要です。
MySQLTM ドライバの JAR ファイルは mysql-connector-java-5.1.7-bin.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Microsoft SQL Server
「データソースクラス名」:
com.mysql.jdbc.jdbc2.optional.MysqlDataSource com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
PostgreSQL ドライバの JAR ファイルは postgresql-8.4-701.jdbc4.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: PostgreSQL Server
「データソースクラス名」:
* org.postgresql.ds.PGSimpleDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
次の JDBC ドライバも Enterprise Server で使用できますが、これらのドライバは完全にはテストされていません。Sun では、これらのドライバの製品サポートは提供していませんが、Enterprise Server &; での使用についての限定サポートを提供しています。
Oracle データベースユーザーが capture-schema コマンドを実行するには、そのユーザーがスキーマの所有者でないかぎり、ANALYZE ANY TABLE 特権が必要です。この特権は、データベース管理者がユーザーに付与します。capture-schema の詳細は、『Sun GlassFish Enterprise Server v3 Reference Manual 』を参照してください。
次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Informix
「データソースクラス名」: 次のいずれかを指定します。
com.informix.jdbcx.IfxDataSource com.informix.jdbcx.IfxXADataSource
「プロパティー」:
serverName – Informix データベースサーバー名を指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。これは任意指定です。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
IfxIFXHost – データベースサーバーのホスト名または IP アドレスを指定します。
この Oracle ドライバの JAR ファイルは Oranxo.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Oracle
「データソースクラス名」: com.inet.ora.OraDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
user – データベースユーザーを指定します。
password – データベースパスワードを指定します。
serviceName – データベースの URL を指定します。構文は次のとおりです。
jdbc:inetora:server:port:dbname
次に例を示します。
jdbc:inetora:localhost:1521:payrolldb
この例では、localhost は Oracle サーバーを実行しているマシンのホスト名、1521 は Oracle サーバーのポート番号、payrolldb はデータベースの SID を表します。データベース URL の構文の詳細については、Oracle のドキュメントを参照してください。
streamstolob - BLOB または CLOB データ型のサイズが 4K バイトを超え、このドライバが CMP で使用される場合は、このプロパティーを true に設定してください。
xa-driver-does-not-support-non-tx-operations - true の値に設定します。同じ接続プールから非 XA 接続と XA 接続の両方が取得される場合にのみ必要です。パフォーマンスが低下する可能性があります。
このプロパティーを設定する代わりに、非 XA 接続用とXA 接続用の 2 つの接続プールを作成することもできます。
この Microsoft SQL Server ドライバの JAR ファイルは Merlia.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Microsoft SQL Server
「データソースクラス名」: com.inet.tds.TdsDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
この Inet Sybase ドライバの JAR ファイルは Sybelux.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Sybase
「データソースクラス名」: com.inet.syb.SybDataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。完全な URL ではなく、データベース名のみを指定してください。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
この Sybase ドライバの JAR ファイルは jconn4.jar です。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Sybase
「データソースクラス名」: 次のいずれかを指定します。
com.sybase.jdbc4.jdbc.SybDataSource com.sybase.jdbc4.jdbc.SybXADataSource
「プロパティー」:
serverName – データベースサーバーのホスト名または IP アドレスを指定します。
portNumber – データベースサーバーのポート番号を指定します。
databaseName – 必要に応じて設定します。完全な URL ではなく、データベース名のみを指定してください。
user – 必要に応じて設定します。
password – 必要に応じて設定します。
BE_AS_JDBC_COMPLIANT_AS_POSSIBLE – true に設定します。
FAKE_METADATA – true に設定します。
この Oracle ドライバの JAR ファイルは ojdbc6.jar です。
このドライバを使用する場合は、1 つの列に 2000 バイトを超えるデータを挿入できないことに注意してください。この問題を回避するには、OCI ドライバ (JDBC Type 2) を使用します。
次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Oracle
「データソースクラス名」: 次のいずれかを指定します。
oracle.jdbc.pool.OracleDataSource oracle.jdbc.xa.client.OracleXADataSource
「プロパティー」:
user – 必要に応じて設定します。
password – 必要に応じて設定します。
xa-driver-does-not-support-non-tx-operations - true の値に設定します。これは任意指定です。 同じ接続プールから非 XA 接続と XA 接続の両方が取得される場合にのみ必要です。パフォーマンスが低下する可能性があります。
このプロパティーを設定する代わりに、非 XA 接続用とXA 接続用の 2 つの接続プールを作成することもできます。
Oracle thin ドライバでは、XAResource.recover メソッドが、入力フラグに関係なく同じ未確定の Xid のセットを繰り返し返します。XA 仕様に従って、トランザクションマネージャーは最初に TMSTARTSCAN でこのメソッドを呼び出したあと、TMNOFLAGS で、Xid が返されなくなるまで繰り返しこのメソッドを呼び出します。XAResource.commit メソッドにもいくつかの問題があります。
この Enterprise Server の回避方法を無効にするには、oracle-xa-recovery-workaround プロパティーの値を false に設定する必要があります。
この OCI Oracle ドライバの JAR ファイルは ojdbc14.jar です。LD_LIBRARY_PATH を介して共用ライブラリが使用可能であること、および ORACLE_HOME プロパティーが設定されていることを確認してください。次のように接続プールを設定します。
「名前」: あとで JDBC リソースを設定するときに、この名前を使用します。
「リソースタイプ」: 適切な値を指定します。
「データベースベンダー」: Oracle
「データソースクラス名」: 次のいずれかを指定します。
oracle.jdbc.pool.OracleDataSource oracle.jdbc.xa.client.OracleXADataSource
「プロパティー」:
user – 必要に応じて設定します。
password – 必要に応じて設定します。
xa-driver-does-not-support-non-tx-operations - true の値に設定します。同じ接続プールから非 XA 接続と XA 接続の両方が取得される場合にのみ必要です。パフォーマンスが低下する可能性があります。
このプロパティーを設定する代わりに、非 XA 接続用とXA 接続用の 2 つの接続プールを作成することもできます。