<Insert Picture Here>
Oracle DB接続ミドルウェアを理解する
日本オラクル株式会社
Copyright© 2011, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報
提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事
項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、
購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機
能の開発、リリースおよび時期については、弊社の裁量により決定されます。
Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標また は商標です。他社名又は製品名は、それぞれ各社の商標である場合があります。Agenda
• データベース接続ミドルウェアとは?
•
Oracle Databaseに対応したミドルウェア
•
データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
Copyright© 2011, Oracle. All rights reserved.
SQLを標準言語として使用するアプリケーションがデータベースにアクセスできるように
するものです(アプリケーションとデータベースの仲介役)
•Javaアプリケーション •VBアプリケーション •.NETアプリケーション インターフェース・ミドルウェア データベース 解釈して 伝える 結果を 聞く 解釈して 伝える 要求データベース接続ミドルウェアって何?
I/F Middleware 4Agenda
•
データベース接続ミドルウェアとは?
• Oracle Databaseに対応したミドルウェア
•
データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
Copyright© 2011, Oracle. All rights reserved.
Oracle Databaseに対応したミドルウェア
さまざまな言語に対応したミドルウェアがあります。
JavaアプリケーションJDBC
ODBC
OLE DB
Provider
Oracle Objects for OLEODP.NET
VB, C, C++,アプリケーション Excel 6Javaを利用する場合
>
Oracleは、Type2とType4を提供しています
Javaアプリケーション JDBC Thick (type 2) JDBC Thin (type 4) 長所 •一般的にはThinより速いと言われている (データベース固有のネイティブAPIを使用する為) 短所 •Oracle Client(OCI)が必要 •Pure Javaじゃない 長所 •JDBCドライバのみなので、実装配布が容易 •Pure Java 短所 •すべてJDBCドライバ内に実装されているので、 サイズが大きい Oracle Net ServicesOracle Net Services クライアント側
Copyright© 2011, Oracle. All rights reserved.
Windows系プラットフォームの場合
Cコンパイラ COBOLコンパイラ Pro*C Pro*COBOL Oracle Objects for OLE•基本的に開発に慣れているM/Wを使用します。
•間に多くのものが入らないほうが、基本的に速いです
Oracle Net Services
Oracle Net Services クライアント側
サーバー側
Visual Basic/ASP/Access .NET
ODP.NET OLE DB ODBC ODBC OLE DB .NET Bridge (参考情報)
Oo4o, OLE DB, ODBC, ODP.NETは、
ODAC(Oracle Data Access Component)として 提供されています
提供するベンダーが違うだけで、同じテクノロジーを使用しているものがあります
.NET
提供ベンダー 名前 特徴Microsoft .Net Managed Provider
for Oracle MS社が提供しているので、Visual Studioの中に同梱さ れている。
Oracle Oracle Data Provider
for .NET(ODP.NET) Oracleが提供しているので、Oracle固有の機能などが追 加で実装され、Oracleに最適 化されている
OLE DB
提供ベンダー 名前 特徴
Microsoft OLE DB Provider for Oracle
特になし Oracle Oracle Data Provider for
OLE DB Oracleが提供しているので、Oracleに最適化されてれいる
Windows系プラットフォームの場合
Copyright© 2011, Oracle. All rights reserved. 10
Agenda
•
データベース接続ミドルウェアとは?
•
Oracle Databaseに対応したミドルウェア
• データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
OTN ソフトウェアダウンロードページからダウンロード
http://www.oracle.com/technology/global/jp/software/index.html
Copyright© 2011, Oracle. All rights reserved. 12
Agenda
•
データベース接続ミドルウェアとは?
•
Oracle Databaseに対応したミドルウェア
• データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
JDBCのダウンロード
ダウンロードしたjarファイルをクラスパスに含めて利用します。
Copyright© 2011, Oracle. All rights reserved. 14
ドライバ・クラス名を指定し、JDBCドライバをロード。JDBCドライバ・クラスの完全パッケー
ジ名を指定してください。
Class.forName("oracle.jdbc.OracleDriver");接続するデータベースを指定します。
Connection connection=DriverManager.getConnection(" jdbc:oracle:thin:@localhost:1521:orcl11gr2","scott","tiger");JDBCの利用方法
Agenda
•
データベース接続ミドルウェアとは?
•
Oracle Databaseに対応したミドルウェア
• データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
Copyright© 2011, Oracle. All rights reserved. 16
ODACにはJDBC以外の接続ミドルウェアが含まれています。
Oracle Client / 接続ドライバをインストールする
Copyright© 2011, Oracle. All rights reserved. 18
Oracle Client / 接続ドライバをインストールする
大量に導入する
→ Instant Client XCopy により効率的な配布が可能
•
OUI
–
Oracle GUIベースの インストール
–
DB Server, Client共、GUIベースで容易にインストール
•
Silent install
–
インストール作業の自動化
–
Microsoft SMS もしくは、他のインストール製品を利用して配布可能
–
大量クライアントの配布に最適
• Instant Client XCopy
–
ファイルコピーとバッチの実行でインストール可能
Oracle Client / 接続ドライバをインストールする
XCopy Install.bat
install.bat を実行して ODAC 製品をインストールおよび構成
・ODAC 製品全てをインストール場合
install.bat all c:¥oracle odac
・ODP.NET 2.x のみをインストールする場合
Install.bat odp.net20 c:¥oracle odac
Copyright© 2011, Oracle. All rights reserved. 20
接続情報を設定する
設定した接続文字列が後で必要になります
tnsnames.ora
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = host1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )Connect
ユーザ名 / パスワード@
ORCL
リスナー
ネットワーク
定義ファイル
host1
コンポーネント名 : Oracle.DataAccess
Visual StudioからODP.NETの利用
Copyright© 2011, Oracle. All rights reserved.
Visual StudioからODP.NETの利用(データ ソースの指定)
データ プロバイダ名 : Oracle Data Provider for .NET
ODP.NETでのコネクション
①ODP.NETを修飾を行わずに使用できるようにImportsステートメントを実行
②OracleConnectionインスタンスの生成
③サービス名、ユーザーID、パスワードをConnectionプロパティに設定
④Openメソッドを実行して、接続を確立する
Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.TypesPublic Class fmMainMenu
Inherits System.Windows.Forms.Form (略)
Private Sub DbConnect()
Dim conn As New OracleConnection
conn.ConnectionString = "Data Source=orcl;User id=scott;Password=tiger" conn.Open() End Sub
①
②
③
④
Copyright© 2011, Oracle. All rights reserved.
tnsnames.oraを使用しない接続
24
Dim cnn As New OracleConnection
Dim sb As New System.Text.StringBuilder
sb.Append("User Id=scott; Password=tiger;")
sb.Append("Data Source=(DESCRIPTION = (ADDRESS_LIST = ") sb.Append("(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)")
sb.Append("(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)") sb.Append("(SERVICE_NAME = orcl)));") cnn.ConnectionString = sb.ToString cnn.Open() MsgBox("Connect OK!!") cnn.Close()
tnsnams.oraの内容
をそのまま記述
.NET 関連のセキュリティ機能
Windows Native認証を利用したユーザー認証
Dim cnn As New OracleConnection
cnn.ConnectionString = "User Id=/;Data Source=orcl;DBA Privilege=SYSDBA" cnn.Open() MsgBox("Connect OK!!") cnn.Close()
①ConnectionString属性のUser Idを / に設定することにより、データベー
ス・ユーザーの認証にWindowsユーザー・ログイン資格証明を使用できま
す。また、DBA Privilege属性を介してSYSDBA権限またはSYSOPER権限
のいずれかを使用してOracleデータベースに接続
①
ODP.NET 11.1.0以上では、OS認証でも接続プーリングが有効
Copyright© 2011, Oracle. All rights reserved. 26
上記のサンプルコードを実行する前に、プロキシ認証を行うためのユーザーを作成します
.NET 関連のセキュリティ機能
Proxy認証を利用したユーザー認証
Dim conn As New OracleConnection( _
"User Id=user1;Password=xxxx;Proxy User Id=proxyuser;" + _ "Proxy password=xxxxxxxxxx;Data Source=orcl")
conn.Open() conn.close()
プロキシ認証を行うた
めの接続文字列
CREATE USER user1 IDENTIFIED BY oracle; GRANT CONNECT,RESOURCE TO user1;
GRANT SELECT ON proxyuser.table1 TO user1;
Agenda
•
データベース接続ミドルウェアとは?
•
Oracle Databaseに対応したミドルウェア
• データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
Copyright© 2011, Oracle. All rights reserved. 28
ODBCの設定
ODBCの設定
Copyright© 2011, Oracle. All rights reserved. 30
ODBCの設定
Agenda
•
データベース接続ミドルウェアとは?
•
Oracle Databaseに対応したミドルウェア
• データベース接続ミドルウェアの利用方法
–
JDBC
–
ODP.NET
–
ODBC
–
OO4O
Copyright© 2011, Oracle. All rights reserved. 32
OO4Oの設定
参照設定
OO4Oの利用
OraSession
OraDatabase
OraParameter
OraDynaset
OO4O自体との接続を管理す
るオブジェクト
Oracle Databaseとの接続情
報を管理するオブジェクト
ホスト変数を使用するため
のオブジェクト
Oracleのレコードに対応し
たオブジェクト
Oracle
9i/10g/11g
Copyright© 2011, Oracle. All rights reserved.
OO4Oからデータベースに接続
1.
OraSessionClassをオブジェクト化して、
OracleInProcServerとの接続を確立する。
2.
Databaseとの接続を管理するOraDatabaseオブジェクト
3.
サービス名、ユーザーID、パスワードを指定して
OpenDatabase メソッドを実行し、OraDatabaseオブジェク
トを生成する。
34Dim OraSession As New OraSessionClass
Dim OraDatabase As OraDatabase
Set OraDatabase = OraSession.OpenDatabase( _
"orcl", "scott/tiger", dbOption.ORADB_DEFAULT)
①
②
③
まとめ
•
データベース接続ミドルウェアとは?
–
アプリケーションからデータベースに接続するために必要です。
–
言語に対応し、さまざまなデータベース接続ミドルウェアがあります。
データベース接続ミドルウェアの特徴、メリットを生かして、
アプリケーションを開発してください。
Copyright© 2011, Oracle. All rights reserved. 36
OTN×ダイセミ でスキルアップ!!
※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。 ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。
Oracle Technology Network(OTN)
を御活用下さい。
・一般的な技術問題解決方法などを知りたい!
・セミナ資料など技術コンテンツがほしい!
一般的技術問題解決にはOTN掲示版の
「データベース一般」
をご活用ください
http://otn.oracle.co.jp/forum/index.jspa?categoryID=2
過去のセミナ資料、動画コンテンツはOTNの
「OTNセミナー オンデマンド コンテンツ」
へ
http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html
※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。 ダイセミ資料はOTNコンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。OTNセミナー オンデマンド コンテンツ
期間限定にて、ダイセミの人気セミナーを動画配信中!!
ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。
※掲載のコンテンツ内容は予告なく変更になる可能性があります。 期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。OTN オンデマンド
Copyright© 2011, Oracle. All rights reserved.
オラクル クルクルキャンペーン
38 Enterprise Editionはここが違う!! • 圧倒的なパフォーマンス! •データベース管理がカンタン! •データベースを止めなくていい! • もちろん障害対策も万全! Oracle Databaseの ライセンス価格を大幅に抑えて ご導入いただけます詳しくはコチラ
http://www.oracle.co.jp/campaign/kurukuru/index.html
あの
Oracle Database Enterprise Edition
が超おトク
!!
お問い合わせフォーム http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28 多くのお客様でサーバー使用期間とされる 5年間にライセンス期間を限定 •期間途中で永久ライセンスへ差額移行 •5年後に新規ライセンスを購入し継続利用 •5年後に新システムへデータを移行
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
Oracle Direct
検索
あなたにいちばん近いオラクル
Oracle
Direct
まずはお問合せください
Web問い合わせフォーム
フリーダイヤル
専用お問い合わせフォームにてご相談内容を承ります。
※フォームの入力には、Oracle Direct Seminar申込時と同じ ログインが必要となります。 ※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録さ れている連絡先が最新のものになっているか、ご確認下さい。
0120-155-096
※月曜~金曜 9:00~12:00、13:00~18:00 (祝日および年末年始除く)システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Copyright© 2011, Oracle. All rights reserved. 40