40
<Insert Picture Here> Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Oracle DB接続ミドルウェアを理解する · Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

<Insert Picture Here>

Oracle DB接続ミドルウェアを理解する

日本オラクル株式会社

Oracle Direct Seminar

Page 2: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 2

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

Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標または商標です。他社名又は製品名は、それぞれ各社の商標である場合があります。

Page 3: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 3

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 4: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

SQLを標準言語として使用するアプリケーションがデータベースにアクセスできるように

するものです(アプリケーションとデータベースの仲介役)

•Javaアプリケーション

•VBアプリケーション

•.NETアプリケーション

インターフェース・ミドルウェア

データベース

解釈して

伝える

結果を

聞く

解釈して

伝える

要求

データベース接続ミドルウェアって何?

I/F

Middleware

4

Page 5: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 5

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 6: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

Oracle Databaseに対応したミドルウェア

さまざまな言語に対応したミドルウェアがあります。

Javaアプリケーション

JDBC ODBCOLE DB

Provider

Oracle

Objects

for OLE

ODP.NET

VB, C, C++,アプリケーション Excel

6

Page 7: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

Javaを利用する場合

>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

Services

Oracle Net Services

クライアント側

サーバー側

7

Page 8: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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.NETOLE DB

ODBC

ODBC OLE DB

.NET Bridge

(参考情報)

Oo4o, OLE DB, ODBC, ODP.NETは、

ODAC(Oracle Data Access Component)として

提供されています

8

Page 9: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

提供するベンダーが違うだけで、同じテクノロジーを使用しているものがあります

.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系プラットフォームの場合

9

Page 10: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 10

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 11: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 11

OTN ソフトウェアダウンロードページからダウンロード

http://www.oracle.com/technology/global/jp/software/index.html

各ミドルウェアのダウンロード

Page 12: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 12

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 13: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 13

JDBCのダウンロード

ダウンロードしたjarファイルをクラスパスに含めて利用します。

OCIドライバの場合は、Oracle Clientが含まれている必要があります。

Page 14: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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の利用方法

Page 15: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 15

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 16: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 16

ODACにはJDBC以外の接続ミドルウェアが含まれています。

Oracle Data Access Components (ODAC)のインストール

Page 17: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

Oracle Client / 接続ドライバをインストールするODACのインストール:GUIで導入できます

17

Page 18: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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

– ファイルコピーとバッチの実行でインストール可能

– 大量クライアントの配布に最適

Page 19: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 19

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

Page 20: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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

Page 21: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

コンポーネント名 : Oracle.DataAccess

Visual StudioからODP.NETの利用

21

Page 22: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

Visual StudioからODP.NETの利用(データ ソースの指定)

データプロバイダ名 : Oracle Data Provider for .NET

22

Page 23: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

ODP.NETでのコネクション

①ODP.NETを修飾を行わずに使用できるようにImportsステートメントを実行

②OracleConnectionインスタンスの生成

③サービス名、ユーザーID、パスワードをConnectionプロパティに設定

④Openメソッドを実行して、接続を確立する

23

Imports Oracle.DataAccess.Client

Imports Oracle.DataAccess.Types

Public 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

③④

Page 24: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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の内容をそのまま記述

Page 25: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 25

.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認証でも接続プーリングが有効

Page 26: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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;

ALTER USER user1 GRANT CONNECT THROUGH proxyuser;

Page 27: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 27

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 28: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 28

ODBCの設定ODBC データソースアドミニストレータの設定(1)

Page 29: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 29

ODBCの設定ODBC データソースアドミニストレータの設定(2)

Page 30: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 30

ODBCの設定ODBC データソースアドミニストレータの設定(3)

Page 31: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 31

Agenda

• データベース接続ミドルウェアとは?

• Oracle Databaseに対応したミドルウェア

• データベース接続ミドルウェアの利用方法– JDBC

– ODP.NET

– ODBC

– OO4O

Page 32: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 32

OO4Oの設定参照設定

Oracle InProc Server x.0 Type Library を参照設定

Page 33: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

OO4Oの利用

33

OraSession

OraDatabase

OraParameter

OraDynaset

OO4O自体との接続を管理するオブジェクト

Oracle Databaseとの接続情報を管理するオブジェクト

ホスト変数を使用するためのオブジェクト

Oracleのレコードに対応したオブジェクト

Oracle 9i/10g/11g

Page 34: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

OO4Oからデータベースに接続

1. OraSessionClassをオブジェクト化して、OracleInProcServerとの接続を確立する。

2. Databaseとの接続を管理するOraDatabaseオブジェクト

3. サービス名、ユーザーID、パスワードを指定してOpenDatabase メソッドを実行し、OraDatabaseオブジェクトを生成する。

34

Dim OraSession As New OraSessionClass

Dim OraDatabase As OraDatabase

Set OraDatabase = OraSession.OpenDatabase( _

"orcl", "scott/tiger", dbOption.ORADB_DEFAULT)

Page 35: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved.

まとめ

35

• データベース接続ミドルウェアとは?– アプリケーションからデータベースに接続するために必要です。

– 言語に対応し、さまざまなデータベース接続ミドルウェアがあります。

データベース接続ミドルウェアの特徴、メリットを生かして、

アプリケーションを開発してください。

Page 36: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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コンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。

Page 37: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 37

OTNセミナー オンデマンド コンテンツ期間限定にて、ダイセミの人気セミナーを動画配信中!!

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

※掲載のコンテンツ内容は予告なく変更になる可能性があります。期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。

OTN オンデマンド

Page 38: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

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年後に新システムへデータを移行

Page 39: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 39

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プロジェクト全般の相談窓口としてご支援いたします。

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

Page 40: Oracle DB接続ミドルウェアを理解する ·  Oracle DB接続ミドルウェアを理解する 日本オラクル株式会社 Oracle Direct Seminar

Copyright© 2011, Oracle. All rights reserved. 40

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

ては、弊社の裁量により決定されます。

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