Oracle Direct Seminar <Insert Picture Here> Oracle DB 接続ミドルウェアを理解する 日本オラクル株式会社
以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい オラクル製品に関して記載されている機能の開発 リリースおよび時期については 弊社の裁量により決定されます Oracle は 米国オラクル コーポレーション及びその子会社 関連会社の米国及びその他の国における登録商標または商標です 他社名又は製品名は それぞれ各社の商標である場合があります 2
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 3
データベース接続ミドルウェアって何? SQL を標準言語として使用するアプリケーションがデータベースにアクセスできるように するものです ( アプリケーションとデータベースの仲介役 ) インターフェース ミドルウェア VB アプリケーション.NET アプリケーション 要求 解釈して 伝える I/F Middleware 解釈して伝える結果を聞く Java アプリケーション データベース 4
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 5
Oracle Database に対応したミドルウェア さまざまな言語に対応したミドルウェアがあります Java アプリケーション VB, C, C++, アプリケーション Excel JDBC ODBC OLE DB Provider Oracle Objects for OLE ODP.NET 6
Java を利用する場合 >Oracle は Type2 と Type4 を提供しています Java アプリケーション JDBC Thick (type 2) JDBC Thin (type 4) クライアント側 Oracle Net Services サーバー側 Oracle Net Services 長所 一般的には Thin より速いと言われている ( データベース固有のネイティブ API を使用する為 ) 長所 JDBC ドライバのみなので 実装配布が容易 Pure Java 短所 Oracle Client(OCI) が必要 Pure Java じゃない 短所 すべて JDBC ドライバ内に実装されているので サイズが大きい 7
Windows 系プラットフォームの場合 C コンパイラ COBOL コンパイラ Visual Basic/ASP/Access.NET Pro*C Pro*COBOL Oracle Objects for OLE OLE DB ODBC ODBC.NET Bridge OLE DB ODP.NET クライアント側 Oracle Net Services サーバー側 Oracle Net Services 基本的に開発に慣れている M/W を使用します 間に多くのものが入らないほうが 基本的に速いです ( 参考情報 ) Oo4o, OLE DB, ODBC, ODP.NETは ODAC(Oracle Data Access Component) として提供されています 8
Windows 系プラットフォームの場合 提供するベンダーが違うだけで 同じテクノロジーを使用しているものがあります.NET 提供ベンダー名前特徴 Microsoft Oracle.Net Managed Provider for Oracle Oracle Data Provider for.net(odp.net) MS 社が提供しているので Visual Studio とかの統合が進んでいる Oracle が提供しているので Oracle 固有の機能とが追加で実装され Oracle に最適化されてれいる OLE DB Microsoft Oracle 提供ベンダー名前特徴 OLE DB Provider for Oracle Oracle Data Provider for OLE DB 特になし Oracle が提供しているので Oracle に最適化されてれいる 9
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 10
各ミドルウェアのダウンロード OTN ソフトウェアダウンロードページからダウンロード http://www.oracle.com/technology/global/jp/software/index.html 11
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 12
JDBC のダウンロード ダウンロードした jar ファイルをクラスパスに含めて利用します OCI ドライバの場合は Oracle Client が含まれている必要があります 13
JDBC の利用方法 ドライバ クラス名を指定し JDBC ドライバをロード JDBC ドライバ クラスの完全パッケージ名を指定してください Class.forName("oracle.jdbc.OracleDriver"); 接続するデータベースを指定します Connection connection=drivermanager.getconnection(" jdbc:oracle:thin:@localhost:1521:orcl11gr2","scott","tiger"); 14
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 15
各コンポーネントのダウンロード OTN-J.NET Developer Center からダウンロード可能 16
Oracle Data Access Components (ODAC) のインストール ODAC には JDBC 以外の接続ミドルウェアが含まれています 17
Oracle Client / 接続ドライバをインストールする ODAC のインストール :GUI で導入できます 18
Oracle Client / 接続ドライバをインストールする大量に導入する Instant Client XCopy により効率的な配布が可能 OUI Oracle GUIベースのインストール DB Server, Client 共 GUIベースで容易にインストール Silent install インストール作業の自動化 Microsoft SMS もしくは 他のインストール製品を利用して配布可能 大量クライアントの配布に最適 Instant Client XCopy ファイルコピーとバッチの実行でインストール可能 大量クライアントの配布に最適 19
Oracle Client / 接続ドライバをインストールする XCopy Install.bat 20
接続情報を設定する設定した接続文字列が後で必要になります tnsnames.ora ORCL = (DESCRIPTION = ) (ADDRESS_LIST = ) (ADDRESS = (PROTOCOL = TCP) (HOST = host1)(port = 1521)) (CONNECT_DATA = ) (SERVICE_NAME = orcl) ネットワーク定義ファイル リスナー host1 Connect ユーザ名 / パスワード @ORCL 21
Visual Studio から ODP.NET の利用 コンポーネント名 : Oracle.DataAccess 22
Visual Studio から ODP.NET の利用 ( データソースの指定 ) データプロバイダ名 : Oracle Data Provider for.net 23
ODP.NET でのコネクション Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types 1 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 2 3 4 1ODP.NETを修飾を行わずに使用できるようにImportsステートメントを実行 2OracleConnectionインスタンスの生成 3サービス名 ユーザー ID パスワードをConnectionプロパティに設定 4Openメソッドを実行して 接続を確立する 24
tnsname.ora を使用しない接続 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)));") tnsnams.ora の内容をそのまま記述 cnn.connectionstring = sb.tostring cnn.open() MsgBox("Connect OK!!") cnn.close() 25
.NET 関連のセキュリティ機能 Windows Native 認証を利用したユーザー認証 Dim cnn As New OracleConnection cnn.connectionstring = "User Id=/;Data Source=orcl;DBA Privilege=SYSDBA" cnn.open() 1 MsgBox("Connect OK!!") cnn.close() 1ConnectionString 属性の User Id を / に設定することにより データベース ユーザーの認証に Windows ユーザー ログイン資格証明を使用できます また DBA Privilege 属性を介して SYSDBA 権限または SYSOPER 権限のいずれかを使用して Oracle データベースに接続 ODP.NET 11.1.0 以上では OS 認証でも接続プーリングが有効 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; 27
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 28
ODBC の設定 ODBC データソースアドミニストレータの設定 (1) 29
ODBC の設定 ODBC データソースアドミニストレータの設定 (2) 30
ODBC の設定 ODBC データソースアドミニストレータの設定 (3) 31
Agenda データベース接続ミドルウェアとは? Oracle Databaseに対応したミドルウェア データベース接続ミドルウェアの利用方法 JDBC ODP.NET ODBC OO4O 32
OO4O の設定参照設定 Oracle InProc Server x.0 Type Library を参照設定 33
OO4O の利用 OraSession OraDatabase OraParameter OraDynaset OO4O 自体との接続を管理するオブジェクト Oracle Database との接続情報を管理するオブジェクト ホスト変数を使用するためのオブジェクト Oracle のレコードに対応したオブジェクト Oracle 9i/10g/11g 34
OO4O からデータベースに接続 Dim OraSession As New OraSessionClass Dim OraDatabase As OraDatabase Set OraDatabase = OraSession.OpenDatabase( _ "orcl", "scott/tiger", dboption.oradb_default) 1 2 3 1. OraSessionClass をオブジェクト化して OracleInProcServer との接続を確立する 2. Database との接続を管理する OraDatabase オブジェクト 3. サービス名 ユーザー ID パスワードを指定して OpenDatabase メソッドを実行し OraDatabase オブジェクトを生成する 35
まとめ データベース接続ミドルウェアとは? アプリケーションからデータベースに接続するために必要です 言語に対応し ざまざまなデータベース接続ミドルウェアがあります データベース接続ミドルウェアの特徴 メリットを生かして アプリケーションを開発してください 36
Oracle Direct 新サービスができました 新規 Oracle Direct Concierge ( 無償支援サービス ) WebLogic Server バージョンアップ支援サービス 旧 WebLogic ServerからWebLogic Server 11g への移行を検討しているお客様へ お客様の環境にあった移行の手順や 注意点をアドバイス致します Oracle Application Server その他アプリケーションサーバーからのOracle WebLogic Server への移行支援サービス Oracle Application Serverや その他のアプリケーションサーバーから WebLogic Server 11g への移行を検討してるお客様へ お客様の環境にあった移行の手順や 注意点をアドバイス致します Web システムボトルネック診断サービス Web システムの性能劣化に悩まされているお客様へ お客様の環境情報を基に問題の切り分けとアドバイスを致します お問い合わせフォーム http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 37
OTN ダイセミでスキルアップ!! 一般的な技術問題解決方法などを知りたい! セミナ資料など技術コンテンツがほしい! Oracle Technology Network(OTN) を御活用下さい http://otn.oracle.co.jp/forum/index.jspa?categoryid=2 一般的技術問題解決には OTN 掲示版の データベース一般 をご活用ください OTN 掲示版は 基本的に Oracle ユーザー有志からの回答となるため 100% 回答があるとは限りません ただ 過去の履歴を見ると 質問の大多数に関してなんらかの回答が書き込まれております http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html 過去のセミナ資料 動画コンテンツは OTN の OTN セミナーオンデマンドコンテンツ へ ダイセミ事務局にダイセミ資料を請求頂いても お受けできない可能性がございますので予めご了承ください ダイセミ資料は OTN コンテンツオンデマンドか セミナ実施時間内にダウンロード頂くようお願い致します 38
OTN セミナーオンデマンドコンテンツダイセミで実施された技術コンテンツを動画で配信中!! ダイセミのライブ感はそのままに お好きな時間で受講頂けます OTN オンデマンド 掲載のコンテンツ内容は予告なく変更になる可能性があります 期間限定での配信コンテンツも含まれております お早めにダウンロード頂くことをお勧めいたします 39
Oracle エンジニアのための技術情報サイトオラクルエンジニア通信 http://blogs.oracle.com/oracle4engineer/ 技術資料 ダイセミの過去資料や製品ホワイトペーパー スキルアップ資料などを多様な方法で検索できます キーワード検索 レベル別 カテゴリ別 製品 機能別 コラム オラクル製品に関する技術コラムを毎週お届けします 決してニッチではなく 誰もが明日から使える技術の あ そうだったんだ! をお届けします オラクルエンジニア通信 先月はこんな資料が人気でした Oracle Database 11gR2 RAC インストレーション ガイド ASM 版 Microsoft Windows x86-64 Oracle Database 11gR2 旧バージョンからのアップグレード 40
オラクルクルクルキャンペーン あの Oracle Database Enterprise Edition が超おトク!! Enterprise Edition はここが違う!! 圧倒的なパフォーマンス! データベース管理がカンタン! データベースを止めなくていい! もちろん障害対策も万全! Oracle Database のライセンス価格を大幅に抑えて ご導入いただけます 多くのお客様でサーバー使用期間とされる 5 年間にライセンス期間を限定 期間途中で永久ライセンスへ差額移行 5 年後に新規ライセンスを購入し継続利用 5 年後に新システムへデータを移行 詳しくはコチラ http://www.oracle.co.jp/campaign/kurukuru/index.html お問い合わせフォーム http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 41
あなたにいちばん近いオラクル Oracle Direct まずはお問合せください Oracle Direct 検索 システムの検討 構築から運用まで IT プロジェクト全般の相談窓口としてご支援いたします システム構成やライセンス / 購入方法などお気軽にお問い合わせ下さい Web 問い合わせフォーム フリーダイヤル 専用お問い合わせフォームにてご相談内容を承ります http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 フォームの入力には Oracle Direct Seminar 申込時と同じログインが必要となります こちらから詳細確認のお電話を差し上げる場合がありますので ご登録されている連絡先が最新のものになっているか ご確認下さい 0120-155-096 月曜 ~ 金曜 9:00~12:00 13:00~18:00 ( 祝日および年末年始除く ) 42
44