DB2 UDB for Linux, UNIX, and WindowsでのJava開発の 概要:バージョン8.1アップデート
by user
Comments
Transcript
DB2 UDB for Linux, UNIX, and WindowsでのJava開発の 概要:バージョン8.1アップデート
IBM ¦ DB2 バージョン8.1アップデート - Japan ● ● ホーム ● ビジネス・ソリューション ● ITサービス ● 製品 ● Japan サポート & ダウンロード ● [ 変更 ] ● My IBM 検索 ようこそ [ ログイン ] [ 登録 ] IBM Information Management software > DB2 Developer Domain > データベース (DB2) > DB2 UDB for Linux, UNIX, and WindowsでのJava開発の 概要:バージョン8.1アップデート Paul Zikopoulos / Grant Hutchison IBMカナダ 2003年7月 注記:これは「DB2とJava Database Connectivity (JDBC)の概要」のバージョン8.1アップデートです。 コンテンツ はじめに はじめに リレーショナル・データベースは、持続的なデータ・ストアを必要とする大半の アプリケーションにおいて中心的な役割を果たしますが、さまざまなプログラ DB2 UDBアプリケーショ ミング・モデル、フレームワーク、アーキテクチャーの開発と選択の背景にお ン開発の方法論 いて主だった役目を果たすものではありません。通常、アプリケーション開発 JavaからDB2へのアクセ の優先事項を決定する際の主な要因は、特定のショップに対してJ2EEと. ス方法 NETのいずれが望ましいかなどといった、リレーショナル・データベース・マ JDBCドライバーについて ネージメント・システム(RDBMS)の範囲外の問題となります。 の明確化 どのようなプログラミング・アーキテクチャーを採用するかはそれぞれの状況 Java Development Kits で異なりますが、DB2 Universal Database™の戦略の目的は、どのような選 (JDK)とJava Run Time 択においても最善のインテグレーションを提供することにあります。 Environments(JRE) この記事では、DB2 UDB環境におけるJDBCとSQLJの具体的トピックに焦 点を当てます。 一般的な質問(FAQ) DB2 UDBアプリケーション開発の方法論 やや単純化しすぎているかもしれませんが、現在のアプリケーション開発 は、以下のプログラミング・タイプが主流となっています。 ● ● ● 著者について Javaを使用した、J2EEプログラミング・モデルを基礎とするアプリケーションの開発。 最新のMicrosoft® APIセット(ADOとADO.net)を基礎とするWindows 、Web、WinForm、.Netベー スのアプリケーション開発。 C/C++プログラミング言語とODBC/CLIインターフェースを使ったアプリケーション開発 IBM ¦ DB2 バージョン8.1アップデート - Japan ● ● ● Borland Delphi/Kylixフレームワーク内でのアプリケーション開発。 Linux指向オープンソース・フレームワーク(Perl、Python、PHPなど)でのアプリケーション開発。 Webサービスを使ったクロスプラットフォーム・ビジネス・ロジックの開発。 DB2 UDBの優れた点は、これらのすべてのタイプをサポートしていることです。 Java™プログラマー向けに、DB2は、JDBCとSQLJという2種類のアプリケーション・プログラミング・イン ターフェース(API)を提供しています。JDBCは、Java 2, Standard Edition (J2SE) 仕様で定義されてい るJavaプログラミング言語の必須コンポーネントです。JDBCアプリケーションをDB2対応にするには、 規格に定義された各種Javaクラスとインターフェースの実装が必要です。この実装は、JDBCドライバー と呼ばれています。DB2 UDB for Linux, UNIX®and Windowsは、この用途のJDBCドラバーの完全な セットを提供しています。JDBCドライバーは、レガシー/CLIドライバーと新しいUniversal JDBC Drivers の2種類があります。 DB2 UDBのJavaサポートには、JDBCのサポートが含まれています。JDBCは、標準Javaメソッドを通じ てアプリケーションへのデータ・アクセスを提供するベンダー中立の動的SQLインターフェースです。 JDBCは、アプリケーション・コードのプリコンパイルや、DB2データベースへのパッケージのバインドを 必要としない点でDB2 CLIに似ています。ベンダー中立の標準として、JDBCアプリケーションは、今日 の異種混成ビジネス・インフラストラクチャーのニーズである移植性の向上をもたらします。JDBCアプリ ケーションの実行時に、ドライバーは、現在接続されているDB2データベース・サーバーに照合を行い SQLステートメントをバリデートします。アクセス中に問題があれば、対応するSQLSTATEとSQLCODE コードとともに、Java例外としてアプリケーションに報告されます。 SQLJは、Javaアプリケーションからのデータ・アクセス用の標準開発モデルであり、SQLJ APIは、SQL 1999仕様の中で定義されています。新しいUniversal JDBC Driverは、単一実装でJDBC、SQLJ両方の APIをサポートしており、JDBCとSQLJを同じアプリケーション内で相互運用することができます。SQLJ は、DB2パッケージ・レベルでのアクセスを、静的SQLステートメントを使って開発し、制御する、独自の 能力を提供します。 JavaからDB2へのアクセス方法 テーブルの列がIDENTITY属性で定義されているとき、そのテーブルに行を挿入すると、当該の列に対 応する数値が自動的に生成されます。 ● DB2 Server ❍ ❍ ● ブラウザー ❍ ● ストアード・プロシージャー(JDBCまたはSQLJ) SQL関数またはユーザー定義関数(JDBCまたはSQLJ) JDBCベースのアプレット(JDBC) J2EE Application Servers(WebSphere® Application Serverなど) ❍ ❍ ❍ Java ServerPages (JSP) (JDBC) Servlets(SQLJまたはJDBC) Enterprise JavaBeans (EJB)(SQLJまたはJDBC) IBM ¦ DB2 バージョン8.1アップデート - Japan 「実際に始めるにはどうすればよいか」という疑問もあることと思います。 最初に、DB2 UDB Application Developmentクライアントをインストールし、UNIX、Linux、Windows, z/ OS またはOS/400 上のDB2 UDBに接続します。DB2 UDB for z/OS™ またはDB2 UDB for OS/400® へのアクセスを予定している場合は、開発環境に対応するDB2 Connect™ 製品を使用します。DB2 UDB Application Developmentクライアントは、C、COBOL、Javaアプリケーションの開発に必要なあら ゆるドライバーを内蔵しています。 WebSphere Application ServerなどのJ2EEアプリケーション・サーバーを使用する多層アプリケーション の開発を予定している場合は、各アプリケーション・サーバーにDB2 UDB Runtime ClientまたはDB2 UDB Application Development Clientが必要となります。 アプリケーションの開発、テストの後、次のステップでは、開発トポロジーを決定します。仕様に沿って 多様なJDBCドライバー・アーキテクチャー・タイプが定義されています。提供されている各タイプのドラ イバー、Java Development Kit (JDK) バージョン、Java Runtime Environments (JRE) を見てみましょ う。 JDBCドライバーについての明確化 Javaについて一般的に混乱のもとになっているのは、Javaのバージョンに対応する、異なったバージョ ンのJDBCおよび異なったタイプのJDBCドライバーが存在するという事実です。さらに、Java Community Process (http://www.jcp.org) を通じて絶えず機能が拡張され、Java仕様の開発が常時継 続して行われています。 JDBCのバージョン DB2 Universal Database V8.1は、JDBC v2.1仕様とJDBC 3.0の一部をサポートしています。Universal JDBC DriverでJDBC 3.0仕様を完全にサポートする計画もあります。 JDBCドライバーは、J2EEソリューションのコンポーネントとして認定されています。ドライバー認定の結 果は常時Sunの互換性Webサイトに掲載されています。 JDBCドライバー・アーキテクチャー JDBCドライバー・アーキテクチャーには4つのタイプがあります。 Type Type Type Type 1 2 3 4 JDBC Type 1ドライバー JDBC Type 1ドライバーは、JDBC-ODBCブリッジをベースとしています。したがって、(Sunの提供する) このJDBCドライバーをODBCドライバーと併用することができます。IBMは、Type 1ドライバーを提供し ておらず、推奨環境ではありません。図1に、JDBC Type 1ドライバーの例を示します。 IBM ¦ DB2 バージョン8.1アップデート - Japan 図1.JDBC Type 1ドライバー JDBC Type 2ドライバー JDBC Type 2ドライバーは、OS固有のライブラリー(共有ライブラリー)を使って、RDBMSと通信します。 アプリケーションは、JDBCドライバーをロードし、ドライバーは、共有ライブラリーを使って、DB2サー バーと通信します。DB2 UDB for Linux, UNIX®and Windows® v8.1では、2つの異なるType 2ドライバー を提供しています。 ● ● レガシー/CLI JDBCドライバーは、db2java.zipファイルで提供されており、実装パッケージ名 は、COM.ibm.db2.jdbc.app.DB2Driverです。このドライバーは、現在のJ2EE認定に使用されてい ます。ニックネーム "app driver" の由来は、パッケージ名ではなく、このドライバーがローカル DB2 UDBクライアントを通じて、ネイティブ接続を実行する点から来ています。 Universal JDBC Driverは、db2jcc.jarファイルで提供されており、実装パッケージ名は、com.ibm. db2.jcc.DB2Driverです。このドライバーは、DB2 UDB for Linux, UNIX, and Windows v8.1から新 しく提供されるようになりました。最初の実装(v8.1)では、このドライバーは、Type 4ドライバー・ アーキテクチャーを使ったDB2サーバーとの直接Java接続用でした。DB2 v8.1.2では、Type 2 アーキテクチャーでこのドライバーを使用することができます。ローカル・アプリケーションのパ フォーマンスと分散トランザクションのサポートが、Type 2アーキテクチャーでドライバーを使用 する主な理由の1つです。Universal JDBC Type 2ドライバーは、com.ibm.db2.jcc. DB2XADataSourceを使った分散トランザクションとcom.ibm.db2.jcc. DB2ConnectionPoolDataSourceを使ったデータ・プーリングをサポートしています。 JDBC Type 2ドライバーを使って、JDBCアプリケーションをサポートすることができます。このType 2ド ライバーはどちらも、WebSphere Application Serverでサポートされています。レガシー/CLI Type 2ド ライバーは、将来のバージョンで拡張されないことに留意してください。 図2は、JDBC Type 2ドライバーを使用するアプリケーションの代表的なトポロジーを示しています。 図2.JDBC Type 2ドライバーを使用するアプリケーション IBM ¦ DB2 バージョン8.1アップデート - Japan JDBC Type 3ドライバー JDBC Type 3ドライバーは、ピュアJava実装です。DB2データにアクセスするにはDB2 JDBC Applet Serverとの通信が必要です。このドライバーは、JavaアプレットからDB2データ・ソースへのアクセスを 可能にします。図3に示すこのシナリオでは、アプリケーションは、DB2クライアントがインストールされた 別マシンと対話します。 図3.Type 3 JDBCドライバーを使用する代表的なアプリケーションのシナリオ JDBC Type 3ドライバーは、そのパッケージ名COM.ibm.db2.jdbc.netにちなんで「net driver(ネット・ドラ イバー)」と呼ばれることも多くあります。DB2 Version 8.1では、net driverをサポートしており、JDBCア プリケーションとこのドライバーを併用することができます。 Type 3ドライバーでは、常に、db2java.zipドライバーがDB2 Applet Serverと同じ保守レベルにあること が要求されます。ドライバーがアプレット内部で使用される場合は、アプリケーション実行時にブラウ ザーが該当するdb2java.zipファイルをダウンロードするため、これは問題とはなりません。レガシー/ IBM ¦ DB2 バージョン8.1アップデート - Japan CLIドライバーを使用するType 2ドライバー接続に要求されるデータベース・ディレクトリー情報を作成 するには、DB2クライアントをインストールして、DB2 CATALOG DATABASEコマンドを使用しなければ ならないため、これを避けるためにType 2ドライバーではなくType 3ドライバーを使用するユーザーも多 数存在します。IBM Type 3ドライバーは分散トランザクション(JTA)をサポートしていないため、現在、 WebSphere Application Serverおよび他のJ2EEサーバーはIBM Type 3ドライバーをサポートしていませ ん。Type 3ドライバーは将来のバージョンでは拡張されません。 IBMは、Type 3ドライバーの代替として、IBMのUniversal JDBC type 4ドライバーを使用することを推奨 しています。 JDBC Type 4ドライバー Type 4ドライバーは、データベース・サーバーに直接接続するJavaオンリーのJDBCドライバーです。 DB2 UDB for Linux, UNIX, and Windows v8.1では、「Universal JDBC Driver」というType 4ドライバーが 導入されました。Universal JDBC Driverは、db2jcc.jarファイルで提供されています。実装パッケージ名 は、com.ibm.db2.jcc.DB2Driverです。 Universal Type 2とUniversal Type 4ドライバーは、同じ実装クラス名を共有しています。DB2が内部的 にどちらのドライバーをインスタンス化するかを区別する2つの方法があります。 ● ● Connectionプロパティーを使って、接続に共有ライブラリーを使用するかどうか(type 2)、あるい はドライバーがJavaアプリケーションからの直接接続を開始するかどうか(Type 4)を判定する。 Connection URLパターンを使って、Type 2、Type 4どちらの動作を希望しているかを伝える。 Type 4 URLパターンの例: 文字列 "jdbc:db2://server1:50000/sample" は、JDBCドライバー に、Javaアプリケーションから、ポート50000をリスンしているDB2サーバー(ホスト名server1)上 に構成されたDB2インスタンス内の「sample」というデータベースに直接接続するように指示しま す。 Type 2 URLパターンの例: 文字列 "jdbc:db2:sample"。DB2サーバー("server1")とポート ("50000")についての情報は、DB2クライアント・カタログ・ディレクトリーにあります。 Universal JDBC Driverは、ドライバー・タイプ接続またはターゲット・プラットフォームに依存しない抽象 JDBCプロセッサーです。Universal JDBC Driverは、分散およびローカルDB2 UDBアクセスに対応する アーキテクチャー中立のJDBCドライバーです。特定のJDBCドライバー・タイプ接続やターゲット・プラッ トフォームに依存しないため、単一ドライバー・インスタンスでDB2 UDBへのオールJava接続(Type 4ド ライバー)またはJNIベース接続(Type 2ドライバー)の両方をサポートします。このドライバーを、スタン ドアローンのJavaアプリケーションまたは多層アプリケーションに使用することができます。 重要:DB2 UDB v8.1.2から、Universal JDBC Driverを利用するには、db2jcc.jarファイルと一緒に、次の ライセンスJARファイルをCLASSPATHに置く必要があります。 ● ● ● Cloudscape™ Network Server V5.1: db2jcc_license_c.jar DB2 UDB V8 for Linux, UNIX, and Windowsサーバー: db2jcc_license_cu.jar DB2 UDB for iSeries® and z/OSサーバー(DB2 ConnectおよびDB2 Enterprise Server Edition IBM ¦ DB2 バージョン8.1アップデート - Japan 同梱): db2jcc_license_cisuz.jar Universal Driverは、データベース・メタデータ・カタログに照会を実行し、ターゲット・サーバーにインス トールされた必須ストアード・プロシージャーを使って、サーバー・エラー・メッセージ・テキストを取り出 すことができます。 ● ● ● ● ● UDB v8 on Linux, UNIX, and Windows: このストアード・プロシージャーがプレインストールされ ています。 DB2 UDB for OS/390® v6: PTFs UQ72081とUQ72082をインストールする必要があります。 DB2 UDB for OS/390 and z/OS v7: PTF UQ72083をインストールする必要があります。次期 DB2 UDB v8 on z/OSでは、必須ストアード・プロシージャーがプレインストールされる予定で す。 DB2 UDB for iSeries V5R1: PTFS SI06308、SI06300、SI06301、SI06302、SI06305、SI06307、 SI05872が必要です。 DB2 UDB for iSeries V5R2: PTFs SI06541、SI06796、SI07557、SI07564、SI07565、SI07566、 SI07567が必要です。DB2 UDB for iSeries V5R3では、必須ストアード・プロシージャーがプレイ ンストールされる予定です。 Type 4 JDBCドライバー実装を図4に図解します。Linux、UNIX、Windows上のJavaアプリケーションまた はアプレットからDB2 for z/OS、OS/390へUniversal JDBC/SQLJドライバー(Type 4とType 2)で接続 するには、該当するライセンス・ファイル(db2jcc_license_cisuz.jar)が要求されることに留意してくださ い。このライセンス・ファイルは、DB2 Connect製品に付属しています。 図4.Type 4 JDBCドライバーの実装 Java Development Kits(JDK)とJava Run Time Environments(JRE) JDBCの各バージョンには、それぞれに対応するJDK/JREがあります。 ● JDBC 2.0とJDBC 2.1 APIは、2つのパッケージに分かれています。 IBM ¦ DB2 バージョン8.1アップデート - Japan ❍ ❍ ● ● java.sqlパッケージ(コアAPIを含む。JDBC 1.22 APIの拡張) javax.sqlパッケージ(オプション・パッケージ。接続プーリング、分散トランザクション、その 他の拡張機能のサポートに使用) JDBC 2.0とJDBC 2.1のコアAPIは、J2SE(Java 2, Standard Edition - JDK 1.2以上に実装)によ りサポートされ、JDBC 2.0オプション・パッケージはJ2EE 1.3によりサポートされています。 JDBC 3.0は、2002年5月に完成し、J2SE 1.4とJ2EE 1.4に採用されています。 多くのユーザーが、Javaアプリケーションの開発と展開に1.3.1環境を使用しています。この環境が、 DB2 Javaアプリケーションに現在推奨される環境です。Universal JDBC Driverには、1.3.1環境が必要 です。JDK 1.4環境でUniversal JDBC DriverとともにJDBC 3.0 APIもサポートされる予定です。 一般的な質問(FAQ) Q1 DB2 UDB JDBC Type 4ドライバーはどこで入手できますか。 A1 ドライバーはDB2 UDBクライアントと一緒に提供されています。また、 DB2の試用バージョンをダウンロードすることもできます。 Q2 DB2 UDB V8は、アップデート対応スクローラブル・カーソルをサポート していますか。 A2 アップデート対応スクローラブル・カーソルは、DB2 UDB V8.1では Universal JDBC Driverを使ってサポートされています。DB2 UDB for Linux, UNIX, and Windows v7.xを使用している場合には、レガシー/ CLIドライバーとsetCursorName APIを使って、アップデート対応スク ローラブル・カーソルをシミュレートすることができます。Universal JDBC Driverへの移行が推奨されます。 Q3 DB2 JDBC Type 4ドライバーを使って、DB2 UDB for z/OS、OS/390に 接続できますか。 A3 できます。DB2 Connectライセンスが必要になります。 Q4 どのJDBCドライバーが最速ですか。 A4 その答えは、構成によって異なります。JavaアプリケーションがDB2 サーバーと同じマシン上で実行されている場合には、Universal Type 2 ドライバーのパフォーマンスが最高です。TCP/IPオーバーヘッドを回避 することができ、スループットが改善されます。DB2サーバーがJavaア プリケーションと別のマシン上にあるときは、Universal Type 4とType 2 ドライバーのパフォーマンスはそれほど変わりません。もっと効率的な SQLステートメントを記述する、あるいはJavaアプリケーション・パフォー マンス全体を向上させるためには、SQLJまたはストアード・プロシー ジャーの使用を常に検討すべきです。 Q5 DB2 UDBとサポート対象Java環境に関する情報はどこで入手できます か。 A5 http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm. db2.udb.doc/ad/cjvintro.htmのWebサイトを参照してください。 IBM ¦ DB2 バージョン8.1アップデート - Japan Q6 レガシー/CLIドライバーとUniversalドライバーの間に違いはあります か。 A6 基本的にどちらも、JDBC 2.1/J2EE 1.3レベルのAPIサポートを提供しま す。Universalドライバーは、JDBC 3.0仕様の最新機能を提供します。新 しいドライバーは、DRDA (Distributed Relational Database Architecture) と呼ばれるオープン・データベース・アクセス標準をベー スとするため、ドライバーに若干の相違があります。 Q7 Universalドライバーを使ったSQLステートメントのトレーシングは、どの ように行えばよいですか。 A7 トレースの取得には、DataSourceまたはConnectionプロパティーを使い ます。 Q8 JDBCの代わりにSQLJを検討すべき理由は何でしょうか。それは、どの ように始めればよいでしょうか。 A8 DB2 Developer Domainに掲載されている「Considering SQLJ for Your DB2 v8.1 Java Applications」という記事を参照してください。 著者について Paul C. Zikopoulosは、受賞経歴を誇るIDUG基調演説者であり、IBM Data Management ソフトウェア・グループのメンバーです。7年を超えるDB2の経験を持ち、DB2に関する数 多くの記事を雑誌に寄稿しています。「DB2: The Complete Reference」、「DB2 Fundamentals Certification for Dummies」、「DB2 for Dummies」、「A DBA's Guide to Databases on Linux」の共著者であり、また、DB2認定上級テクニカル・エキスパート (DRDAとCluster/EEE)、DB2認定ソリューション・エキスパート(ビジネス・インテリジェン スとデータベース管理)です。 メールの宛先は[email protected]です。 Grant Hutchisonは、トロント研究所内DB2インテグレーション・センターのテクニカル・マ ネージャーとして、IBM内部におけるDB2とWebSphereの統合業務の責任者を務めてい ます。開発者、サービス・アナリスト、コンサルタントとしてDB2に関する12年の経験を持 ちます。先頃、ワーテルロー大学でソフトウェア工学士号を取得しました。 このドキュメントには、IBMの専有情報が含まれています。このパブリケーションの内容に製品保証は 含まれておらず、このドキュメントのいかなる記載も、製品保証として解釈することはできません。 次の用語は、米国および/もしくはその他の国におけるInternational Business Machines Corporation の商標または登録商標です。CICS、Cloudscape、DB2、DB2 Connect、DB2 Universal Database、IMS、 iSeries、MQSeries、OS/390、OS/400、WebSphere、z/OS UNIXは、米国およびその他の国におけるThe Open Groupの登録商標です。 JavaおよびJavaベースのすべての商標は、米国、その他の国またはその両方におけるSun Microsystems, Incの商標です。 WindowsおよびWindowsベースの商標とロゴは、Microsoft Corpの商標または登録商標です。 その他の会社名、製品名、およびサービス名は、一般に所有各社の商標です。 IBM ¦ DB2 バージョン8.1アップデート - Japan IBMの著作権および商標情報 原文はこちら (US) 上に戻る このページをe-メールする このページを印刷する ● 日本IBMについて ● プライバシー ● お問い合わせ ● 利用条件 ● IBM RSS配信