25
Copyright© 2009, Oracle. All rights reserved. 1 GridLink for Oracle Real Application Clusters

GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Embed Size (px)

DESCRIPTION

第5回WebLogic Server勉強会@東京の資料です。当資料は講演者日本オラクル 基盤技術本部-Grid Center 冨沢篤史 の資料です。

Citation preview

Page 1: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 1

GridLink for Oracle Real Application Clusters

Page 2: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 2

GridLink for Oracle Real Application Clustersとは?

• WebLogic Server(WLS)からOracle Real Application Clusters(RAC)への接続機能の総称です。データアクセスに対して両製品が

提供している可用性、拡張性機能を使用できます。• WebLogic Serverのマルチデータソース

• RACの自動ワークロード管理

• サポートされるテクノロジの組み合わせがあります。

• OracleではWebLogic Serverのマルチデータソースを利用すること

を推奨しています。• 理由: マルチデータソースの実績。ユーザーシナリオのカバー率の広さ。

WLSによるRACへの接続の推奨はマルチデータソースです。

Page 3: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 3

WebLogic Server マルチデータソースRACサービス対応

WebLogic Server

JNDI Tree

Internal Clients(e.g. Servlets)

ExternalClients

LookupData Source

LookupData Source

Multi Data Source for Service A

Data Source

Multi Data Source for Service B

Data Source

Data Source

Data Source

RA

C D

atab

ase

Serv

ice

A

Data Source

Serv

ice

ASe

rvic

e A

Serv

ice

ASe

rvic

e B

Serv

ice

B

Data Source

利用不可能なデータソース

Service X

Service X 利用可能なサービス

利用できないサービス

Data Source

Data Source

利用可能なデータソース

Page 4: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 4

(参考)接続時フェイルオーバーと接続時ロードバランシング

• JDBCクライアントサイドのワークロード管理機能です。

• リスナー接続時ののロードバランシング、フェイルオーバーを提供します。

• WLSのマルチデータソースと併用できます、がお勧めしません。

• 理由:マルチデータソースがデータソースレベルでワークロード管理を行なうため。

Page 5: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 5

(参考)高速接続フェイルオーバー

• 障害発生時に失効した接続の除去、接続要求のフェイルオーバー、トランザクションの迅速なロールバックを実現。

ONSFAN Event

ONS

ONS

ONSDataSource

RAC Instance 1

RAC Instance 2

RAC Instance 3

Page 6: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 6

(参考)実行時接続ロードバランシング

ロード・バランシング・アドバイザ

“instance1にxx%,instance2にyy%,instance3にzz%

で割り振り”

• 各インスタンスの稼動状況に応じてアプリケーションに渡す接続数を制御

RAC Instance 1

RAC Instance 2

RAC Instance 3

ONS

ONS

ONS

ONS RAC Instance 1

ONS

ONS

ONS

RAC Instance 2

RAC Instance 3

ワークロード:大

ワークロード:中

ワークロード:小

ワークロード状況を基にしたアドバイザ情報

DataSource

Page 7: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 7

(参考)接続アフィニティ

• 一連のアプリケーション処理で使用するインスタンスを固定するためのオプションを提供。

ONS

ONS

ONS

:Affinity Context

“     は1に振って”

RAC Instance 1

RAC Instance 2

RAC Instance 3

Oracle Data Source

Page 8: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 8

WebLogic Server Multi Data Source

Page 9: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 9

マルチデータソース:接続要求のフェイルオーバー

Multi Data Source

Data Source

Data Source

Data SourceConnectionPool

Data SourceConnectionPool JDBC Driver

WebLogic Server

JNDI Tree

Internal Clients(e.g. Servlets)

ExternalClients

LookupData Source

LookupData Source

RA

C D

atab

ase

Serv

ice

テスト接続が失敗したタイミングでデータソースレベルでフェイルオーバー

障害後もヘルスチェックを継続し、回復を検知したタイミングでフェイルバック

JDBC Driver

Page 10: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 10

マルチデータソース:予約時の接続テスト

Data Source

In-Pool

ConnectionPool

In-Use

In-Use

Database

Connection

JDBC Cliente.g. Servlet,EJB,etc

テスト用SQLクエリー

クエリー実行結果①“DataSource.getConnection();”

③⑤

接続の予約テスト(TestConnectionsOnReserve):有効

テスト対象のテーブル(TestTableName):”SQL <任意のSQLステートメント>”

Page 11: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 11

マルチデータソース:データソースのフェイルバック

Multi Data Source

Data Source

Data Source

Data SourceConnectionPool

Database

①④⑤

JDBC Cliente.g. Servlet,EJB,etc

“DataSource.getConnection();”

~

In-Pool⑥ テスト用SQLクエリー

クエリー実行結果

接続の予約テスト(TestConnectionsOnReserve):有効

テスト対象のテーブル(TestTableName):”SQL <任意のSQLステートメント>”

Page 12: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 12

Oracle JDBC

Page 13: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 13

Oracleへのクライアントアクセス

Service

Oracle Net Listener

Ora

cle

Dat

abas

e

Serv

ice

• キーワードは 「サービス」、「リスナー」

アプリケーションは“サービス”につなぎに行く

Page 14: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 14

Oracle JDBCによるコネクションの取得

WebLogicApplication

接続取得要求

接続生成

サーバプロセスとの接続を確立

2

3

接続オブジェクトをアプリケーションに渡す

5 4

ListenerListener

Server Procs.

OracleDatabase instance

SGA

…LGWnDBWn

1 getConnection()

WebLogicdata source

Page 15: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved.Copyright© 2009, Oracle. All rights reserved. Oracle Confidential 15

(参考)Oracleが提供するJDBCデータソース

• 3種類のJDBCデータソース

• 想定する利用ケースが異なる Connection

Connection

Connection

ConnectionPool

Connection

Connection

Connection

ConnectionPool

Data Source

JDBCDriver

ConnectionPoolDataSource API

PhysicalPooledConnectionobject

( javax.sql.ConnectionPoolDataSource )

( javax.sql.PooledConnection )

Connection

Connection

Connection

WebLogic ServerConnection Pool

WebLogic ServerDataSource

Connection

Connection

Connection

Universal Connection Pool

プール対応データソース

Connection

Connection

Connection

暗黙的接続キャッシュ

OracleDataSource

JDBCドライバパッケージ

のデータソース機能Oracle WebLogic Server Universal Connection Pool for JDBC

Page 16: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved.Copyright© 2009, Oracle. All rights reserved. Oracle Confidential 16

(参考)Oracleが提供するJDBCデータソースWebLogic Serverにおける各データソースのサポート

• Oracle Database提供のデータソースのサポートは限定的• WLSは自身のデータソース/接続プールと連動してJava EEコンテナとしての

機能(トランザクション等)を提供します。

Connection

Connection

Connection

WebLogic ServerConnection Pool

WebLogic ServerDataSource

Connection

Connection

Connection

Universal Connection Pool

プール対応データソース

Connection

Connection

Connection

暗黙的接続キャッシュ

OracleDataSource

Oracle WebLogic Server

Universal Connection Pool for JDBC

JDBCドライバパッケージ

のデータソース機能

WLSでは非サポート一部の利用シナリオで限定的に利用可能

Page 17: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 17

Multi Data Source を使用したRACへの接続方法

Page 18: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 18

ポイント

• WebLogic Serverのデータソースによるデータアクセスの単位

は「データベース・インスタンス」• データソースとインスタンスは1:1の関係

• Oracleでは「サービス」での接続を想定。• データソースとインスタンスは1:Nの関係

接続の考え方が違うので構成に工夫が必要

Page 19: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 19

では、どのように構成するか?

WebLogic Server

JNDI Tree

Internal Clients(e.g. Servlets)

ExternalClients

LookupData Source

LookupData Source

Multi Data Source for Service A

Data Source

Data Source

RA

C D

atab

ase

Serv

ice

A

Data Source

Serv

ice

ASe

rvic

e A

Serv

ice

A

Data Source

Ans. サービスを提供するインスタンス毎にデータソースを定義する

Page 20: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 20

接続記述子(JDBC URL)の記述

接続先インスタンスに対してローカルのリスナーを指定

サービスとインスタンスのセットで指定

jdbc:oracle:thin:@(

DESCRIPTION = (ADDRESS =

(PROTOCOL = TCP)(HOST = racnode01-vip.jp.oracle.com)(PORT = 1521)) (CONNECT_DATA =

(SERVER = DEDICATED) (SERVICE_NAME = RACSRVC )(INSTANCE_NAME=inst1)

))

Multi Data Source 

Data Source2

Data Source1

Data Source3

vipを使ってリスナーに接続

Page 21: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 21

Multi Data Source でRACを構成する上での注意点

Page 22: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 22

接続プール

• 待機系のデータベースインスタンスに対する接続プールの初期容量(InitialCapacity)は0にします。• 0にしないとサーバ起動時にデータソースの初期化に失敗してマルチデ

ータソースから切り離されてしまいます。

Page 23: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 23

接続プール

• リスナーに大量の接続要求が一度にくると接続の生成に失敗する場合があります。• WebLogic Serverはデータソースのエラーと認識します。

• 回避策: Oracle Net Servicesの接続タイムアウト( oracle.net.CONNECT_TIMEOUT ) を設定(ミリ秒単位で指定)。

<properties><property>

<name>user</name><value>xxxx</value>

</property><property>

<name>oracle.net.CONNECT_TIMEOUT</name><value>10000</value>

</property></properties>

「管理コンソール」→「データソース」→「接続プール」タブ

Page 24: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 24

ヘルスチェックの負荷を調整するには

• テストの間隔と頻度を調整できます。

HighPerformance

HighAvailable

TestConnectionsOnReserve(接続の事前テスト)

TestFrequencySecondsDS

OFF ON

長く設定 短く設定

SecondsToTrustAnIdlePoolConnectionで調整

Multi Data Source

DataSource

Data SourceConnectionPool

DataSourceData Source

ConnectionPool

Page 25: GridLink for Oracle Real Application Clusters「第5回WebLogic Server勉強会@東京」資料

Copyright© 2009, Oracle. All rights reserved. 25

(補足)RACの分散トランザクションサポート

• Oracle RAC 11g R1から分散トランザクション情報をインスタン

ス間で共有することが可能になっています。• WebLogic ServerもRACの提供する分散トランザクションサポートを部分

的に使っています。

• RACのDTSサービスに対してWebLogic Serverのサービス対

応データソースを構成することはサポートされていません。