ヘッダーをスキップ
Oracle® Fusion Middleware WebLogic Server Type 4 JDBC ドライバ ガイド
11g リリース 1 (10.3.1)
B55561-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

2 WebLogic Type 4 JDBC ドライバの使い方

DataDirect の Oracle WebLogic Type 4 JDBC ドライバを使用すると、インターネットやイントラネットへアクセスする業界最先端のデータ ストアに対して、WebLogic Server 経由で高パフォーマンスな JDBC アクセスを行えます。WebLogic Type 4 JDBC ドライバは Java 環境に合わせて最適化されているので、Java テクノロジを組み込んだり、既存システムの機能およびパフォーマンスを拡張したりできます。

DataDirect の WebLogic Type 4 JDBC ドライバは、以下のような特長を持つ実績のあるドライバです。

以下の節では、WebLogic Type 4 JDBC ドライバについて詳しく説明します。

JDBC 仕様の準拠

WebLogic Type 4 JDBC ドライバは JDBC 3.0 仕様に準拠しています。また、JDBC 4.0 仕様の以下の機能もサポートしています。

詳細については、「A JDBC のサポート」を参照してください。

インストール

WebLogic Type 4 JDBC ドライバは、WebLogic Server と共に WL_HOME\server\lib フォルダにインストールされます。WL_HOME は WebLogic Server をインストール先ディレクトリです。ドライバ クラス ファイルは weblogic.jar のマニフェスト クラスパスに含まれているので、ドライバは自動的にサーバのクラスパスに追加されます。


注意 :

WebLogic Server の完全インストールを実行すると、WebLogic Type 4 JDBC ドライバがデフォルトでインストールされます。カスタム インストールを選択した場合は、WebLogic JDBC ドライバ オプションが選択されている (チェック ボックスがオンになっている) ことを確認してください。このオプションが選択されていない場合、ドライバはインストールされません。

WebLogic Type 4 JDBC ドライバは WebLogic のクライアント jar ファイル (wlclient.jar など) のマニフェスト クラスパスには含まれていません。WebLogic クライアントでドライバを使用するには、以下のファイルをクライアントにコピーし、クライアントのクラスパスに追加する必要があります。

サポートするデータベース

データベース サポートの詳細については、http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html を参照してください。

WebLogic JDBC データ ソースを介した接続

WebLogic Type 4 JDBC ドライバを使用するには、WebLogic Server コンフィグレーションに JDBC データ ソースを作成してから、この JDBC ドライバを選択してデータ ソース内に物理的なデータベース接続を作成します。それによって、アプリケーションが JNDI ツリーでデータ ソースをルックアップして、接続を要求できるようになります。

関連情報については、以下を参照してください。

接続プロパティの指定

データ ソースの接続の接続プロパティは、WebLogic Server Administration Console、コマンドライン インタフェース、または JMX API を使用して指定します。接続プロパティは DBMS によって異なります。各 WebLogic Type 4 JDBC ドライバに固有の接続プロパティのリストについては、該当するドライバの章を参照してください。

LoginTimeout による接続作成時間の制限

JDBC データ ソースでデータベース接続を作成するときに、データベースが使用できない場合、デフォルトのシステム タイムアウトが経過するまでリクエストがハングすることがあります。一部のシステムではこの時間が 9 分間に渡る場合もあります。リクエストは JDBC データ ソースの各接続にハングします。このハング時間を最小限に抑えるために、接続に LoginTimeout 値を指定できます。すべての WebLogic Type 4 JDBC ドライバは LoginTimeout 接続プロパティをサポートしています。LoginTimeout 接続プロパティを指定すると、接続がすぐに作成されない場合、リクエストは指定した時間だけ待機します。接続が指定した時間内に作成されない場合、ドライバは SQL 例外を送出します。

接続プロパティのコンフィグレーションの詳細については、該当するドライバの章を参照してください。

IP アドレスの使用

WebLogic Type 4 JDBC ドライバでは、IPv4 および IPv6 形式の IP (インターネット プロトコル) アドレスがサポートされます。IPv6 アドレスは、特定のバージョンのデータベースに接続する場合にのみサポートされます (表 2-1 を参照)。 また、IPv6 アドレスに接続するためには、Windows では J2SE 5.0 以上、UNIX/Linux では J2SE 1.4 が必要になります。

表 2-1 各 WebLogic Type 4 JDBC ドライバでサポートされる IP アドレス形式

ドライバ IPv4 IPv6

DB2

サポートされているすべてのバージョン

z/OS 上の DB2 v9.1

Linux、UNIX、Windows 上の DB2 V9.1 以上

iSeries 上の DB2 V5R2 以上

Informix

サポートされているすべてのバージョン

Informix 10 以上

Microsoft SQL Server

サポートされているすべてのバージョン

Microsoft SQL Server 2005 以上

Sybase

サポートされているすべてのバージョン

Sybase 12.5.2 以上


ネットワークで名前付きサーバがサポートされている場合は、接続 URL またはデータ ソースに指定されたサーバ名を、IPv4 または IPv6 アドレスに解決できます。たとえば、次の URL のサーバ名 DB2Server を、いずれかのタイプのアドレスに解決できます。

jdbc:weblogic:db2://DB2Server:50000;DatabaseName=jdbc;User=test;
Password=secret

また、接続 URL のサーバ名部分に、IPv4 または IPv6 形式のアドレスを指定することもできます。たとえば、次の接続 URL では、IPv4 形式でサーバを指定しています。

jdbc:weblogic:db2://123.456.78.90:50000;DatabaseName=jdbc;User=test;
Password=secret

ServerName データ ソース プロパティを使用して、いずれかの形式でアドレスを指定することも可能です。次のデータ ソース定義では、IPv6 形式でサーバ名を指定しています。

DB2DataSource mds = new DB2DataSource();
mds.setDescription("My DB2DataSource");
mds.setServerName("[ABCD:EF01:2345:6789:ABCD:EF01:2345:6789]");
mds.setPortNumber(50000);
...

注意 :

接続 URL やデータ ソースで IPv6 アドレスを指定する場合は、そのアドレスを括弧で囲む必要があります。

WebLogic Type 4 JDBC ドライバでは、通常の IPv6 形式に加え、圧縮したアドレスや IPv4 と IPv6 を組み合わせたアドレスなど、IPv6 の代替形式もサポートされます。たとえば、次の接続 URL では IPv6 形式でサーバを指定していますが、連続するゼロのビットを圧縮する構文が使用されています。

jdbc:weblogic:db2://[2001:DB8:0:0:8:800:200C:417A]:50000;DatabaseName=jdbc;
User=test;Password=secret

次の接続 URL でも IPv6 形式でサーバを指定していますが、IPv4 と IPv6 を組み合わせたアドレスが使用されています。

jdbc:weblogic:db2://[0000:0000:0000:0000:0000:FFFF:123.456.78.90]:50000;
DatabaseName=jdbc;User=test;Password=secret

IPv6 の詳細については、次のページを参照してください。

http://tools.ietf.org/html/rfc4291#section-2.2

セキュリティの使用

WebLogic Type 4 JDBC ドライバでは、セキュリティ機能として認証とデータの暗号化がサポートされます。

認証

ほとんどのコンピュータ システムでは、ユーザの身元を証明するものとしてパスワードが使用されています。このパスワードは、ネットワーク上を転送することが多く、悪意のあるハッカーによって傍受されるおそれがあります。パスワードはユーザを識別するための秘匿情報であるため、パスワードを知っていれば誰でもそのユーザになりすますことができます。認証を使用すると、ユーザの識別情報を保護できます。WebLogic Type 4 JDBC ドライバでは、以下の認証方法がサポートされます。

  • ユーザ ID/パスワード認証 : データベースでのユーザ名とパスワードを使用して、データベースにアクセスするユーザを認証します。

  • Kerberos 認証 : 信頼性のあるサード パーティ認証サービスです。DB2、および Sybase では、Windows Active Directory Kerberos および MIT Kerberos 実装の両方がサポートされます。SQL Server の場合は、Windows Active Directory Kerberos のみがサポートされます。

  • クライアント認証 : ドライバを実行しているシステムにログインしたユーザのユーザ ID を使用して、データベースにアクセスするユーザを認証します。クライアントでのみ認証が実施され、データベース サーバによる追加の認証は提供されません。

  • NTLM 認証 : Windows 環境用のシングル サインオン認証です。この認証方法は、Windows クライアントでのみ使用できます。

表 2-2 に、WebLogic Type 4 JDBC ドライバでサポートされる認証方法を示します。

表 2-2 WebLogic Type 4 JDBC ドライバでサポートされる認証方法

ドライバ ユーザ ID/パスワード Kerberos クライアント NTLM

Linux/UNIX/Windows 上の DB2

X

X

X

なし

z/OS 上の DB2

X

X

X

なし

iSeries 上の DB2

X

なし

X

なし

Informix

X

なし

なし

なし

Microsoft SQL Server

X

X脚注 1

なし

X

Sybase

X

X

なし

なし


脚注 1 Microsoft SQL Server 2000 以上でサポートされる。

Kerberos 認証の要件

ドライバに Kerberos 認証をコンフィグレーションする前に、使用している環境が 表 2-3 の要件を満たしていることを確認してください。

表 2-3 ドライバに Kerberos 認証をコンフィグレーションする場合の要件

コンポーネント 要件

データベース サーバ

データベースは、以下のいずれかのバージョンでなければならない。

DB2 :

  • Linux/UNIX/Windows 上の DB2 v8.1 以上

Microsoft SQL Server :

  • Microsoft SQL Server 2005

  • Microsoft SQL Server 2000

  • Microsoft SQL Server 2000 Enterprise Edition (64 ビット) Service Pack 2 以上

Sybase :

  • Sybase 12.0 以上

Kerberos サーバ

Kerberos サーバは、認証に使用するユーザ ID を管理する。Kerberos キー配布センター (KDC) も Kerberos サーバで管理する。Windows Active Directory を使用する場合は、このマシンがドメイン コントローラとしても機能する。

DB2 および Sybase :

ネットワーク認証を、以下のいずれかの方法で提供する必要がある。

  • 以下のいずれかのオペレーティング システム上の Windows Active Directory

    Windows Server 2003

    Windows 2000 Server Service Pack 3 以上

  • MIT Kerberos 1.4.2 以上

Microsoft SQL Server :

ネットワーク認証は、以下のいずれかのオペレーティング システム上の Windows Active Directory から提供する必要がある。

  • Windows Server 2003

  • Windows 2000 Server Service Pack 3 以上

クライアント

J2SE 1.4.2 以上がインストールされている必要がある。


Kerberos 認証を使用するためには、WebLogic JDBC Type 4 ドライバのインストール後に、ある程度のコンフィグレーションが必要になります。認証のコンフィグレーションの詳細については、個別のドライバの章を参照してください。

NTLM 認証の要件

ドライバに NTLM 認証をコンフィグレーションする前に、使用している環境が 表 2-4 の要件を満たしていることを確認してください。

表 2-4 ドライバに NTLM 認証をコンフィグレーションする場合の要件

コンポーネント 要件

データベース サーバ

データベース サーバは、クライアントの管理に使用するドメイン コントローラで管理する必要がある。また、データベース サーバを以下のいずれかのデータベースで実行する必要がある。

Microsoft SQL Server :

  • Microsoft SQL Server 2005

  • Microsoft SQL Server 2000 Service Pack 3 以上

  • Microsoft SQL Server 2000 Enterprise Edition (64 ビット) Service Pack 2 以上

ドメイン コントローラ

ドメイン コントローラで、データベース サーバとクライアントの両方を管理する必要がある。ネットワーク認証は、以下のいずれかのオペレーティング システム上の NTLM から提供する必要がある。

  • Windows Server 2003

  • Windows 2000 Server Service Pack 3 以上

クライアント

クライアントは、データベース サーバの管理に使用するドメイン コントローラで管理する必要がある。また、クライアントを以下のいずれかのデータベースで実行する必要がある。

  • Windows Vista

  • Windows Server 2003

  • Windows XP Service Pack 1 以上

  • Windows 2000 Service Pack 4 以上

  • Windows NT 4.0

加えて、J2SE 1.3 以上がインストールされている必要がある。


NTLM 認証を使用するためには、WebLogic JDBC Type 4 ドライバのインストール後に、最低限のコンフィグレーションが必要になります。認証のコンフィグレーションの詳細については、個別のドライバの章を参照してください。

ネットワーク上でのデータの暗号化

データベース接続がデータを暗号化するようにコンフィグレーションされていない場合、ネットワーク上のデータは高速転送用に設計された形式で転送されるため、簡単に傍受されて解読されるおそれがあります。この形式では傍受を完全に防ぐことはできないため、データを暗号化することでより安全に転送することをお勧めします。データの暗号化は、たとえば以下のような状況で使用します。

  • 複数のオフィスがイントラネット経由で機密情報を共有している。

  • クレジット カード番号など、機密性の高いデータをデータベース接続経由で送信する。

  • 政府または業界のプライバシー要件やセキュリティ要件に準拠する必要がある。


    注意 :

    データの暗号化と復号化により余分なオーバーヘッド (主に CPU の使用率) がかかるため、パフォーマンスが低下する場合があります。

WebLogic Type 4 JDBC ドライバでは、以下の暗号化方法がサポートされます。

  • データベース固有の暗号化 (Linux/UNIX/Windows 上の DB2 および z/OS 上の DB2 のみ)。DB2 では、これらのデータベースで使用できる独自の暗号化プロトコルが定義されています。DB2 暗号化のコンフィグレーションの詳細については、「データの暗号化」を参照してください。

  • セキュア ソケット レイヤ (SSL)。SSL は、暗号化されたデータをデータベース接続経由で送信するための業界標準プロトコルです。SSL が提供する暗号化とクライアント/サーバ認証によって、データの整合性を確保できます。

表 2-5 に、WebLogic Type 4 JDBC ドライバでサポートされるデータの暗号化方法を示します。

表 2-5 WebLogic Type 4 JDBC ドライバでサポートされるデータの暗号化方法

ドライバ データベース固有 SSL

Linux/UNIX/Windows 上の DB2

X

X脚注 1

z/OS 上の DB2

X

なし

iSeries 上の DB2

なし

なし

Informix

なし

なし

Microsoft SQL Server

なし

X脚注 2

Sybase

なし

X


脚注 1 iSeries 上の DB2 V5R2 以上でサポートされる。

脚注 2 Microsoft SQL Server 2000 以上でのみサポートされる。

SSL 暗号化

SSL では、クライアントとサーバの間で、この両者のみが復号化できるように暗号化されたデータを送受信します。暗号化の条件については、「SSL ハンドシェーク」と呼ばれる一連のイベントでネゴシエートします。ハンドシェークでは、以下のタイプの認証が実施されます。

  • SSL サーバ認証は、サーバがクライアントに対してサーバ自身を認証する必要があります。

  • SSL クライアント認証 (省略可能) は、サーバがクライアントに対してサーバ自身を認証した後に、クライアントがサーバに対してクライアント自身を認証します。


    注意 :

    SSL クライアント認証は、DB2 でのみサポートされる。

SSL のコンフィグレーションの詳細については、個別のドライバの章を参照してください。

SSL サーバ認証

クライアントが接続を要求すると、サーバは認否の決定に使用するパブリック証明書をクライアントに提示します。クライアントは、この証明書の発行者を、信頼性のある認証局 (CA) のリストと照合します。このリストは、トラストストアと呼ばれるクライアント上の暗号化ファイルに保持されています。クライアントは、必要に応じて証明書のサブジェクト (オーナー) を確認できます。証明書がトラストストア内の信頼性のある CA に一致すると (そして証明書のサブジェクトがアプリケーション側の想定値に一致すると)、クライアントとサーバの間に暗号化された接続が確立されます。証明書が一致しない場合は、接続に失敗して例外が送出されます。

証明書の発行者とトラストストアの内容を照合するためには、ドライバがトラストストアを見つけ、適切なパスワードでトラストストアのロックを解除できなければなりません。トラストストアの情報は、以下のいずれかの方法で指定できます。

  • Java システム プロパティ javax.net.ssl.trustStore および javax.net.ssl.trustStorePassword の値を指定する。次に例を示します。

    java -Djavax.net.ssl.trustStore=C:\Certificates\MyTruststore
    

    および

    java -Djavax.net.ssl.trustStorePassword=MyTruststorePassword
    

    この方法では、JVM 内に作成されたすべての SSL ソケットの値が設定されます。

  • 接続プロパティ TrustStore および TrustStorePassword の値を指定する。次に例を示します。

    TrustStore=C:\Certficates\MyTruststore
    

    および

    TrustStorePassword=MyTruststorePassword
    

    TrustStore および TrustStorePassword プロパティに値を指定すると、それらの値によって Java システム プロパティの値がオーバーライドされます。この方法で、特定の接続にのみ使用するトラストストア ファイルを指定できます。

別の方法として、信頼性のある CA が発行した証明書でなくても、サーバから返されたすべての証明書を信頼するように WebLogic Type 4 JDBC ドライバをコンフィグレーションすることもできます。テスト環境においては、サーバから送信されたすべての証明書をドライバが信頼するようにすることで、テスト環境内のクライアントごとにトラストストア情報を指定する手間を省くことができます。ドライバがサーバからのすべての証明書を信頼するようにコンフィグレーションした場合、証明書内の発行者情報は無視されます。

SSL クライアント認証 (DB2 ドライバ)

サーバを SSL クライアント認証用にコンフィグレーションすると、サーバは識別情報を提供した後、クライアントにその識別情報を検証するよう要求します。クライアントは、SSL サーバ認証の場合と同じように、認否の決定に使用するパブリック証明書をサーバに送信します。クライアントのパブリック証明書は、「キーストア」と呼ばれる暗号化されたファイルに保持されます。

ドライバは、キーストアを見つけ、適切なキーストア パスワードでキーストアのロックを解除できなければなりません。使用するキーストアのタイプによっては、証明書およびそのプライベート キーにアクセスするためのパスワードを使用して、キーストア エントリのロックも解除する必要があります。

WebLogic Type 4 JDBC ドライバでは、以下のタイプのキーストアを使用できます。

  • Java キーストア (JKS) : 複数の証明書を保持します。各エントリはエリアスで識別されます。各エントリの値は、証明書およびそのプライベート キーです。各キーストア エントリには、キーストアと同じパスワードを設定することも、キーストアとは別のパスワードを設定することもできます。キーストア エントリのパスワードがキーストアのパスワードと異なる場合は、ドライバがそのパスワードを提供してエントリのロックを解除し、証明書およびそのプライベート キーにアクセスできるようにする必要があります。

  • PKCS #12 キーストア : 証明書を 1 つのみ保持します。ドライバは、キーストアのパスワードを提供するだけで、証明書およびそのプライベート キーにアクセスできます。キーストアのファイル拡張子は、.pfx または .p12 でなければなりません。

これらの情報は、以下のいずれかの方法で指定できます。

  • Java システム プロパティ javax.net.ssl.keyStore および javax.net.ssl.keyStorePassword の値を指定する。次に例を示します。

    java -Djavax.net.ssl.keyStore=C:\Certificates\MyKeystore
    

    および

    java -Djavax.net.ssl.keyStorePassword=MyKeystorePassword
    

    この方法では、JVM 内に作成されたすべての SSL ソケットの値が設定されます。


    注意 :

    javax.net.ssl.keyStore Java システム プロパティで指定したキーストアが JKS で、キーストア エントリのパスワードがキーストアのパスワードと異なる場合は、KeyPassword 接続プロパティにキーストア エントリのパスワードを指定する必要があります。 たとえば、KeyPassword=MyKeyPassword

  • 接続プロパティ KeyStore および KeyStorePassword の値を指定する。次に例を示します。

    KeyStore=C:\Certficates\MyKeyStore
    

    および

    KeyStorePassword=MyKeystorePassword
    

    注意 :

    KeyStore 接続プロパティで指定したキーストアが JKS で、キーストア エントリのパスワードがキーストアのパスワードと異なる場合は、KeyPassword 接続プロパティにキーストア エントリのパスワードを指定する必要があります。たとえば、KeyPassword=MyKeyPassword

    KeyStore および KeyStorePassword プロパティに値を指定すると、それらの値によって Java システム プロパティの値がオーバーライドされます。この方法で、特定の接続にのみ使用するキーストア ファイルを指定できます。

Java セキュリティ マネージャに必要なパーミッション

Java セキュリティ マネージャを有効にした状態で WebLogic Type 4 JDBC ドライバを使用する場合は、ドメインのセキュリティ ポリシー ファイルに特定のパーミッションを設定する必要があります。WebLogic Server には、編集および使用可能なサンプル セキュリティ ポリシー ファイルが用意されています。このファイルは、WL_HOME\server\lib\weblogic.policy にあります。weblogic.policy ファイルには、ドライバに必要なほとんどすべてのパーミッションが含まれています。weblogic.policy ファイルを変更せずに使用する場合は、それ以上のパーミッションを付与する必要はありません。別のセキュリティ ポリシー ファイルを使用する場合や、追加のパーミッションを必要とするドライバ機能を使用する場合は、これ以降の節を参照して必要となるパーミッションを追加してください。


注意 :

Java 2 プラグインで実行する Web ブラウザ アプレットは常に、Java セキュリティ マネージャを有効にした状態で JVM で実行します。

WebLogic Server で Java セキュリティ マネージャを使用する場合は、『Oracle Fusion Middleware Oracle WebLogic Server Security プログラマーズ ガイド』の「Java セキュリティを使用しての WebLogic リソースの保護」を参照してください。

接続を確立するためのパーミッション

データベース サーバへの接続を確立するには、以下の例で示すように WebLogic Type 4 JDBC ドライバにパーミッションを付与する必要があります。wlbase.jar ファイルおよび wlutil.jar ファイルに加え、使用しているデータベース管理システム用の JAR ファイルにもパーミッションを付与する必要があります。パーミッションは、ディレクトリ内のすべての JAR ファイルに付与したり、特定のファイルにのみ付与したりできます。

ディレクトリ内のすべての JAR ファイルに付与する場合は次のように記述します。

grant codeBase "file:WL_HOME${/}server${/}lib${/}-" {
  permission java.net.SocketPermission "*", "connect";
};

個別のファイルに付与する場合は次のように記述します。

grant codeBase "file:WL_HOME${/}server${/}lib${/}wlbase.jar" {
  permission java.net.SocketPermission "*", "connect";
};
grant codeBase "file:WL_HOME${/}server${/}lib${/}wlutil.jar" {
  permission java.net.SocketPermission "*", "connect";
};

さらに、以下のうち 1 つまたは複数のパーミッションを付与します。

// DB2 の場合:
grant codeBase "file:WL_HOME${/}server${/}lib${/}wldb2.jar" {
   permission java.net.SocketPermission "*", "connect";
};
// Informix の場合:
grant codeBase "file:WL_HOME${/}server${/}lib${/}wlinformix.jar" {
   permission java.net.SocketPermission "*", "connect";
};
// MS SQL Server の場合:
grant codeBase "file:WL_HOME${/}server${/}lib${/}wlsqlserver.jar" {
   permission java.net.SocketPermission "*", "connect";
};
// Sybase の場合:
grant codeBase "file:WL_HOME${/}server${/}lib${/}wlsybase.jar" {
   permission java.net.SocketPermission "*", "connect";
};

WL_HOME は、WebLogic Server のインストール先ディレクトリです。

Microsoft SQL Server の名前付きインスタンスを使用する場合は、次の例のように listen アクションと accept アクションのパーミッションも付与する必要があります。

grant codeBase "file:WL_HOME${/}server${/}lib${/}-" {
   permission java.net.SocketPermission "*", "listen, connect, accept";
};

Java プロパティへのアクセス パーミッションの付与

WebLogic Type 4 JDBC ドライバが、特定の操作を実行するためにさまざまな Java プロパティの値を読み取ることができるようにするには、次の例に示すようにパーミッションを付与する必要があります。

grant codeBase "file:WL_HOME${/}server${/}lib${/}-" {
   permission java.util.PropertyPermission "false", "read";
   permission java.util.PropertyPermission "user.name", "read";
   permission java.util.PropertyPermission "user.language", "read";
   permission java.util.PropertyPermission "user.country", "read";
   permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "java.specification.version",
      "read";
};

WL_HOME は、WebLogic Server のインストール先ディレクトリです。

接続を確立するためのパーミッション」で説明したように、これらのパーミッションを個別のファイルに付与することもできます。

一時ファイルへのアクセス パーミッションの付与

JVM のコンフィグレーションに指定した一時ディレクトリへのアクセスは、セキュリティ ポリシー ファイルで付与する必要があります。通常は、JVM で使用されるセキュリティ ポリシー ファイルを使用します。このファイルは、JAVA_HOME/jre/lib/security フォルダにあります。インセンシティブなスクロール可能カーソルを使用する場合や、DatabaseMetaData 結果セットのソートをクライアント サイドで実行する場合は、一時ファイルへのアクセス パーミッションをすべてのコード ベースに付与する必要があります。次の例では、C:\TEMP ディレクトリへのアクセス パーミッションを付与しています。

// すべてのドメインに付与するパーミッション
grant codeBase "file:WL_HOME${/}server${/}lib${/}-" {
// 一時ファイルを作成および削除するためのパーミッション。
// 一時ディレクトリは使用している環境に合わせて変更すること。
permission java.io.FilePermission "C:\\TEMP\\-", "read,write,delete";
};

WL_HOME は、WebLogic Server のインストール先ディレクトリです。

接続を確立するためのパーミッション」で説明したように、これらのパーミッションを個別のファイルに付与することもできます。

Kerberos 認証のためのパーミッション

Kerberos 認証をサポートする WebLogic Type 4 JDBC ドライバで Kerberos 認証を使用するには、Java 2 プラットフォームのセキュリティ ポリシー ファイルで、アプリケーションとドライバのコード ベースにセキュリティ パーミッションを付与する必要があります。以下に例を示します。

WebLogic Type 4 JDBC ドライバで Kerberos 認証を使用する方法については、適切なドライバの章を参照してください。

DB2

Java 2 プラットフォームのセキュリティ ポリシー ファイルで、アプリケーションとドライバのコード ベースにセキュリティ パーミッションを付与する必要があります。以下に例を示します。

grant codeBase "file:/WL_HOME/server/lib/-" {
   permission javax.security.auth.AuthPermission
      "createLoginContext.DDTEK-JDBC";
   permission javax.security.auth.AuthPermission "doAs";
   permission javax.security.auth.kerberos.ServicePermission 
      "krbtgt/your_realm@your_realm", "initiate";
   permission javax.security.auth.kerberos.ServicePermission 
      "principal_name/db_hostname@your_realm", "initiate";
};

各要素の説明は次のとおりです。

  • WL_HOME は、WebLogic Server のインストール先ディレクトリです。

  • principal_name は、データベース サービスを識別する Kerberos キー配布センター (KDC) に登録されているサービス プリンシパル名です。

  • your_realm は、データベース のホスト マシンが属する Kerberos レルム (または Windows ドメイン) です。

  • db_hostname は、データベースを実行しているマシンのホスト名です。

Microsoft SQL Server

Java 2 プラットフォームのセキュリティ ポリシー ファイルで、アプリケーションとドライバのコード ベースにセキュリティ パーミッションを付与する必要があります。以下に例を示します。

grant codeBase "file:/WL_HOME/server/lib/-" {
   permission javax.security.auth.AuthPermission
      "createLoginContext.DDTEK-JDBC";
   permission javax.security.auth.AuthPermission "doAs";
   permission javax.security.auth.kerberos.ServicePermission 
      "krbtgt/your_realm@your_realm", "initiate";
   permission javax.security.auth.kerberos.ServicePermission 
      "MSSQLSvc/db_hostname:SQLServer_port@your_realm", "initiate";
};

各要素の説明は次のとおりです。

  • WL_HOME は、WebLogic Server のインストール先ディレクトリです。

  • your_realm は、データベース のホスト マシンが属する Kerberos レルム (または Windows ドメイン) です。

  • db_hostname は、データベースを実行しているマシンのホスト名です。

  • SQLServer_port は、Microsoft SQL Server インスタンスがリスンする TCP/IP ポートです。

Sybase

Java 2 プラットフォームのセキュリティ ポリシー ファイルで、アプリケーションとドライバのコード ベースにセキュリティ パーミッションを付与する必要があります。以下に例を示します。

grant codeBase "file:/WL_HOME/server/lib/-" {
   permission javax.security.auth.AuthPermission
      "createLoginContext.DDTEK-JDBC";
   permission javax.security.auth.AuthPermission "doAs";
   permission javax.security.auth.kerberos.ServicePermission 
      "krbtgt/your_realm@your_realm", "initiate";
   permission javax.security.auth.kerberos.ServicePermission 
      "principal_name/db_hostname@your_realm", "initiate";
};

各要素の説明は次のとおりです。

  • WL_HOME は、WebLogic Server のインストール先ディレクトリです。

  • your_realmは、データベース のホスト マシンが属する Kerberos レルム (または Windows ドメイン) です。

  • principal_name は、データベース サービスを識別する KDC に登録されているサービス プリンシパル名です。

  • db_hostname は、データベースを実行しているマシンのホスト名です。

XA サポート

WebLogic Type 4 JDBC ドライバは XA をサポートしていますが、XA をサポートするためにデータベースのコンフィグレーションが必要になる場合があります。詳細については、以下の節を参照してください。

Unicode サポート

WebLogic Type 4 JDBC ドライバを使用して Unicode 対応および Unicode 非対応のデータベースにアクセスする JDBC によって、多言語アプリケーションを任意のオペレーティング システム上で開発できます。Java アプリケーションは、文字列データに関して内部的に UTF-16 Unicode エンコーディングを使用します。データを取得する場合、WebLogic Type 4 JDBC ドライバはデータベースで使用されている文字エンコーディングを UTF-16 に自動的に変換します。同様に、データベースに対してデータの挿入や更新を行う場合、ドライバは UTF-16 エンコーディングからデータベースで使用されている文字エンコーディングに自動的に変換します。

JDBC API は、Unicode (UTF-16) または ASCII でエンコードされた文字データを取得および保存するメカニズムを提供します。また、Java の文字列オブジェクトには、UTF-16 エンコーディングと一般的な文字エンコーディングとの間で文字列データを変換するメソッドが含まれています。

エラー処理

WebLogic Type 4 JDBC ドライバでは、SQLException を送出することで呼び出し側アプリケーションにエラーを報告します。各 SQLException には、以下の情報が含まれています。

ドライバ エラー

WebLogic Type 4 JDBC ドライバによって生成されるエラーは次の形式になります。

[OWLS][WebLogic Type 4 JDBC driver name]message

次に例を示します。

[OWLS][SQLServer JDBC Driver]Timeout expired

場合によっては、アプリケーションからの最後の JDBC 呼び出しをチェックしたり、推奨されるアクションについて JDBC 仕様を参照したりする必要があります。

データベース エラー

データベースによって生成されるエラーは次の形式になります。

[OWLS][WebLogic Type 4 JDBC driver name][DBMS name] message

次に例を示します。

[OWLS][SQL Server JDBC Driver][SQL Server] Invalid Object Name.

ネイティブ エラー コードを使用して、考えられるエラーの原因について詳細を調べます。詳細については、データベースのドキュメントを参照してください。