92
<Insert Picture Here> WebLogic Server 11g JDBCデータソース 日本オラクル株式会社 Fusion Middleware事業統括本部 ソリューション本部 Application Gridソリューション部

WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

<Insert Picture Here>

WebLogic Server 11g JDBCデータソース

日本オラクル株式会社Fusion Middleware事業統括本部 ソリューション本部Application Gridソリューション部

Page 2: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.3

当資料内容について

• 当資料では、WebLogic ServerのJDBCデータソースについて解説します。

• 対象とするWebLogic Serverのバージョンは、11gR1(10.3.3)です。

• 当資料では、基本編としてJDBCデータソースの基本動作やパラメータについて解説します。

• マルチデータソースやGridLink for RACについては当資料には含みません。

Page 4: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.4

Agenda

• JDBCデータソースとは

• WebLogic11gのJDBCデータソース

• WebLogic11gのJDBCデータソースの動作

• WebLogic11gのJDBCデータソースの監視

• WebLogic11gのデータソースのデバッグ

• WebLogic11gの JDBCデータソースにおけるOracle

JDBC Driverのデバッグ

• WebLogic11gのJDBCデータソースにおける推奨/注意事項

• Appendix:管理コンソールを用いたJDBCデータソースの構成手順

Page 5: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 5

<Insert Picture Here>

JDBCデータソースとは

Page 6: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.6

JDBCデータソースとは• アプリケーション実行環境(APサーバ)において、アプリケーションにデータベース接続サービスを提供する機能

• アプリケーションは、DB接続に必要な物理的な情報(DBホスト名、DBユーザID

やパスワードなど)を意識せずにデータベース接続を行える。

• 接続プールを活用することでDB接続、切断処理のオーバーヘッドを削減可能。

JDBCデータソース・サービス

接続プール

JDBCデータソース dsA

データベース

JNDIネーミング・サービス

アプリケーション

ルックアップ

jdbc/dsA

JNDI名

jdbc/dsA

APサーバ

利用するJDBCドライバ

DB接続情報

Page 7: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.7

JDBCデータソースを利用する場合のコード• 下記は、JDBCデータソースを利用してConnection オブジェクトを取得する場合のコード例。

import javax.naming.*;

import javax.sql.*;

import java.sql.*;

...(中略)

String sql = “select * from emp” //実行するSQL文

Context ic = new InitialContext(); //JNDIルックアップのための初期コンテキスト取得

DataSource ds = (DataSource)ic.lookup(“jdbc/dsA”); //データソースオブジェクト取得

Connection conn = ds.getConnection(); //コネクション取得

Statement stmt = conn.createStatement(); //Statementの作成

ResultSet rset = stmt.executeQuery(sql); //結果セットの取得

... ..(中略)

rset.close(); //結果セットクローズ処理

stmt.close(); //Statementクローズ処理

conn.close(); //コネクションクローズ処理

Page 8: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.8

JDBCデータソースを利用しない場合• アプリケーションがAPサーバのJDBCデータソース・サービスを利用せず、

JDBCドライバをロードし、そのAPIを使用してDB接続を行うことも可能。

• ただしその場合、DB接続情報や接続プールの管理をすべてアプリケーション側で管理・制御する必要がある。

データベース

APサーバ

アプリケーション

利用するJDBCドライバと

DB接続情報の管理

接続プールの制御

Page 9: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.9

JDBCデータソースを利用しない場合のコード例• JDBCデータソースを利用しない場合、利用するJDBCドライバやDBの物理接続情報をアプリケーション側で管理する必要がある。

• 下記は、それらの情報をハードコーディングしてしまっている悪い例。

import java.sql.*;

...(中略)

String sql = “select empno, ename from emp” //実行するSQL文

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); // 利用ドライバの指定

String url = “jdbc:oracle:thin:@host1:1521:SID”;

Connection conn =DriverManager.getConnection(url,”SCOTT”, “TIGER”); //コネクション取得

Statement stmt = conn.createStatement(); //Statementの作成

ResultSet rset = stmt.executeQuery(sql); //結果セットの取得

... ..(中略)

rset.close(); //結果セットクローズ処理

stmt.close(); //Statementクローズ処理

conn.close(); //コネクションクローズ処理

Page 10: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 10

<Insert Picture Here>

WebLogic11g のJDBCデータソース

Page 11: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.11

WebLogic Server11gのJDBCデータソース• WebLogic Serverでは、2種類のデータソース機能を提供。

• 単体のDB接続には、「データソース」を利用。Oracle RAC等には「マルチデータソース」を利用。

• 構成は、通常の管理ツール(AdminコンソールやWLST)を用いるが、データソース定義のXMLファイルを用意し、そのファイルをデプロイすることで定義することも可能。

WebLogic11gのJDBCデータソース

種類 データソース 単体のDBインスタンスに特定のDBユーザで接続する。

マルチデータソース 複数のデータソースをまとめて1つのデータソースとして利用することで接続分散と可用性向上を可能に。主にOracle RAC接続で利用。

構成とスコープ

サーバスコープで構成 AdminコンソールやWLSTで構成する。指定したWebLogicサーバ上のアプリ全体で利用可能な。

アプリケーションスコープで構成 アプリケーションにデータソース定義XMLファイルを含ませて構成する。そのアプリケーションだけで利用可能。

スタンドアロンで構成 データソース定義XMLファイルをWebLogicサーバにデプロイして構成。そのサーバ上のアプリ全体で利用可能。

Page 12: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.12

[参考]データソースとマルチデータソース• データソースは単体のDBインスタンスに特定ユーザで接続

• マルチデータソースは複数データソースをまとめて1つのデータソースとする。

• これにより、アプリからの接続要求を分散したり、1つのデータソースの接続先DBインスタンスに障害が発生した場合に、そのデータソースをアプリに利用させないように自動制御が可能。

• つまり、Oracle RACのようなDBクラスタ環境での適用を前提としている。

データソース1 データソース2 データソース3

WebLogic アプリケーション

マルチデータソース

データソース

WebLogic アプリケーション

Oracle RAC

Page 13: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.13

データソースの構成や監視について

• WebLogicのデータソースは、主に管理コンソールやWLSTを用いて管理操作や監視を行う。

• 個々のデータソースや関連リソースに対応するMbean(Configuration Mbean)により変更、監視が可能。

• また、WebLogicのデータソースはJSR-77(Java EE Management Model )をサポートしており、実行時の情報をMbean(Runtime MBean)を用いてモニタリングすることも可能。

ツール 作成・削除 変更 監視

管理コンソール ○ ○ ○

WLST ○ ○ ○

JMX APIや任意のJMX MBeanツール ○ ○

Page 14: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.14

データソースの構成内容について• WebLogicにてデータソースを作成すると、

• DOMAIN/config/jdbc配下にデータソース毎の定義ファイル(データソース名-id-jdbc.xml)が生成される。

• JDBCデータソースの対象サーバの情報はドメイン構成ファイル(config.xml)で保持される。

• データソースを削除すると、上記XMLやconfig.xmlのエントリも削除される。

• 対象サーバを指定してデータソースは作成すると、初期化され状態が「Running」になる。

• 状態が「Running」になると、対象サーバ上のすべてのアプリケーションから利用可能になる。

データソース dsA

データソース dsA データソース dsA

管理対象サーバA 管理対象サーバB

WebLogicドメイン

アプリ -W アプリ -X アプリ -Y アプリ -Z

dsA-9999-jdbc.xml

config.xml

データソースの定義内容

ドメイン構成ファイル。

データソースと対象サーバの

関連もここに含まれる。

Running Running

Page 15: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.15

[参考] JDBCデータソースの構成XMLファイル<?xml version='1.0' encoding='UTF-8'?>

<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source"

xmlns:sec="http://xmlns.oracle.com/weblogic/security"

xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source

http://xmlns.oracle.com/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd">

<name>dsA</name>

<jdbc-driver-params>

<url>jdbc:oracle:thin:@localhost:1521/XE</url>

<driver-name>oracle.jdbc.OracleDriver</driver-name>

<properties>

<property>

<name>user</name>

<value>scott</value>

</property>

</properties>

<password-encrypted>{AES}Sx4lxBlxAkkhuF8bVNt+0HFUQoDkNGQjS8YMYE7/xes=</password-encrypted>

</jdbc-driver-params>

<jdbc-connection-pool-params>

<test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>

</jdbc-connection-pool-params>

<jdbc-data-source-params>

<jndi-name>jdbc/dsA</jndi-name>

<global-transactions-protocol>OnePhaseCommit</global-transactions-protocol>

</jdbc-data-source-params>

</jdbc-data-source>

Page 16: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.16

[参考] JDBCデータソースとサーバーの関連<?xml version='1.0' encoding='UTF-8'?>

<domain xmlns="http://xmlns.oracle.com/weblogic/domain"

xmlns:sec="http://xmlns.oracle.com/weblogic/security"

xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.oracle.com/weblogic/security/xacml

http://xmlns.oracle.com/weblogic/security/xacml/1.0/xacml.xsd

http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator

http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator/1.0/passwordvalidator.xsd

http://xmlns.oracle.com/weblogic/domain http://xmlns.oracle.com/weblogic/1.0/domain.xsd

http://xmlns.oracle.com/weblogic/security http://xmlns.oracle.com/weblogic/1.0/security.xsd

http://xmlns.oracle.com/weblogic/security/wls http://xmlns.oracle.com/weblogic/security/wls/1.0/wls.xsd">

<name>domainProd</name>

<domain-version>10.3.2.0</domain-version>

・・・・(中略)・・・・・

<jdbc-system-resource>

<name>dsA</name>

<target>AdminServer</target>

<descriptor-file-name>jdbc/dsA-9730-jdbc.xml</descriptor-file-name>

</jdbc-system-resource>

</jdbc-system-resource>

</domain>

Page 17: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 17

ステートメント・キャッシュ• JDBCで、条件値のみ変化する同じSQLを繰り返し実行する場合は、一般的に

PreparedStatementを使用する。その場合、DB側の解析処理数が減るため、繰り返し実行する場合はStatement使用時より性能向上が期待できる。

• WebLogicのJDBCデータソースでは、このPrepareStatementやCallableStatementをキャッシュする機能を提供

• PrepareStatementを多用するアプリケーションではさらに性能向上を期待できる。

Statement stmt = conn.createStatement();

for ( int id = 0 ; id < 10000 ; id++ ) {

String sql = "SELECT ENAME FROM EMP WHERE EMPNO = " + id;

ResultSet rs = stmt.executeQuery(sql);

while ( rs.next() ) {

// 表示などの処理

}

}

String sql = "SELECT ENAME FROM EMP WHERE EMPNO = ?";

PreparedStatement ps = conn.prepareStatement(sql);

for ( int id = 0 ; id < 10000 ; id++ ) {

ps.setInt(1,id);

ResultSet rs = ps.executeQuery();

while ( rs.next() ) {

// 表示などの処理

}

}

Statement使用時

PreparedStatement

使用時

Page 18: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.18

WebLogic11gに含まれるJDBCドライバ

• WebLogic Server11gでは、標準で下記のJDBCドライバを提供。

• ドライバの実体は、WL_HOME/server/libに格納されている。

• 下表以外のJDBCドライバを利用する場合は、WebLogicに適用するCLASSPATHの先頭に追加するドライバのライブラリを追加する。

ドライバ ファイル名 備考

Oracle Thin Driver 11g ojdbc6.jar TYPE4

MySQL5.0 JDBCドライバ mysql-connector-java-commercial-5.0.x-bin.jar

WebLogic Type4 JDBCドライバ DB2用:wldb2.jar

MS SQL Server用:wlsqlserver.jar

Informix用:wlinformix.jar

Sybase用:wlsybase.jar

DataDirectのOEM供給

Page 19: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.19

データソース作成時に必要なパラメータ• 下表パラメータは、データベース種類に限らずデータソース定義時の共通項目

• 接続プールは、コンソールではデータソース作成後に「接続プール」タブから設定する。

項目( *は必須項目) 概要 Oracle Databaseの場合の例

データソース名* WebLogicでの管理名 dsA

JNDI名* JNDIツリーへのバインド名 jdbc/dsA

データベース種類* OracleやDB2など ※1 Oracle

ドライバ種類* データベース種類に応じて指定 ※1 Oracle Thin Instance-Connection

トランザクション・オプション 非XAドライバの場合に指定 1phase commit

データベース名* データベースのID ORCL

ホスト名* データベースのホスト名 localhost

ポート* データベースへの接続ポート 1521

データベース・ユーザ名 データベースユーザ名 SCOTT

パスワード データベースユーザのパスワード TIGER

ドライバ・クラス名* JDBCドライバのクラス名※2 oracle.jdbc.OracleDriver

URL* JDBC URL※2 jdbc:oracle:thin:@localhost:1521:ORCL

JDBCドライバ・プロパティ JDBCドライバ

テスト対象の表名(or SQL) 接続テストに利用する表またはSQL SQL SELECT 1 FROM DUAL

ターゲット WLSドメイン中、どのサーバで利用するか Server1

※1 コンソールの場合リストBOXで選択

※2 コンソールの場合、自動入力

Page 20: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.20

接続プールの主要パラメータ• 一般的に、プール中の接続作成、縮退のオーバーヘッドを削減するため、初期容量と最大容量を同じに設定することがのぞましい。

項目 概要 デフォルト値

初期容量 接続プール作成時に作成される接続数。接続プールに維持される最小接続数でもある。

1

最大容量 接続プール中に作成可能な最大接続数 15

増分容量 接続プール中に新たに接続を増加するときの量 1

予約時に接続をテスト アプリケーションが接続要求を行った際に、接続の有効性をテストするか否か。(テスト対象の表名の指定が必須)

false

テスト頻度(秒) 接続プール中の未使用接続に対する接続テストの実行間隔。テスト失敗時はその接続を無効化して再度接続を作成(テスト対象の表名の指定が必須)

120

アイドルプール接続を信頼する秒数 ここで指定した時間内に正常性が確認された接続のテストはスキップする。 10

縮小頻度(秒) 接続プール内の接続数を縮小させるまでの間隔 900

非アクティブ接続タイムアウト(秒) アプリケーションで使用中の接続が非アクティブの場合、ここで指定した秒数が経過すると接続プールに自動復旧する

0(無効)

接続予約のタイムアウト(秒) アプリケーションが接続要求時、接続を得るまで待機できる秒数 10

接続作成の再試行間隔(秒) 接続プール中の接続作成が失敗した場合に再作成を試行する間隔 0

文タイムアウト JDBCドライバに対して実行中のSQL文をタイムアウトする時間の指定.

JDBCドライバのStatement.setQueryTimeoutのメソッド実装に依存-1

Page 21: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.21

Oracle JDBC Driver用データソース• WebLogic Serverに含まれるOracle のJDBCドライバを利用してデータソースを作成する場合、ドライバのタイプと接続先指定方法により下表6パターンから1つを選択する。

• Instance Connection: オラクルのSIDを指定する方法

(例:jdbc:oracle:thin:@localhost:1521:XE)

• Service Connection: オラクルのservice_nameを指定する方法

(例:jdbc:oracle:thin:@localhost:1521/XE)

• RAC Service-Instance Connection:Oracle RACにマルチデータソースで接続する際に使用

ドライバ種類 ドライバ・クラス 接続先指定方法

XA Thin

ドライバ

oracle.jdbc.xa.client.OracleXADataSource Instance Connection

Service Connection

RAC Service-Instance

Connection

Thin

ドライバoracle.jdbc.OracleDriver Instance Connection

Service Connection

RAC Service-Instance

Connection

Page 22: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 22

<Insert Picture Here>

WebLogic11gのJDBCデータソースの動作

Page 23: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.23

JDBCデータソースの動作• 下表のデータソースを前提に、WebLogicのJDBCデータソースの動作について次のスライドより説明する。

項目 設定値

初期容量 3

最大容量 5

増分容量 1

予約時にテスト False

テスト頻度 0

接続予約のタイムアウト(秒)

10

接続作成の再試行間隔 0

縮小頻度 900

項目 設定値

データソース名 dsA

JNDI名 jdbc/dsA

データベース種類 Oracle(10g XE)

ドライバ種類 Oracle Thin

Service-Connection

ターゲット Server1

データソース 接続プール

Page 24: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.24

データソース作成• 管理コンソール等で、「ターゲット」となるWebLogicサーバ名を指定した上でデータソースの作成、ア

クティブ化を行うと、データソースが初期化され、接続プール中に「初期容量」で指定した数の接続が作成され、すぐにアプリケーションから利用可能になる。

• 「ターゲット」のサーバ指定無しでも作成・アクティブ化だけは可能。

• WebLogicサーバの再起動は不要。

• データソース作成時には、データベースは利用可能状態である必要がある。

接続プール

データソース dsA

データソースdsA

を作成、アクティブ化

WebLogic管理対象サーバ Server1

Running

Page 25: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.25

データソース作成時にDBが停止している場合• データベースが利用できない状態で、ターゲット指定付で、データソースを作成、アクティブ化しようとすると下記のような例外が発生し、アクティブ化できない。(作成/後にターゲット指定してアクティブ化しても同様)

<2010/01/12 17時24分35秒 JST> <Error> <Deployer> <BEA-149265> <タスク'weblogic.d

eploy.configChangeTask.2'に対するID '1263284673937'のデプロイメント要求の実行中にエラーが発生しました。

エラー: 'weblogic.application.ModuleException: '

weblogic.application.ModuleException:

at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:290)

at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)

at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:391)

at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)

at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:59)

Truncated. see log file for complete stacktrace

Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException:

Could not create pool connection. The DBMS driver exception was: Listener refus

ed the connection with the following error:

ORA-12514, TNS:listener does not currently know of service requested in connect

descriptor

at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:256)

at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)

at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1104)

at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:244)

at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1065)

Truncated. see log file for complete stacktrace>

Page 26: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.26

データソース停止• 管理コンソール等で、データソースに対して停止操作を行うと、「状態」が「Shutdown」になり、接続プールはクリアされ、結果、データベースとの物理接続もクリアされる。

• データソースを停止中にアプリケーションが接続要求を行うと下記例外が発生する。

• weblogic.jdbc.extensions.PoolDisabledSQLException:

weblogic.common.resourcepool.ResourceDisabledException: Data Source test is not active,

cannot allocate connections to applications

接続プール

データソース dsA

データソースdsAを停止

WebLogic管理対象サーバ Server1

Shutdown

Page 27: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.27

データソース起動• データソース停止時、起動すると、接続プール中に「初期容量」で指定した数の接続が作成され、すぐにアプリケーションから利用可能になる。

接続プール

データソース dsA

データソースdsAを起動

WebLogic管理対象サーバ Server1

Running

Page 28: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.28

データソース中断

接続プール

データソース dsA

データソースdsA

を中断

WebLogic管理対象サーバ Server1

Suspened

• 管理コンソール等で、データソースに対して中断操作を行うと、「状態」が「Suspended」になるが、接続プールはクリアされず、データベースとの物理接続も維持される。

• データソースを中断中にアプリケーションが接続要求を行うと下記例外が発生する。weblogic.jdbc.extensions.PoolDisabledSQLException: weblogic.common.resourcepool.ResourceDisabledException:

Pool dsA is Suspended, cannot allocate resources to applications..

Page 29: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.29

データソース再開• データソース中断時、再開すると、すぐにアプリケーションから利用可能になる。

接続プール

データソース dsA

データソースdsAを再開

WebLogic管理対象サーバ Server1

Running

Page 30: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.30

WebLogic起動時• WebLogic起動時に、データソースが自動的に初期化され、接続プール中に「初期容量」で指定した数の接続が作成され、アプリケーションから利用可能になる。

接続プール

データソース dsA

WebLogic Server

起動時に初期化

WebLogic管理対象サーバ Server1

Running

Page 31: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.31

WebLogic起動時にDBが停止している場合• WebLogic起動時にデータベースが停止している場合、接続プールが 「初期容量」>0 かつ

• 「接続作成の再試行間隔」 = 0で設定されているデータソースは初期化に失敗する。

• 初期化に失敗後、データベースを起動しても、データソースは利用可能にならない。下記は、その場合、WebLogicのサーバーログに出力される例外

<2010/01/12 16時50分09秒 JST> <Warning> <JDBC> <BEA-001129> <Received exception

while creating connection for pool "dsA": Listener refused the connection with the following error:

ORA-12514, TNS:listener does not currently know of service requested in connectdescriptor>

<2010/01/12 16時50分10秒 JST> <Error> <Deployer> <BEA-149205> <エラーweblogic.application.ModuleException: により、

アプリケーション'dsA'を初期化できませんでした。

weblogic.application.ModuleException:

at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:290)

at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)

at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:391)

at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)

at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:59)

Truncated. see log file for complete stacktrace

Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException:

Could not create pool connection. The DBMS driver exception was: Listener refused the connection with the following error:

ORA-12514, TNS:listener does not currently know of service requested in connectdescriptor

at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:256)

at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)

at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1104)

at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:244)

at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1065)

Truncated. see log file for complete stacktrace>

Page 32: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.32

データソース初期化に失敗した場合の対処方法• WebLogic起動時にデータベースが停止している場合、 接続プールが

「初期容量」>0 かつ「接続作成の再試行間隔」 = 0で設定しているデータソースは初期化に失敗する。

初期化に失敗後、データベースを起動しても、データソースは利用可能にならない。その場合、以下のいずれかの方法で対処が必要。

• (方法1)DBが起動した状態で、データソース初期化が失敗したWebLogicサーバを再起動。

• (方法2) DBが起動した状態で、データソースの接続プールの「初期容量」を0に変更し、アクティブ化する。(WebLogicサーバの再起動は不要)

• 上記の方法2を行う場合、WLSTを使用し、下記のようなスクリプトを実行する。

• (下記例で、dsAという部分はデータソース名)

connect('weblogic','welcome1','t3://localhost:7001')

edit()

startEdit()

cd('/JDBCSystemResources/dsA/JDBCResource/dsA/JDBCConnectionPoolParams/dsA')

cmo.setInitialCapacity(0)

activate()

Page 33: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.33

アプリケーション接続要求時• アプリケーションがデータソースを利用して接続を要求した時、データソースの接続プールに未使用接続があれば、それを「予約」してアプリケーションが利用する。

• アプリケーションは利用後接続をリリースすると、接続プールに接続が戻される。

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

アプリケーション① getConnection()

で予約

②使用

③ Connectionの

Close()でリリース

Page 34: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.34

• 接続プール中の接続数が最大容量に達していない場合は、プール中に「増分容量」で指定した分、新たな接続が生成され、アプリケーションはそれを予約、使用することが可能。

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

アプリケーション

アプリケーション

アプリケーション

アプリケーション

① getConnection() で予約

②現在接続数3、最大容量5なので

増分容量1なので、接続を1つ追加作成する③アプリケーションで利用可能

接続要求時に未使用接続が無い場合①

Page 35: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.35

• 接続プール中の接続数が最大容量に達している場合は、接続プールに接続が戻るまで「接続予約のタイムアウト」で指定した秒数分だけ待機する。

• 「接続予約のタイムアウト」で待機しても接続を得られなかった場合、下記例外が発生する。

• weblogic.jdbc.extensions.PoolLimitSQLException:

weblogic.common.resourcepool.ResourceLimitException:

• No resources currently available in pool dsA to allocate to applications, please increase the size of the

pool and retry..

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

アプリケーション

アプリケーション

アプリケーション

① getConnection() で予約

②現在使用数5、最大容量5のため、

アプリは「接続予約のタイムアウト」まで待機。

タイムアウトになると例外発生

アプリケーション

アプリケーション

アプリケーション

接続要求時に未使用接続が無い場合②

Page 36: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.36

接続プールの縮小

• WebLogicが起動し、接続プールが初期化された後、「縮小頻度」で設定した時間が経過したとき、

接続プールが「初期容量」以上に増加していた場合、接続プール中の未使用の接続数は、「初期容量」値まで自動的に縮小される。その後も、「縮小頻度」の間隔で縮小処理が行われる。

• 使用中の接続は縮小対象にはならないが、それにより「初期容量」まで縮小できない場合は使用後に即縮小される。(縮小間隔もリセットされる。)

• 「初期容量」 =「最大容量」の場合は、当然ながら縮小されない。

• 縮小処理は、管理コンソールから手動で行うことも可能。

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

データソース初期化後

「縮小頻度」 900秒の間隔で

「初期容量」 3まで縮小

初期化 縮小 縮小

縮小頻度 縮小頻度

Page 37: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.37

データベース再起動時• 今回の前提のように「予約時にテスト」=Falseかつ「テスト頻度」=0が設定されているデータソースで、

接続プールに正常に接続が作成された後、データベースが再起動した場合、接続プール中の全接続は無効となり、アプリケーションが接続要求を行うと下記例外が発生する(Oracle Database10g

の場合)

• java.sql.SQLRecoverableException: ソケットから読み込むデータはこれ以上ありません。

• この場合、次のスライドの対処を行わない限りアプリケーションはデータソースを利用できない。

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

停止 起動

②DB再起動

①接続プールに

正常に接続を作成

アプリケーション③ getConnection()

で予約

④使用時に

例外発生

Page 38: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.38

データベース再起動時の対処方法• 今回の前提のように「予約時にテスト」=Falseかつ「テスト頻度」=0が設定されているデータソースで、

接続プールに正常に接続が作成された後、データベースが再起動した場合、接続プール中の全接続は無効となり、アプリケーションはデータソースを利用できなくなる。

• この場合は、管理コンソールを利用し、データソースの「停止」、「起動」またはデータソースの「リセット」を行い、接続プールに有効な接続を再作成することで、再度アプリケーションから利用可能となる。

接続プール

データソース dsA③データソースを

「停止(強制停止)」->「起動」

または「リセット」

することでアプリから

再度利用可能になる

WebLogic管理対象サーバ Server1

停止 起動

②DB再起動

①接続プールに

正常に接続を作成

Page 39: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.39

データベース再起動時の問題の予防策①• データソースの接続プールに接続が作成された後にデータベースが再起動した場合の問題は、下記パラメータを設定することで予防することができる。

• 「予約時にテスト」をTrueにし、「テスト対象の表名」に有効なSQLまたは表名を設定する。

• 「予約時にテスト」をTrueにすると、アプリケーションが接続要求時に、接続プールの接続が有効か実際にSQLを発行してテストを行う。もしSQLが成功しない場合はその接続を破棄し、新たに接続を作成する。(アプリケーションでは例外が発生せず、正常に接続を取得できる。)

• ただし、接続要求都度にSQLを発行するため、理論上、DB側の負荷が幾ばくか高まる

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

停止 起動

②DB再起動

①接続プールに

正常に接続を作成

アプリケーション③ getConnection()

で予約

⑤正常に接続を

利用可能 ④「テスト対象の表名」

で指定したSQLを発行し

接続の有効性をテスト。

無効接続の場合、

その接続を破棄、

再作成する。

「予約時にテスト」=trueの場合

Page 40: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.40

[参考] 予約時テストのログ

• 「予約時にテスト」をTrueにし、「テスト対象の表名」に有効なSQLまたは表名を設定した場合、アプリケーションが接続要求を行った時に接続テストが行われる。

• DBの再起動などで接続プールの接続が無効になった状態で、接続テストが行われるとサーバーログに下記のようなログが生成される。

<2010/01/15 15時32分40秒 JST> <Error> <JDBC> <BEA-001112> <Test "SELECT 1 FROM D

UAL" set up for pool "dsA" failed with exception: "java.sql.SQLRecoverableExcept

ion: ソケットから読み込むデータはこれ以上ありません。".>

Page 41: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.41

データベース再起動時問題の予防策②(推奨)• データベース再起動時には、データソースの接続プールに無効接続が発生するが、無効接続が長期間接続プールに滞留すると、JDBCサブシステム自体が不安定になり WebLogicプロセスが「Failed」ステータスに移行する可能性が高い。そのため、データベース再起動時の問題の予防策としては、「予約時のテスト」 = True のみならず、「テスト頻度」を0以外の値を設定することを推奨する。

• 例えば「テスト頻度」を60に設定すると、接続プールの未使用接続を60秒単位でテストを行い、無効であれば破棄、再作成を行う。

接続プール

データソース dsA

WebLogic管理対象サーバ Server1

停止 起動

②DB再起動

①接続プールに

正常に接続を作成

アプリケーション③ getConnection()

で予約

⑤正常に接続を

利用可能 ④「テスト対象の表名」

で指定したSQLを発行し接続の有効性をテスト。

無効接続の場合、その接続

を破棄、再作成する。未使用接続も「テスト頻度」

で指定した間隔でテスト、無効接続の場合、その接続

を破棄、再作成する。

「予約時にテスト」=trueの場合

Page 42: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.42

[参考] アイドルプール接続を信頼する秒数

• 「テスト頻度」>0 で設定すると、データベース再起動時の無効接続の破棄に役立つが、正常運用時は指定した間隔でデータベースに対してSQLを発行し続けるため、データベース側の負荷を増やしてしまうことになる。

• 「アイドルプール接続を信頼する秒数」を指定すると、最近正常に使用された接続に対して、接続テストを行わせないことが可能。

• 例えば、「アイドルプール接続を信頼する秒数」を30に指定した場合、接続プールに戻されてから30

秒以内に再度予約された接続については、次回の接続テストをスキップさせる。

• 「アイドルプール接続を信頼する秒数」の指定値が高いと、接続プール中の接続の信頼性は低下するが、テスト回避によるオーバーヘッド削減で性能は向上する可能性がある。

• 逆に「アイドルプール接続を信頼する秒数」の指定値が低いと、接続プール中の接続の信頼性は向上するが、テスト頻度が高まり、性能は务化する可能性がある。

Page 43: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 43

<Insert Picture Here>

WebLogic11gのJDBCデータソースの監視

Page 44: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.44

JDBCデータソースの監視• WebLogicでは、JDBCデータソースの構成情報や実行時の統計情報を MBeanとして監視可能。

• 監視を行うツールとして、管理コンソールやWLST、WLDFコンソール拡張、JMX APIや任意のMBean

ブラウザ等を利用可能

• 下表は、JDBCデータソース関連の主要なMBean

種類 MBean名 説明

ConfigurationBean JDBCDataSourceBean データソースを表す。下記4つのMBeanの親となる。

JDBCDriverParamsBean データソースのJDBC ドライバ設定を表す。

JDBCConnectionPoolParamsBean データソースの接続プールの設定を表す。

JDBCDataSourceParamsBean データソースの設定を表す。

JDBCXAParamsBean データソースのXAトランザクションの設定を表す。

Runtime Bean JDBCServiceRuntimeMBean JDBC サブシステムを表し、使用可能な 下記2つのMBeanのリストにアクセスするためのメソッドを提供

JDBCDriverRuntimeMBean サーバがメモリにロードした JDBC ドライバを表す。

JDBCDataSourceRuntimeMBean サーバやクラスタにデプロイされた JDBC データ ソースを表す。

Page 45: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.45

[参考] 実行時の統計情報の項目①• Rutime Beanによる実行時の統計情報の主要な項目

管理コンソールの監視項目名 JDBCDataSourceRuntimeMBeanの属性名 説明

アクティブな接続の平均数 ActiveConnectionsAverageCount 使用中接続の平均数

現在アクティブな接続の数 ActiveConnectionsCurrentCount 現在使用中の接続数

アクティブな接続の最大数 ActiveConnectionsHighCount 同時に使用された接続の最大数

接続遅延時間(msec) ConnectionDelayTime 物理接続の作成に要した平均時間

接続の総数 ConnectionsTotalCount データ・ソースで作成されたデータベース接続の累計数

現在の容量 CurrCapacity 接続プール中の接続数

予約に失敗した要求の数 FailedReserveRequestCount アプリが接続予約に失敗した数

再接続の失敗数 FailuresToReconnectCount データソースが物理接続のリフレッシュに失敗した回数

リークした接続数 LeakedConnectionCount アプリがcloseしなかった接続数

使用可能数 NumAvailable 接続プール中の使用可能な接続数

使用不可数 NumUnavailable 接続プール中の未使用の接続数

予約された要求の数 ReserveRequestCount 接続要求の現在の累積数。

Page 46: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.46

[参考] 実行時の統計情報の項目②管理コンソールの監視項目名 JDBCDataSourceRuntimeMBeanの属性名 説明

プリペアド・ステートメント・キャッシュのアクセス数

PrepStmtCacheAccessCount 文キャッシュにアクセスされた累計数

プリペアド・ステートメント・キャッシュの追加数

PrepStmtCacheAddCount 文キャッシュに追加された文の現在の累積数

プリペアド・ステートメント・キャッシュの現在サイズ

PrepStmtCacheCurrentSize 文キャッシュの現在の数

プリペアド・ステートメント・キャッシュの削除数

PrepStmtCacheDeleteCount キャッシュから削除された文の数

プリペアド・ステートメント・キャッシュのヒット数

PrepStmtCacheHitCount 文キャッシュが使用された数

プリペアド・ステートメント・キャッシュの失敗数

PrepStmtCacheMissCount 文キャッシュが使用されなかった数

最大待機時間(秒) WaitSecondsHighCount 接続待機の最大時間

接続待機の現在数 WaitingForConnectionCurrentCount 接続待機している現在の要求数

接続待機の失敗総数 WaitingForConnectionFailureTotal 接続待機後、接続予約に失敗した総数

接続待機の最大数 WaitingForConnectionHighCount 接続待機した要求の最大数

接続待機の成功総数 WaitingForConnectionSuccessTotal 接続待機後、接続を予約できた総数

接続待機の総数 WaitingForConnectionTotal 接続待機した要求数の総数

Page 47: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.47

管理コンソールによる監視例• 接続プールの「最大容量」値が適切かどうかを監視する例

• 下記例では、「最大容量」を2、「接続予約のタイムアウト」を10秒に設定

「接続予約のタイム

アウト」まで待機している

リクエストがある。

予約失敗が

多数発生

待機の最大数が

18発生。

「最大容量」の

2まで達成する

ことがある。

これらを総合すると最大容量が不足しており、最低でも20 (2 + 18)に

する必要があると判断できる。

Page 48: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.48

WLDFコンソール拡張による監視例• 接続プールの状況を自動的にリフレッシュさせつつ、時系列に確認したい場合などはWLDFコンソール拡張を活用するとよい。

Page 49: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 49

<Insert Picture Here>

WebLogic11g JDBCデータソースのデバッグ

Page 50: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.50

データソースのデバッグ

• WebLogicでは、データソースやその中に含まれる接続プールの状況、またはアプリケーションが発行しているJDBC APIやSQLの内容などの詳細情報をデバッグ用に取得・表示する下記の機能を提供している。• 実行時の統計情報の監視

• 管理コンソールや、任意のJMX MBeanブラウザで参照可能(前のスライドで説明)

• プロファイル機能を利用したWLDF(WebLogic診断フレームワーク)による監視

• デバッグ・ログの出力

• JRockit Flight Recorderを利用したプロファイリング

Page 51: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.51

WebLogic11g JDBCデータソースのデバッグ• WebLogicのJDBCデータソースは、下記の設定によりデバッグ・ログを出力することが可能。

• 下記、いずれかの方法で、下表のデバッグスコープを指定する。

• 管理コンソールで指定する

• WebLogic起動のJavaVMオプションで指定する。

• WLSTで指定する。

• デバッグログは、DOMAIN/servers/(サーバ名)/logs/( サーバ名).logに出力

WebLogic

JDBCデータソースJDBC Driver

デバッグ対象(*上表1~4)

デバッグスコープ 説明

1 DebugJDBCSQL ( weblogic.jdbc.sql) 引数と戻り値、送出された例外など、呼び出されたすべての JDBC メソッドに関する情報を出力する。

2 DebugJDBCConn ( weblogic.jdbc.connection) データ ソース内のすべての接続予約や解放の操作など、すべてのアプリケーション リクエストを追跡する。

3 DebugJDBCRMI (weblogic.jdbc.rmi) JDBCSQL と同様。ただし RMI レベルで機能する。

4 DebugJDBCInternal ( weblogic.jdbc.internal) データ ソース、接続環境、データ ソース マネージャに関する低レベルのデバッグ

5 DebugJDBCDriverLogging

( weblogic.jdbc.driverlogging)

JDBC ドライバ レベルでのロギングを有効化する。(オラクルの場合、デバッグ用JDBCドライバが必要。)

Page 52: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.52

管理コンソールでの指定方法• 「ドメイン構造」で「環境」- 「サーバー」を選択、表からサーバ名を選択後、デバッグタブを選択し

• 「weblogic - jdbc 」の階層からスコープを指定して「有効化」ボタンを選択し、アクティブ化。

Page 53: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.53

JavaVMオプションとWLSTでの指定方法

connect(„weblogic‟ ,‟welcome1‟, „t3://localhost:7001‟)

edit()

cd('Servers/Server1/ServerDebug/Server1')

startEdit()

set('DebugJDBCSQL','true')

save()

activate()

• JavaVMオプションでの指定方法• -Dweblogic.debug.DebugJDBCSQL=true

• -Dweblogic.log.StdoutSeverity="Debug"

• WLSTでの指定方法• 下記例のようなスクリプトを実行する。(下記例中の「Server1 」は管理対象サーバ名)

Page 54: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.54

データソースデバッグ・ログの出力例####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259609>

<BEA-000000> <[weblogic.jdbc.wrapper.Statement_oracle_jdbc_driver_OracleStatementWrapper@7] executeQuery(select 'TEST' from dual

)>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.Statement_oracle_jdbc_driver_OracleStatementWrapper@7] executeQuery returns

weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl@8>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl@8] getMetaData()>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl@8] getMetaData returns

weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData@9>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData@9] getColumnCount()>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData@9] getColumnCount returns 1>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData@9] getColumnName(1)>

####<2010/01/20 17時14分19秒 JST> <Debug> <JDBCSQL> <tnobe-jp> <AdminServer>

<[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1263975259656>

<BEA-000000> <[weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData@9] getColumnName returns 'TEST'>

Page 55: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 55

<Insert Picture Here>

WebLogic11g JDBCデータソースにおけるOracle JDBC Driverのデバッグ

Page 56: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.

• Oracle JDBC Driverでは、デバッグ可能なライブラリを提供 (KROWN#139049)

• WebLogic11gでは、WL_HOME

/server/ext/jdbc/oracle/11g/ojdbc6_g.jarがOracle JDBC Driver

のデバッグ用ライブラリ。

• Oracle JDBC Driverのデバッグ用ライブラリをWebLogicのCLASSPATHの先頭に指定。

• ログ設定ファイルを作成、ドメイン・ディレクトリに格納。

• WebLogicのJavaVMオプションでJDBC トレースをtrue指定してWebLogicを起動

56

Oracle JDBC Driverのデバッグ設定

WebLogic

JDBCデータソースOracle JDBC Driver

Oracle Databaseデバッグ対象

Page 57: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.57

① Oracle JDBC Driverのデバッグ用ライブラリをWebLogicのCLASSPATHの先頭に指定

• WebLogicサーバに指定するCLASSPATH環境変数の先頭にデバッグ用ライブラリを指定するには、下記のようにPRE_CLASSPATH環境変数を WebLogic起動クリプトに設定する。

• 管理サーバの場合は、DOMAIN/startWebLogicスクリプト

• 管理対象サーバの場合は、DOMAIN/bin/startManagedWebLogicスクリプト

@ECHO OFF

@REM WARNING: This file is created by the Configuration Wizard.

@REM Any changes to this script may be lost when adding extensions to this configuration.

SETLOCAL

set PRE_CLASSPATH=D:¥oracle¥server1032¥wlserver_10.3¥server¥ext¥jdbc¥oracle¥11g¥ojdbc6_g.jar

set DOMAIN_HOME=D:¥Oracle¥server1032¥user_projects¥domains¥domainProd

call "%DOMAIN_HOME%¥bin¥startWebLogic.cmd" %*

ENDLOCAL

Page 58: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.58

② ログ設定ファイルを作成、WebLogicのドメイン・ディレクトリに格納。

• JDBCのデバッグ・ログのプロパティファイルを作成し、WebLogicのドメイン・ディレクトリに格納する。

• 下記では、デバッグ・ログをD:¥temp¥jdbc.logとして出力している例

• ファイル名は任意でよい。(当資料では、下記例をOracleJDBCLog.propertiesという名で扱う)

.level=SEVERE

handlers=java.util.logging.FileHandler

oracle.jdbc.level=FINE

oracle.jdbc.handlers=java.util.logging.FileHandler

java.util.logging.FileHandler.level=FINE

java.util.logging.FileHandler.pattern = d:¥¥temp¥¥jdbc.log

java.util.logging.FileHandler.count = 1

java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

Page 59: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.59

③ WebLogicのJavaVMオプションでJDBC トレースをtrue

指定してWebLogicを起動

• WebLogicサーバにJavaVMオプションを指定するには、下記のようにJAVA_OPTIONS環境変数をWebLogic起動クリプトに設定する。

• 管理サーバの場合は、DOMAIN/startWebLogicスクリプト

• 管理対象サーバの場合は、DOMAIN/bin/startManagedWebLogicスクリプト

@ECHO OFF

@REM WARNING: This file is created by the Configuration Wizard.

@REM Any changes to this script may be lost when adding extensions to this configuration.

SETLOCAL

set JAVA_OPTIONS=-Djava.util.logging.config.file=OracleJDBCLog.properties -Doracle.jdbc.Trace=true

set PRE_CLASSPATH=D:¥oracle¥server1032¥wlserver_10.3¥server¥ext¥jdbc¥oracle¥11g¥ojdbc6_g.jar

set DOMAIN_HOME=D:¥Oracle¥server1032¥user_projects¥domains¥domainProd

call "%DOMAIN_HOME%¥bin¥startWebLogic.cmd" %*

ENDLOCAL

Page 60: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.60

Oracle JDBCデバッグ・ログの出力例2010/01/18 15:48:25 oracle.jdbc.driver.PhysicalConnection getMetaData

TRACE_1: Public Enter:

2010/01/18 15:48:25 oracle.jdbc.driver.PhysicalConnection getMetaData

TRACE_1: return: oracle.jdbc.driver.OracleDatabaseMetaData@13e5d15

2010/01/18 15:48:25 oracle.jdbc.driver.PhysicalConnection getMetaData

TRACE_1: Exit

2010/01/18 15:48:25 oracle.jdbc.OracleDatabaseMetaData getDriverName

TRACE_1: Public Enter:

2010/01/18 15:48:25 oracle.jdbc.OracleDatabaseMetaData getDriverName

TRACE_1: return: Oracle JDBC driver

2010/01/18 15:48:25 oracle.jdbc.OracleDatabaseMetaData getDriverName

TRACE_1: Exit

2010/01/18 15:48:25 oracle.jdbc.OracleDatabaseMetaData getDriverVersion

TRACE_1: Public Enter:

2010/01/18 15:48:25 oracle.jdbc.OracleDatabaseMetaData getDriverVersion

TRACE_1: return: 11.1.0.7.0-Production

2010/01/18 15:48:25 oracle.jdbc.OracleDatabaseMetaData getDriverVersion

TRACE_1: Exit

2010/01/18 15:48:25 oracle.jdbc.driver.PhysicalConnection createStatement

TRACE_1: Public Enter:

2010/01/18 15:48:25 oracle.jdbc.driver.PhysicalConnection createStatement

TRACE_1: return: oracle.jdbc.driver.OracleStatementWrapper@11ab8a5

2010/01/18 15:48:25 oracle.jdbc.driver.PhysicalConnection createStatement

TRACE_1: Exit

2010/01/18 15:48:25 oracle.jdbc.driver.OracleStatement executeQuery

TRACE_1: Public Enter: "select * from customer

"

2010/01/18 15:48:25 oracle.jdbc.driver.OracleStatement doExecuteWithTimeout

設定: SQL: select * from customer

2010/01/18 15:48:26 oracle.jdbc.driver.OracleStatement executeQuery

TRACE_1: return: oracle.jdbc.driver.OracleResultSetImpl@1adf5e1

2010/01/18 15:48:26 oracle.jdbc.driver.OracleStatement executeQuery

TRACE_1: Exit

Page 61: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 61

<Insert Picture Here>

WebLogic11g

JDBCデータソースにおける推奨/注意事項

Page 62: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.62

JDBCデータソース構成における推奨/注意事項

• WebLogic11gのJDBCデータソース構成における下記4

点の推奨、注意事項について次スライドより説明• 接続プールの容量について

• 接続プールのテストについて

• ステートメント・キャッシュについて

• 他アプリケーション・サーバーからの移行時の注意点について

Page 63: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.63

1. 接続プールの容量について①

• 接続プールの容量における推奨事項。• 接続プールの「初期容量」や「最大容量」の値は同じにする。

• 接続プールの初期容量と最大容量が異なる場合、同時リクエスト数によっては接続プール内で新たにDBへの物理接続処理が発生し得る。また接続プールの縮小処理も発生し得る。このDBへの物理接続や縮小時の切断処理は決して軽くない。

• そのため運用中に接続プール中の接続が増減しないように初期容量」や「最大容量」の値は同じにすることを推奨する。

Page 64: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.64

1. 接続プールの容量について②

• 接続プールの容量における推奨事項。• WebLogicで同時実行される最大スレッド数 <= 接続プールの「最大容量」にする。

• WebLogic上のアプリケーションはスレッドにて処理されるが、同時実行スレッド数が多くなると、それに対応できる接続プール中の接続が無ければ接続予約時でスレッドの待機が発生してしまい、性能に影響を与えてしまう。(アプリの中でDBアクセスを行わない処理の比率が高い場合はこの限りでない)

• WebLogicで同時実行される最大スレッド数はワークマネジャー機能でサーバまたはアプリケーション別に指定できる。その際に、最大スレッド数=特定の接続プールの最大容量として指定することも可能。

Page 65: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.65

2. 接続プールのテストについて①

• 接続プールのテストにおける推奨事項。

• 接続プールでテスト機能を設定するか否かは、データベース障害時の対応における要件と、データベース・サーバ側の負荷状況を鑑みて判断する。

• データベース・サーバ側の負荷(CPU使用率など)が非常に高い場合、接続プールのテスト機能は極力使用しない方がよい。

• (シングル構成の)データベースが運用中に、障害等で再起動してしまった場合で、その際にWebLogicサーバまたはデータソースの再起動などの手動操作を行うことが許容されない場合は、「接続予約時のテスト」をtrueにし、かつ「テスト頻度」も設定し、接続テストを実施させる。

Page 66: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.66

2. 接続プールのテストについて②

• 接続プールのテストにおける注意事項。• WebLogicとデータベースの間にFirewall等が設置されている場合、FireWallが接続プール中の接続とDB間のアイドルな通信を一定間隔で自動切断させないようにする必要がある。

• FireWallによっては、アイドルとなった通信を自動的に無効化する機能を提供するが、接続プールは、常時DBとの通信を保持するため、この影響を受ける可能性がある。

• その場合、FireWall側でその機能を無効化する。できない場合はFireWallがアイドル通信を自動切断するより早い間隔で、接続プールの「テスト頻度」を設定する。

Page 67: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.67

3. ステートメント・キャッシュについて①

• ステートメント・キャッシュにおける注意事項。• 「ステートメント・キャッシュ数」 ×接続プールの「最大容量」×接続プール数がデータベース側で許容されるオープン・カーソル数を超えないようにする必要がある。

• ステートメント・キャッシュ機能により、PreparedStatementがキャッシュされデータベースのカーソルをオープンしたままの状態で維持される。(データベース実装に依存)

• 「ステートメント・キャッシュ数」は、一つの接続当りのキャッシュ数になるため最大同時キャッシュ数がデータベースの許容オープンカーソル数を超えないようにする必要がある。

Page 68: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.68

3. ステートメント・キャッシュについて②

• ステートメント・キャッシュにおける注意事項。

• ステートメント・キャッシュが有効な状態では、運用中のデータベースの表定義を変更(列追加など)は、基本的に避ける。

• ステートメント・キャッシュが有効な状態(「ステートメント・キャッシュ数」が0より大きい場合)で、キャッシュされたPreparedStatementで解析対象のSQL内に含まれるテーブルなどの定義を変更すると、次回キャッシュしたPreparedStatementを使用時にSQL Exceptionが発生するため。

• その場合、管理コンソールで「文キャッシュのクリア」の操作が必要。(Oracle Database 10gでは、下記のような例外が発生する。)

java.sql.SQLException: プロトコル違反です。

at oracle.jdbc.driver.SQLStateMapping.newSQLException

Page 69: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 69

<Insert Picture Here>

Appendix:

管理コンソールを用いたJDBCデータソースの構成手順

Page 70: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.70

JDBCデータソースの作成①• 管理コンソールにログインして下図の操作を行います。

②「ドメイン構造」で

「サービス」-「JDBC」-「データソース」を選択

①「チェンジ センタ」で「ロックして編集」ボタンを選択

③「JDBCデータソースの概要」で「新規作成」ボタンを選択

Page 71: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.71

JDBCデータソースの作成②• データソース名やJNDI名などを指定します。

①「名前」で任意の名前を入力

②「JNDI名」で任意の値を入力

③データベースの種類やドライバを選択して「次へ」ボタンを選択。

当資料では「Oracle」「Oracle Driver (Thin) for Service Connections」を選

択。

Page 72: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.72

JDBCデータソースの作成③• トランザクション・オプションを選択して「次へ」ボタンを選択します。

• 当資料ではデフォルトのまま。

Page 73: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.73

JDBCデータソースの作成④

• データベースの接続プロパティを設定

DB接続に必要な

情報を入力。

Page 74: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.74

JDBCデータソースの作成⑤• 「構成のテスト」ボタンを選択し、接続テストが正常処理されることを確認したら「次へ」ボタンを選択します。

Page 75: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.75

JDBCデータソースの作成⑥• 「サーバ」で対象となるサーバを選択して「終了」ボタンを選択します。

Page 76: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.76

JDBCデータソースの作成⑦• 「変更のアクティブ化」ボタンを選択して構成内容を確定させます。

ボタン選択後、「すべての変更がアクティブ化されました。再起動は不要です。 」

のメッセージが表示されることを確認

Page 77: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.77

接続プールの設定①• 作成したデータソースのリンクを選択します。

Page 78: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.78

接続プールの設定②• 「接続プール」タブ画面を表示します。

②「接続プール 」タブを選択

①「チェンジ センタ」で

「ロックして編集」ボタンを選択

Page 79: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.79

接続プールの設定③• 「初期容量」と「最大容量」に任意の値に設定して保存ボタンを選択します。

Page 80: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.80

ボタン選択後、「すべての変更がアクティブ化されました。再起動は不要です。 」

のメッセージが表示されることを確認

接続プールの設定④• 「変更のアクティブ化」ボタンを選択して構成内容を確定させます。

Page 81: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.81

接続プールの監視設定①• 作成したデータソースの「監視」画面を表示します。

①「監視 」タブを選択

③「この表のカスタマイズ 」

リンクを選択

②「統計 」タブを選択

Page 82: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.82

接続プールの監視設定②• 監視したい項目を選択します。

①任意の項目を選択。

当資料では、「現在アクティブな接続数 」、

「アクティブな接続の最大数」、

「接続遅延時間」、

「最大使用可能数」

を追加②「適用」ボタンを選択

Page 83: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.83

接続プールの監視設定③• 選択した項目が表示されていることを確認します。

Page 84: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.84

[参考] データソース作成後の接続テスト

• データソースを作成後に、そのデータソースの接続テストを行うには「テスト対象のテーブル名」に適切なSQLまたは表名を指定しておく必要があります。• 「チェンジ センタ」で「ロックして編集」ボタンを選択

• 「ドメイン構造」で「サービス」-「JDBC」-「データソース」を選択

• 「JDBCデータソースの概要」で、テストするデータソー

スの名前リンクを選択し「接続プール」タブを選択。

• 画面下部の「詳細」リンクを選択

• 「テスト対象のテーブル名」に適切なテーブル名または

SQL文が指定されていることを確認し、「保存」ボタンを

選択後、「変更のアクティブ化」ボタンを選択

• 「モニタ」タブ、「テスト」タブで「サーバ」を指定して

「データソースのテスト」ボタンを選択して結果を確認

Page 85: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 86

OTNセミナー オンデマンド コンテンツダイセミで実施された技術コンテンツを動画で配信中!!

ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。

※掲載のコンテンツ内容は予告なく変更になる可能性があります。

期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。

OTN オンデマンド

最新情報つぶやき中

OracleMiddle_jp・セミナ情報

・お勧め情報

・公開予告 など

Page 86: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 87

Oracle エンジニアのための技術情報サイト

オラクルエンジニア通信http://blogs.oracle.com/oracle4engineer/

• 技術資料

• ダイセミの過去資料や製品ホワイトペーパー、スキルアップ資料などを多様な方法で検索できます

• キーワード検索、レベル別、カテゴリ別、製品・機能別

• コラム

• オラクル製品に関する技術コラムを毎週お届けします

• 決してニッチではなく、誰もが明日から使える技術の「あ、そうだったんだ!」をお届けします

こんな資料が人気です

6か月ぶりに資料ダウンロードランキングの首位が交代!新王者はOracle Database構築資料でした。

データベースの性能管理手法について、Statspack派もEnterprise Manager派も目からウロコの技術特集公開中

オラクルエンジニア通信

最新情報つぶやき中

oracletechnetjp

Page 87: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 88

OTN×ダイセミ でスキルアップ!!

※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。

ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。

Oracle Technology Network(OTN)を御活用下さい。

・一般的な技術問題解決方法などを知りたい!

・セミナ資料など技術コンテンツがほしい!

一般的技術問題解決にはOTN掲示版の

「ミドルウェア」をご活用ください

http://forums.oracle.com/forums/main.jspa?categoryID=484

過去のセミナ資料、動画コンテンツはOTNの

「OTNセミナー オンデマンド コンテンツ」へ

http://www.oracle.com/technetwork/jp/testcontent/index-086873-ja.html

※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。

ダイセミ資料はOTNコンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。

Page 88: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 89

■パフォーマンス診断サービス

•Webシステム ボトルネック診断サービス

•データベースパフォーマンス診断サービス

オラクル社のエンジニアが 直接ご支援しますお気軽にご活用ください!

オラクル 無償支援 検索

NEW

■システム構成診断サービス

•Oracle Database構成相談サービス

•サーバー統合支援サービス

•仮想化アセスメントサービス

•メインフレーム資産活用相談サービス

•BI EEアセスメントサービス

•簡易業務診断サービス

■バージョンアップ支援サービス

•Oracle Databaseバージョンアップ支援サービス

•Weblogic Serverバージョンアップ支援サービス

•Oracle Developer/2000(Froms/Reports)

Webアップグレード相談サービス

■移行支援サービス

•SQL Serverからの移行支援サービス

•DB2からの移行支援サービス

•Sybaseからの移行支援サービス

•MySQLからの移行支援サービス

•Postgre SQLからの移行支援サービス

•Accessからの移行支援サービス

•Oracle Application ServerからWeblogicへ移行支援サービス

ITプロジェクト全般に渡る無償支援サービス

Oracle Direct Conciergeサービス

NEW

NEW

Page 89: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 90

インストールすることなく、すぐに体験いただけます

製品無償評価サービス

http://www.oracle.com/jp/direct/services/didemo-195748-ja.html

Web問い合わせフォーム「ダイデモ」をキーワードに検索することで申し込みホームページにアクセスできます

提供シナリオ一例

・データベースチューニング

・アプリケーション性能・負荷検証

・無停止アップグレード

・Webシステム障害解析

1日5組限定!

※サービスご提供には事前予約が必要です

• サービスご提供までの流れ

1. お問合せフォームより「製品評価サービス希望」と必要事項を明記し送信下さい

2. 弊社より接続方法手順書およびハンズオン手順書を送付致します

3. 当日は、弊社サーバー環境でインターネット越しに製品を体感頂けます

Page 90: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.

http://www.oracle.com/jp/direct/inquiry-form-182185-ja.html

Oracle Direct 検索

あなたにいちばん近いオラクル

Oracle Directまずはお問合せください

Web問い合わせフォーム フリーダイヤル

専用お問い合わせフォームにてご相談内容を承ります。

※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。

0120-155-096

※月曜~金曜 9:00~12:00、13:00~18:00

(祝日および年末年始除く)

システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。

システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。

Page 91: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved.

Page 92: WebLogic Server 11g JDBCデータソース...WebLogic Server 11g JDBC データソース 日本オラクル株式会社 Fusion Middleware事業統括本部ソリューション本部

Copyright© 2011, Oracle. All rights reserved. 93