Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt

Similar documents
Microsoft PowerPoint - MySQL-backup.ppt

Microsoft PowerPoint - 3-MySQL50_JDBC.ppt

WebOTXでのMySQL利用方法

intra-mart Accel Platform

今から間にあう仮想化入門とXenについて

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

アプリケーションサーバ JBoss超入門

JEE 上の Adobe Experience Manager forms のインストールおよびデプロイ(WebLogic 版)

アプリケーションサーバ用データベースアクセス 汎用コントロール Version Copyright(c) 2004 MRO co;ltd All Rights Reserved

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

WebOTX V6 JDBCアプリケーションのトラブルシューティング(JDBCデータソース)

今さら聞けない!? Oracle入門 ~後編~

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

FileMaker ODBC and JDBC Guide

スライド 1

untitled

mySQLの利用

Oracle、MS Access または SQL DB と CVP スタンドアロン配備を統合方法

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

FileMaker 15 ODBC と JDBC ガイド

WebOTX V6 J2EEアプリケーションのトラブルシューティング

Arcserve Replication/High Availability 製品の仕組み

FileMaker 16 ODBC と JDBC ガイド

データアダプタ概要

データベースアクセス

今さら聞けない!? Oracle入門 ~前編~

Oracle Application Server 10g Release 3(10.1.3)- アジャイル・エンタープライズ(俊敏な企業)のためのデータ・アクセス

目次 はじめに インストール JDBC ドライバの配置 初期登録ユーザー バージョンアップ 評価版の制限....8 参考.JDBC ドライバの入手と設定....9 ) I2C Co.,Ltd.. All

TestDesign for Web

Oracle データベース移行計画アセスメント:移行前

FileMaker ODBC と JDBC ガイド

tkk0408nari

VB実用Ⅲ⑩ フリーデータベースⅡ

OpenRulesモジュール

HeartCoreインストールマニュアル

JBoss Application Server : MySQL Server利用手順書

Microsoft Word - tutorial3-dbreverse.docx

はじめにお読みくださいfor HP Smart Zero Client v5.0

MySQLにおけるシステム運用時のポイント

HP OpenSource ブループリント

JDBCアクセス

Microsoft Word - Android_SQLite講座_画面800×1280

MVP for VB が語る C# 入門


MySQL5.0データベース ログファイルおよびステータスの収集

PowerPoint Presentation

PowerPoint プレゼンテーション

OpenRulesモジュール

スライド 1

IceWall SSO 10.0 Enterprise Edition 動作環境

IceWall SSO 10.0 サポートマトリクス

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

pg_monz 監視アイテム一覧 :Template App PostgreSQL Template App PostgreSQL アプリケーション LLD アイテムトリガー監視タイプ更新間隔ヒストリトレンドデフォルト説明ステータス pg.get pgsql.get.pg.bgwriter Zabb

PowerPoint Presentation


FileMaker ODBC and JDBC Guide

IBM FormWave for WebSphere

Microsoft Lync シンクライアント設定手順書

HULFT-DataMagic Ver2.2.0 製品対応OS

Apache JMeterで負荷試験をしよう!

// JDBC // CallableStatement cs = null; try { cs = conn.preparecall("{call DUMMY_PROC(?,?)}"); cs.setstring(1, "This is a test"); cs.registeroutparame

操作ログ仕様 Version 6.1

nakanojoP01

IWF30SupportMatrix_v3.8.xlsx

Attain3 インストール説明書

HP Device Manager4.7インストール・アップデート手順書

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供

intra-mart ver /10/31 1. / intra-mart 3.2 AND intra-mart (JavaMail ) ( )

intra-mart Web for SellSide ver /03/31 Oracle MS-SQL Server IBM DB2 MS-SQL Server IBM DB2 Client Side JavaScript Server Side JavaScript URL -

新・明解Java入門

PowerPoint Presentation

Oracle WebLogic Server パフォーマンス・チューニング

WebアプリケーションサーバJBoss入門

Visual Basic Oracle Database 11 Release 1

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

intra-mart im-JavaEE Framework

PowerPoint プレゼンテーション

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

ユニット・テストの概要

Java DataBase Connectivity Sun ONE Studio 4 Sun Microsystems, Inc Network Circle Santa Clara, CA U.S.A Part No

ベース0516.indd

Procedure-for-Azure-v1.1

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

PowerPoint Presentation

Q&A集

Getting Start mdc (Mail Destination Confirm) Getting Start mdc (Mail Destination Confirm) Rev /11/3 目次 Getting Start mdc (Mail Destination Con

Microsoft Word - COP_MasterSim_Installation_Supplement_A00.doc

Java Pet Store 2.0 を WebOTX 上で 動作させる方法 2008 年 9 月 初版 NEC 第二システムソフトウェア事業部 0

2010年4月~6月 協業実績報告

Dockerの商用サービスでの利用事例紹介

Microsoft Word - PHP_SQLServer2012

PowerPoint プレゼンテーション

スライド 1

検証報告書

PowerPoint Presentation

目次 Oracle Database および RAC における BIG-IP LTM の導入前提条件と設定上の注意...1 製品バージョンおよびバージョン履歴...1 設定例...2 Oracle Database に関する BIG-IP LTM の設定... 3 Oracle ヘルスモニタの作成.

<4D F736F F D F345F D926E88E698418C6782A982E793648E7194C58EBE95618AC7979D8EE892A082CC B835E936F985E5F E646F63>

Transcription:

MySQL5.0 JDBC ドライバフェイルオーバ機能 日本ヒューレットパッカード株式会社 オープンソース コンピテンシ センター 2006 年 8 月 31 日 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice

目次 1. DataSourceとは? 2. コネクションプールとは? 3. MySQLフェイルオーバ機能 4. MySQL JDBCドライバフェイルオーバ機能 5. コネクションプール利用時の問題 2 平成 18 年 9 月 5 日

DataSource とは? A factory for connections to the physical data source that this DataSource object represents. JSE5.0 JavaDoc: javax.sql.datasource 物理的なデータソースへのコネクション ファクトリ データベースへのコネクションを取得できる 通常 J2EEアプリケーションサーバにリソースとして設定される JNDIを利用してDataSourceを取得する 3 平成 18 年 9 月 5 日

DataSource 利用 : 全体像 JNDI DB Client APP a.lookup 1. 利用 b. 検索 DataSource 2. 利用 JDBC Driver 3. 生成 6. 利用 8.Close 5. 払い出し 9. 払い戻し 4. 接続 DB 10. 破棄 7. クエリ実施 破棄 4 平成 18 年 9 月 5 日

DataSource 利用 : 動作 JNDI DB Client APP a.lookup 1. 利用 b. 検索 DataSource 2. 利用 JDBC Driver 3. 生成 6. 利用 8.Close 5. 払い出し 9. 払い戻し 重要! 7. クエリ実施 4. 接続 破棄 DB 5 平成 18 年 9 月 5 日

コネクションプールとは? DataSource を通して利用 の再利用 作成 接続処理を省く コネクションプール利用時と非利用時に コード上の差は存在しない 6 平成 18 年 9 月 5 日

コネクションプール利用の全体像 JNDI DB Client APP a.lookup 1. 利用 b. 検索 DataSource 2. 利用 JDBC Driver 3. 生成 6. 利用 8.Close 4. 接続 DB 5. 払い出し 9. 払い戻し 7. クエリ実施 7 平成 18 年 9 月 5 日

の再利用 DataSource の設定 の最小保持数 プールで保持する最小の の数 の最大保持数 プールで保持する最大の の数 再利用 プールされているを払い出す 利用後 = Closeする時にプールに戻す 8 平成 18 年 9 月 5 日

の再利用 DB Client APP 1. 利用 DataSource JDBC Driver 3. 利用 5.Close 2. 払い出し DB 6. 払い戻し 4. クエリ実施 9 平成 18 年 9 月 5 日

の再利用 ( コネクションがない場合 ) DB Client APP 1. 利用 DataSource A. 利用 JDBC Driver B. 生成 3. 利用 5.Close 2. 払い出し 6. 払い戻し C. 接続 の最大保持数を超えて 新規作成することはな 4. クエリ実施い DB 10 平成 18 年 9 月 5 日

MySQL フェイルオーバ機能 フェイルオーバ概要 MySQL レプリケーション構成 11 平成 18 年 9 月 5 日

フェイルオーバ概要 1. 接続先サーバに障害発生 2. 障害検知 3. 接続先サーバ切り替え Client サービス続行 接続先切り替え 障害発生 Server1 Server2 12 平成 18 年 9 月 5 日

フェイルオーバ概要種類 サーバ主導 サーバ側が障害を検知し サーバを切り替える HP Serviceguard for Linux など ネットワーク機器主導 ネットワーク機器が障害を検知し 接続先を切り替える F5 BIG-IP などのネットワーク機器 クライアント主導 クライアントが障害を検知し サーバを切り替える MySQL JDBC ドライバの機能利用など 13 平成 18 年 9 月 5 日

MySQL レプリケーション構成 読み出し 障害発生 接続先切り替え読み出し 読み出し 書き込み 書き込み Master Slave1 Slave2 Slave3 レプリケーション : データのコピー この部分のフェイルオーバを実施する 14 平成 18 年 9 月 5 日

MySQL JDBC ドライバ フェイルオーバ機能 JDBC URL に 2 つ以上のデータベースサーバを指定 接続確立時にフェイルオーバを可能にする 15 平成 18 年 9 月 5 日

MySQL JDBC ドライバフェイルオーバ機能概要 (1) JNDI a.lookup 1. 利用 DB Client APP b. 検索 DataSource 2. 利用 MySQL レプリケーション構成の Slave DB 群 JDBC Driver 3. 生成 6. 利用 8.Close 5. 払い出し 9. 払い戻し 7. クエリ実施 4. 接続 DB DB JDBC ドライバのフェイルオーバ機能で切り替え DB クエリ実施時の障害は対応できない 16 平成 18 年 9 月 5 日

MySQL JDBC ドライバフェイルオーバ機能概要 (2) DataSource 1. 利用 JDBC Driver MySQL レプリケーション構成の Slave DB 群 2. 生成 接続失敗 DB1 接続失敗 DB2 成功! DB3 17 平成 18 年 9 月 5 日

MySQL JDBC ドライバのフェイルオーバ機能設定方法 JDBC URL を以下のように設定 jdbc:mysql://svr1,svr2,svr3/db Primary の接続先 : svr1 以降 svr2, svr3 の順に接続を試行 関連 JDBC プロパティ failoverreadonly (true/false, default=true) queriesbeforeretrymaster ( 回数 1 以上, default=50) secondsbeforeretrymaster ( 秒数 1 以上, default=30) initialtimeout ( 秒数 0 以上 *, default=2) maxreconnects ( 回数 1 以上 *, default=3) 18 平成 18 年 9 月 5 日

MySQL JDBC ドライバのフェイルオーバ機能フェイルオーバ後の振る舞い 同一のコネクションを利用し続けると Primary の接続先に接続しなおそうとする 条件 queriesbeforeretrymaster 指定回数の Query 実行後 secondsbeforeretrymaster 指定秒数経過後 接続が可能な場合 以降の Query は Master へ投げられる Primary への再接続無効化はできない 19 平成 18 年 9 月 5 日

MySQL JDBCドライバのフェイルオーバ機能フェイルオーバ後の振る舞い DB Client APP 利用 指定クエリ発行回数または指定秒数経過後 マスターへ再接続しようとする 接続失敗 initialtimeout 秒間隔で maxreconects 回接続を試みる DB1 接続失敗 DB2 通常のフェイルオーバ処理を開始 成功! 接続中! DB3 20 平成 18 年 9 月 5 日

MySQL JDBC ドライバのフェイルオーバ機能サンプルコード ( 非コネクションプール利用時 ) for (int count = 0; count < MaxCount; count ++) try { // 取得 // クエリ実施 break; // 成功 } catch (Exception e) { // 例外処理 } finally { } // for 文の中でも break 後でも必ず実施される if (conn!= null) try { conn.close(); } catch (Exception e) { } 21 平成 18 年 9 月 5 日

MySQL JDBC ドライバのフェイルオーバ機能振る舞い JNDI DB Client APP a.lookup 1. 利用 b. 検索 DataSource 2. 利用 JDBC Driver 3. 生成 6. 利用 8.Close 5. 払い出し 9. 払い戻し 4. 接続 DB DB DB 7. クエリ実施 22 平成 18 年 9 月 5 日

コネクションプール利用時の問題 コネクションプール利用時に障害 データベースアクセスができない場合の振る舞い その対応 JBossでの設定方法 Tomcatでの設定方法 23 平成 18 年 9 月 5 日

プール利用時の問題 概要図 DB Client APP 1. 利用 DataSource データベースアクセス障害の場合 全 が破棄されるまで 例外が発生しつづける JDBC Driver 3. 利用 5.Close 2. 払い出し DB SQL 例外 障害発生 4. クエリ実施 6. 破棄 24 平成 18 年 9 月 5 日

利用時の問題対応 J2EE アプリケーションサーバ側機能を利用 の払い出し時にデータベースアクセスを確認 A. 利用 DataSource JDBC Driver 1. 利用 DB Client APP B. 生成 3. 利用 5.Close 2. 払い出し 破棄 破棄 6. 払い戻し 4. クエリ実施 B. 接続確認 失敗 失敗 A. 接続確認 DB 25 平成 18 年 9 月 5 日

コネクションプール利用時 DB アクセス確認 JBoss での設定 接続確認用設定を追加 valid-connection-checker-class-name 接続確認用クラス名を設定 com.mysql.jdbc.integration.jboss.mysqlvalidchecker DataSource 設定例... <valid-connection-checker-class-name> com.mysql.jdbc.integration.jboss.mysqlvalidchecker </valid-connection-checker-class-name>... 26 平成 18 年 9 月 5 日

コネクションプール利用時 DB アクセス確認 Tomcat での設定 接続確認タイミング設定 testonborrow コネクションプールからコネクション取得時に接続を確認 true/false, default は true (validationquery 設定時のみ ) validationquery 接続確認用 Query デフォルトは空文字列, 通常 SELECT 1 で十分のはず... < Resource name="jdbc/testmysqlds"... validationquery="select 1" testonborrow="true" />... 27 平成 18 年 9 月 5 日

28 平成 18 年 9 月 5 日