この章には次の項が含まれます:
ドライバはスレッドセーフであることが必要です。
トランザクションをサポートする環境でドライバを使用する場合は、標準のJDBCトランザクション・コール(setAutoCommit()
およびsetTransactionIsolation()
など)を実装する必要があります。
SerializableまたはRemoteインタフェースを実装しない場合、ドライバはRMIクライアント・アプリケーションにオブジェクトを渡すことができません。
コンテナ管理の永続性(CMP)
行セット
JMS/JDBC永続性、およびWebLogic JDBCストアの使用
JDBCセッション永続性
RDBMSセキュリティ・プロバイダ
(シングルトン・サービスおよびサーバーの移行用)データベース・リース
JTAロギング・ラスト・リソース(LLR)最適化
Oracle Thinドライバのバージョン12cは、Oracle WebLogic Serverとともにインストールされます。
ojdbc7.jar
、ojdbc7_g.jar
、ojdbc7dms.jar
(JDK7の場合)
ojdbc6.jar
、ojdbc6_g.jar
、ojdbc6dms.jar
(JDK 6の場合)
注意:
WebLogic Serverとともに、WebLogicブランドのDataDirectのドライバもインストールされます。詳細は、『Oracle WebLogic Server JDBCアプリケーションの開発』のWebLogicブランドのDataDirectドライバの使用に関する項を参照してください。
WebLogic Serverとともに、Oracle Thinドライバに加えて、mySQL 5.1.x (mysql-connector-java-commercial-5.1.22-bin.jar
) JDBCドライバもインストールされます。
これらのドライバは、$ORACLE_HOME/oracle_common/modules
のサブディレクトリにインストールされます。weblogic.jar
のマニフェストには、このファイルがリストされており、そのためこのファイルはweblogic.jarのロード時(サーバーの起動時)にロードされます。したがって、このJDBCドライバをCLASSPATHに追加する必要はありません。WebLogic ServerとともにインストールされないサードパーティJDBCドライバを使用する予定がある場合、それらのドライバをインストールする必要があります。インストール作業には、ドライバ・ファイルへのパスでCLASSPATH
を更新することが含まれます。また、データベース・クライアント・ファイルへのパスでPATHを更新することも含まれる場合があります。『Oracle WebLogic Server 12.2.1.2の新機能』のサポートされる構成を参照してください
WebLogic Serverとともにインストールされるドライバの異なるバージョンを使用する予定の場合は、新しいファイルをCLASSPATH
の前に追加できます。
注意:
WebLogic Serverでは、WebLogic ServerサンプルとともにDerby DBMSのバージョンがWL_HOME\common\derby
ディレクトリにインストールされます。Derbyは、すべてJavaで作成されたDBMS製品で、WebLogic ServerサンプルのデモンストレーションをサポートするためにWebLogic Serverディストリビューションに含まれています。Derbyの詳細は、http://db.apache.org/derby
を参照してください。
WebLogic Serverとともにインストールされていないサード・パーティJDBCドライバを使用するには、それらをDOMAIN_HOME/lib
ディレクトリに追加します(DOMAIN_HOME
は、WebLogic Serverドメインが構成されているディレクトリを表します)。デフォルトのパスは、ORACLE_HOME/user_projects/domains
です。詳細は、『Oracle WebLogic Serverアプリケーションの開発』のドメイン/libディレクトリへのJARの追加を参照してください。
注意:
以前のリリースでは、新しいJDBCドライバを追加する場合、または置き換えるJARの名前が元のJARと異なるJDBCドライバを更新する場合、WebLogic Serverのクラスパスを更新してJDBCドライバ・クラスの場所を含める必要がありました。これは必要なくなりました。DOMAIN_HOME/libのサード・パーティJARファイルの使用
DOMAIN_HOME/libのサード・パーティJARファイルの使用は、WebLogic Serverとともにインストールされていないサード・パーティJDBCドライバでのみサポートされます。WebLogic Serverとともにインストールされるドライバの詳細は、「WebLogic ServerとともにインストールされるJDBCドライバ」を参照してください。
DOMAIN_HOME/libディレクトリのサード・パーティJARファイルを使用する場合、次の点に注意してください。
作成されるクラス・ローダーは、WebLogic Serverのシステム・クラスパス・クラス・ローダーの子です。
このディレクトリのJARに含まれるクラスは、サーバーのJava EEアプリケーション(EARファイルなど)にのみ認識されます。
WebLogic Server管理コンソールおよびWLSTオンラインを使用して、JARファイルを構成および管理できます。(データ・ソースはデプロイされないため、WLSTオフラインを使用することも可能です。)
これらのJARファイルは、スタンドアロン・クライアント(t3 RMIクライアントなど)やスタンドアロン・アプリケーション(java utils.Schemaなど)から実行すると動作しません。
これらのJARファイルは、アプリケーション・データ・アクセスではサポートされません。『Oracle WebLogic Server 12.2.1の新機能』のデータベースの相互運用性を参照してください。
複数のドメイン・ディレクトリ(共有ファイル・システムのない複数のマシン)が関連する場合、各ドメイン・ディレクトリの/libにJARファイルをインストールする必要があります。
WebLogic Serverでは、サード・パーティ・ドライバで呼び出されるメソッド(TimesTen abort
やDB2 setDB2ClientUser
など)を使用できます。
データ・ソースのサポート
/lib
にインストールされたサード・パーティJARファイルは、次のものと組み合せて使用できます。
WebLogic Serverシステム・リソースでサポートされるすべてのデータ・ソース・タイプ(汎用、マルチ・データ・ソース、Active GridLink、プロキシ・データ・ソースなど)。UCP JARはサード・パーティではないため、UCPデータ・ソースは適用されません。
EARまたはWARでパッケージ化されたデータ・ソース。
EARまたはWARで定義されたJava EE 6データ・ソース定義。
JDBCメソッドではありませんが、/lib
のサード・パーティJARファイルを使用すると、マルチ・データ・ソースのフェイルオーバー、接続、リプレイおよび収集のように、WebLogic Serverデータ・ソース・コールバックに適用されます。
例17-1 /libのサード・パーティJARファイルの使用の例
次の例は、getversion.war
というスタンドアロンWARファイルに含まれるファイルを示しています。Derby JARファイルは、WEB-INF/lib
またはDOMAIN_HOME/lib
(あるいはその両方)にあります。クラス・ファイルは、コンパイルされてWEB-INF/classes/demo/GetVersion.class
にインストールされます。
<web-app> <welcome-file-list> <welcome-file>welcome.jsp</welcome-file> </welcome-file-list> <display-name>GetVersion</display-name> <servlet> <description></description> <display-name>GetVersion</display-name> <servlet-name>GetVersion</servlet-name> <servlet-class> demo.GetVersion </servlet-class> </servlet> <!-- Data source description can go in the web.xml descriptor or as an annotation in the java code - see below <data-source> <name>java:global/DSD</name> <class-name>org.apache.derby.jdbc.ClientDataSource</class-name> <port-number>1527</port-number> <server-name>localhost</server-name> <database-name>examples</database-name> <transactional>false</transactional> </data-source> --> </web-app> WEB-INF/weblogic.xml <weblogic-web-app> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> </weblogic-web-app> Java file package demo; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.SQLException; import javax.annotation.Resource; import javax.annotation.sql.DataSourceDefinition; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; @DataSourceDefinition(name="java:global/DSD", className="org.apache.derby.jdbc.ClientDataSource", portNumber=1527, serverName="localhost", databaseName="examples", transactional=false ) @WebServlet(urlPatterns = "/GetVersion") public class GetVersion extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { @Resource(lookup = "java:global/DSD") private DataSource ds; public GetVersion() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.println("<html>"); writer.println("<head><title>GetVersion</title></head>"); writer.println("<body>" + doit() +"</body>"); writer.println("</html>"); writer.close(); } private String doit() { String ret = "FAILED"; Connection conn = null; try { conn = ds.getConnection(); ret = "Connection obtained with version= " + conn.getMetaData().getDriverVersion(); } catch(Exception e) { e.printStackTrace(); } finally { try { if (conn != null) conn.close(); } catch (Exception ignore) {} } return ret; } }
Oracle Thinドライバでのグローバリゼーション・サポートのために、Oracleではnls_charset.zip
にかわるorai18n.jar
ファイルを提供しています。Oracleのオブジェクト型およびコレクションにおいて、CHAR
およびNCHAR
型のデータに、US7ASCII
、WE8DEC
、WE8ISO8859P1
およびUTF8
以外の文字セットを使用する場合、CLASSPATH
にorai18n.jar
およびorai18n-mapping.jar
を含める必要があります。
orai18n.jar
およびorai18n-mapping.jar
は、WebLogic Serverインストールにより、ORACLE_HOME
\oracle_common\modules\oracle.nlsrtl_12.1.0
フォルダに格納されます。これらのファイルは、weblogic.jar manifest
マニフェスト・ファイルからは参照されないため、使用前にCLASSPATH
に追加する必要があります。