SQL Serverについての説明

このトピックでは、Microsoft SQL Serverデータベースを使用するBusiness Components for Java(BC4J)プロジェクトを作成する手順を説明します。データベース実装および従う必要のある制限事項の違いに注意してください。「外部データソースの開発における制限事項」を参照してください。

次の項目について説明します。

  1. 要件
  2. JDBCドライバのインストール
  3. サード・パーティ接続用のJDeveloperの準備
  4. デフォルト・プロジェクト・ライブラリの指定
  5. 新規接続の作成
  6. ビジネス・コンポーネント・プロジェクトの開始
  7. ビジネス・ロジック層のテスト
  8. クライアントのアプリケーション・モジュールの構成
  9. OC4Jへのデプロイ

要件

ここでの手順を実行するには、次のものが必要です。

Microsoft SQL Serverインスタンスのスキーマの設定

SQL Server用のデータベース、セキュリティおよびユーザー・モデルは、Oracleモデルとは異なります。次の手順に従い、JDeveloperからSQL Serverへの接続を開始します。これにより、ORDENTというデータベースおよび(Oracleの慣例に従い)パスワードがtigerのscottというユーザーとログインが作成されます。

注意: Microsoft SQL Serverおよびクライアント・ツール、特にエンタープライズ マネージャおよびMicrosoftのコマンドラインSQLであるisqlが必要です。

  1. データベースを作成します。
    エンタープライズ マネージャを使用して、システム管理者(sa/saなど)としてログインし、「databases」タブを右クリックして新規データベースを作成します。これをORDENTとします。
  2. ユーザーおよびログインを作成します。
    「ORDENT」というデータベース・タブを拡張し、「Users」ノードを右クリックして「create new user」を選択します。
    1. ログイン名のドロップダウン・コンボから「<new>」を選択します。
    2. 認証モードに「SQL Server authentication」を選択し、名前にScott、パスワードにtigerを入力します。
    3. このログインのデフォルト・データベースをORDENTに変更します。
    4. 「Database Access」タブをクリックし、ScottORDENTデータベースへのアクセスを許可するよう選択します。「permit in database role」フィールドで「db_owner」を選択します。
    5. 「OK」をクリックします。パスワードの再確認が必要な場合もあります。「Cancel」をクリックします。
  3. 設定を確認します。
    データベースORDENTには、デフォルト・データベースがORDENTのグローバル・ログインScottを介してアクセスするScottというユーザーがあります。
  4. ORDENTデータベースに表を作成します。
    1. サンプルSQLスクリプトを含むディレクトリ%JDEV_HOME%/BC4J/samples/sqlへ移動します。
    2. isqlを使用してデータベースへ接続し、スクリプトを実行します。
      isql -U Scott -P tiger -S <dbserver> -i createdeptemp_sqlserver.sql
  5. 表を確認します。
    isqlへログインし、次のコマンドを発行します。
             1> select * from dept
             2> go
             DEPTNO DNAME LOC
             ---  -----------  -------------
             10   ACCOUNTING   NEW YORK
             20   RESEARCH     DALLAS
             30   SALES        CHICAGO
             40   OPERATIONS   BOSTON
    
             (4 rows affected)
    
             1> select empno,ename,job from emp
             2> go
             empno ename job
             ---- ------  ---------
             7369 SMITH   CLERK
             7499 ALLEN   SALESMAN
             7521 WARD    SALESMAN
             7566 JONES   MANAGER
             7654 MARTIN  SALESMAN
             7698 BLAKE   MANAGER
             7782 CLARK   MANAGER
             7788 SCOTT   ANALYST
             7839 KING    PRESIDENT
             7844 TURNER  SALESMAN
             7876 ADAMS   CLERK
             7900 JAMES   CLERK
             7902 FORD    ANALYST
             7934 MILLER  CLERK
    
             (14 rows affected)
             
  6. 次の手順に進みます。

JDBCドライバのインストール

SQL Server用ビジネス・コンポーネント・プロジェクトを開発するには、Microsoft SQL Server 2000 Driver for JDBCが必要です。次のURLからドライバをダウンロードできます。

http://www.microsoft.com/sql/downloads/2000/jdbc.asp

ダウンロード後、インストール・ウィザードに従ってインストールします。環境設定には、次のデフォルトのインストール場所が、このチュートリアル全体を通して使用されます。

C:¥Program files¥Microsoft SQL Server 2000 Driver for JDBC¥lib

サード・パーティ接続用のJDeveloperの準備

サード・パーティ接続用にJDeveloper IDEを準備するには、jdev.confファイルを編集する必要があります。この手順では、JDeveloperを停止する必要があります。手順を最初に印刷しておくことをお薦めします。

サード・パーティ接続用にJDeveloper IDEを準備するには、次のようにします。

  1. JDeveloperが稼働している場合、作業内容を保存してJDeveloperを終了します。
  2. テキスト・エディタで、<jdev_install>/jdev/bin/jdev.confを開きます。
    AddJavaLibFileおよびAddJavaLibPathのエントリがいくつか表示されます。
  3. SQL Server Driverのlibディレクトリの場所を指定するAddJavaLibPathの新規エントリを作成します。デフォルトの場所を選択した場合、エントリは次のようになります。
    AddJavaLibPath C:/Program files/Microsoft SQL Server 2000 Driver for JDBC/lib
    注意: パスではスラッシュ(/)を使用してください。
  4. テキスト・エディタでjdev.confを保存します。
  5. コマンドラインから、-verboseフラグを指定してJDeveloperを起動します。この手順は必須ではありませんが、実行すると、重要なシステム・メッセージを参照できます。
    1. コマンド・プロンプトを開きます。
    2. <jdev_install>/jdev/binディレクトリに移動します。
    3. jdev -verboseと入力します。

これで、JDeveloperがサード・パーティ接続を処理するよう構成されました。次に、これから使用するプロジェクトに適切なライブラリをデフォルトで含めるよう指定します。

デフォルト・プロジェクト・ライブラリの指定

関連するライブラリをデフォルトのプロジェクト設定に追加するには、次のようにします。

  1. 「プロジェクト」メニューから、「デフォルトのプロジェクト設定」を選択します。
  2. ナビゲーション・ツリーで、「構成」の下の「Development」「ライブラリ」をクリックします。
  3. msbase.jarmsutil.jarおよびmssqlserver.jarという3つのSQL Serverライブラリを追加する必要があります。
    1. 「新規」をクリックします。
    2. 「ライブラリ名」フィールドにOther JDBCと入力します。
    3. 「クラスパス」フィールドの「編集」をクリックします。
    4. 「エントリの追加」をクリックします。
    5. C:¥Program files¥Microsoft SQL Server 2000 Driver for JDBC¥libへ移動し、フォルダを展開します。
    6. [Ctrl]キーを押しながらmsbase.jarmsutil.jarおよびmssqlserver.jarをクリックして選択します。
    7. 「選択」をクリックします。
    8. 「OK」をクリックし、各ダイアログを閉じます。

サード・パーティ接続用にIDEを設定し、適切なライブラリをデフォルトでプロジェクトに追加するよう指定しました。次は、接続を作成します。

新規接続の作成

新規のデータベース接続を作成するには、接続ウィザードを使用します。

新規接続を作成するには、次のようにします。

  1. JDeveloperのシステム・ナビゲータで「接続」ノードを右クリックし、「データベース接続の作成...」を選択して接続ウィザードを起動します。
  2. 「初期画面」ページが表示された場合は、情報を確認して「次へ」をクリックします。
  3. 「タイプ」ページで接続名としてSQL Serverを入力し、「接続タイプ」ドロップダウン・リストで「サード・パーティ製JDBCドライバ」を選択します。「次へ」をクリックします。
  4. 「認証」ページで、ユーザー名およびパスワードを入力し、「パスワードをデプロイ」のチェックボックスをチェックします。「次へ」をクリックします。
  5. 「接続」ページで、Javaクラス名およびURLを入力します。
    Javaクラス名:  com.microsoft.jdbc.sqlserver.SQLServerDriver
    URL:  jdbc:microsoft:sqlserver://<db-host>:1433;SelectMethod=cursor
    注意: SelectMethod=cursorの前にセミコロンを入力します。
    SelectMethodに関する注意: 
    MS SQL Serverのドキュメントには、SelectMethod={cursor | direct}によってMicrosoft SQL Serverのサーバー・カーソルがSQL問合せで使用されるかどうかが決まると記載されています。SelectMethodをdirectに設定すると、サーバー側にSQL文に対するデータベース・カーソルを管理するオーバーヘッドを引き起こすことなく、SQL文を実行できます。SELECT文の実行には、directモードが最も効率的です。ただし、アプリケーションのトランザクション内で実行するアクティブな文は1つに限定されます。1つの問合せの実行で複数の結果セットが必要な場合は、アプリケーションでSelectMethodをdirectに設定する必要があります。
  6. 「テスト」ページで、「接続のテスト」をクリックします。「成功」というステータス・メッセージが表示されます。
    エラー・メッセージが表示された場合は、次の表を参照するか、データベース管理者に確認してください。

  7. エラー・メッセージ 考えられる原因
    "Unable to find driver" Javaクラス名のスペルの誤り
    "Error establishing socket" マシン名のスペルの誤り
    "No suitable driver can be found" URLの形式の誤り
    "Login failed" パスワードの誤り
    "Cannot open multiple cursors" SQL Server DB接続をSelectMethod=cursorに設定
    "Can't start a cloned connection while in manual transaction mode" SelectMethod=cursorのスペルの誤り
  8. 「終了」をクリックします。

ビジネス・コンポーネント・プロジェクトの開始

Oracleデータベースを使用するビジネス・コンポーネント・プロジェクトを作成したことがある場合は、次の手順を理解しているはずです。違いは、SQLスタイルにSQL92を、型マップにJavaを選択することです。また、このプロジェクトで適切なライブラリを使用することも指定します。

  1. 新しい空のプロジェクトを作成します。
  2. システム・ナビゲータで、プロジェクト・ノードを右クリックし、「プロジェクトの設定」を選択します。
  3. ナビゲーション・ツリーで、「構成」の下の「Development」「ライブラリ」をクリックします。
  4. 使用可能なライブラリ・ペインで「その他のJDBC」を選択し、選択済のライブラリ・ペインに移動します。
  5. 「OK」をクリックし、ダイアログを閉じます。
  6. プロジェクトを右クリックし、「新規ビジネス・コンポーネント」を選択します。
  7. 「接続」ページで、ドロップダウン・リストから、「SQL92」SQLスタイル、「Java」型マップを選択します。「次へ」をクリックします。
  8. パッケージ名を入力するかデフォルト名を受け入れ、「次へ」をクリックします。
  9. 「ビジネス・コンポーネント」ページに、データベース内の表のリストが表示されます。DEPTおよびEMPを選択し、「選択済」リストに移動します。
  10. 「終了」をクリックします。

ビジネス・ロジック層のテスト

ビジネス・ロジック層を即座にテストするには、Business Component Browser(Business Component Tester)を使用します。Javaプロジェクトをテストするには、JVMで実行環境を認識できるようにする必要があります。特に、JDBCドライバの検出方法(プロジェクト・ライブラリを使用)およびロードするJDBCドライバ(構成で制御されるBC4Jプロパティ・フラグを使用)を指定する必要があります。

Business Component Browserでビジネス・ロジック層をテストするには、次のようにします。

  1. システム・ナビゲータで、アプリケーション・モジュール・ノードを右クリックし、ポップアップ・メニューから「構成」を選択します。
  2. Configuration Managerで、「編集」をクリックします。
  3. 「プロパティ」タブをクリックします。
  4. プロパティjbo.sql92.JdbcDriverClassへスクロールし、これを
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    に変更します。
  5. 「OK」をクリックし、ダイアログを閉じます。
  6. システム・ナビゲータで、アプリケーション・モジュール・ノードを右クリックし、ポップアップ・メニューから「テスト」を選択します。
  7. アプリケーション・モジュール接続では、ドロップダウン・ボックスを使用し、編集した構成を選択します。リスト表示されているデフォルトの構成ではありません。
  8. 「OK」をクリックします。
  9. Business Component Browserのナビゲータで、ビュー・オブジェクト・メンバーを右クリックして「表示」を選択します。
  10. データをスクロールできれば、正常に構成できていることになります。

クライアントのアプリケーション・モジュールの構成

Business Component Browserを使用するとビジネス・ロジック層を簡単にテストできますが、他のタイプのクライアント・アプリケーションでは追加要件があります。クライアントがビジネス・ロジック層に接続する際、クライアントでは、アプリケーション・モジュールに対して正しいSQLスタイル、型マップおよびJDBCドライバを使用する必要があります。これらの値を設定するには、アプリケーション・モジュールの構成を編集します。

アプリケーション・モジュールの構成を編集するには、次のようにします。

  1. システム・ナビゲータで、アプリケーション・モジュール・ノードを右クリックして「構成」を選択します。
  2. Configuration Managerで、「編集」をクリックします。
  3. 「Oracle Business Componentの構成」ダイアログで、「プロパティ」タブをクリックします。
  4. 「プロパティ」列でjbo.TypeMapEntriesを検索し、値をJavaに変更します。
  5. 「プロパティ」列でjbo.sql92.JdbcDriverClassを検索し、値をcom.microsoft.jdbc.sqlserver.SQLServerDriverに変更します。
  6. 「プロパティ」列でjbo.SQLBuilderを検索し、値をSQL92に変更します。

OC4Jへのデプロイ

プロジェクトのローカルでのテストが正常に終了したら、OC4Jへデプロイできます。ただし、まずOC4Jを外部データソースとともに使用するよう構成する必要があります。

OC4Jを外部データソースとともに使用するよう構成するには、次のようにします。

  1. テキスト・エディタで、<OracleHome>/j2ee/home/config/application.xmlファイルを編集します。
  2. msbase.jarmsutil.jarおよびmssqlserever.jarを指す<library>タグを追加します。構文は、<library path="path">です。
    たとえば、デフォルトのインストール・パスを使用した場合、application.xmlファイルに次のタグを追加します。

    <library path="C:¥Program files¥Microsoft SQL Server 2000 Driver for JDBC¥lib¥msbase.jar">
    <library path="C:¥Program files¥Microsoft SQL Server 2000 Driver for JDBC¥lib¥
    msutil.jar">
    <library path="C:¥Program files¥Microsoft SQL Server 2000 Driver for JDBC¥lib
    ¥mssqlserver.jar">

    注意: 前述のように、パスには円記号(¥)を使用します。

また、外部データソースを使用するBC4Jプロジェクトをデプロイする場合、JDeveloperにOracle接続があると、デプロイしたプロジェクトで問題が発生する場合があります。これを回避するには、次の2つの方法があります。