このトピックでは、Microsoft SQL Serverデータベースを使用するBusiness Components for Java(BC4J)プロジェクトを作成する手順を説明します。データベース実装および従う必要のある制限事項の違いに注意してください。「外部データソースの開発における制限事項」を参照してください。
次の項目について説明します。
ここでの手順を実行するには、次のものが必要です。
SQL Server用のデータベース、セキュリティおよびユーザー・モデルは、Oracleモデルとは異なります。次の手順に従い、JDeveloperからSQL Serverへの接続を開始します。これにより、ORDENTというデータベースおよび(Oracleの慣例に従い)パスワードがtigerのscottというユーザーとログインが作成されます。
注意: Microsoft SQL Serverおよびクライアント・ツール、特にエンタープライズ マネージャおよびMicrosoftのコマンドラインSQLである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)
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 IDEを準備するには、jdev.confファイルを編集する必要があります。この手順では、JDeveloperを停止する必要があります。手順を最初に印刷しておくことをお薦めします。
サード・パーティ接続用にJDeveloper IDEを準備するには、次のようにします。
<jdev_install>/jdev/bin/jdev.conf
を開きます。lib
ディレクトリの場所を指定するAddJavaLibPath
の新規エントリを作成します。デフォルトの場所を選択した場合、エントリは次のようになります。AddJavaLibPath C:/Program files/Microsoft SQL Server 2000 Driver for JDBC/lib
<jdev_install>/jdev/bin
ディレクトリに移動します。 jdev -verbose
と入力します。これで、JDeveloperがサード・パーティ接続を処理するよう構成されました。次に、これから使用するプロジェクトに適切なライブラリをデフォルトで含めるよう指定します。
関連するライブラリをデフォルトのプロジェクト設定に追加するには、次のようにします。
Other JDBC
と入力します。C:¥Program files¥Microsoft SQL Server 2000 Driver for JDBC¥lib
へ移動し、フォルダを展開します。サード・パーティ接続用にIDEを設定し、適切なライブラリをデフォルトでプロジェクトに追加するよう指定しました。次は、接続を作成します。
新規のデータベース接続を作成するには、接続ウィザードを使用します。
新規接続を作成するには、次のようにします。
SQL Server
を入力し、「接続タイプ」ドロップダウン・リストで「サード・パーティ製JDBCドライバ」を選択します。「次へ」をクリックします。com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:microsoft:sqlserver://<db-host>:1433;SelectMethod=cursor
SelectMethod=cursor
の前にセミコロンを入力します。SelectMethod={cursor | direct}
によってMicrosoft SQL Serverのサーバー・カーソルがSQL問合せで使用されるかどうかが決まると記載されています。SelectMethodをdirectに設定すると、サーバー側にSQL文に対するデータベース・カーソルを管理するオーバーヘッドを引き起こすことなく、SQL文を実行できます。SELECT文の実行には、directモードが最も効率的です。ただし、アプリケーションのトランザクション内で実行するアクティブな文は1つに限定されます。1つの問合せの実行で複数の結果セットが必要な場合は、アプリケーションでSelectMethodをdirectに設定する必要があります。 エラー・メッセージ | 考えられる原因 |
---|---|
"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のスペルの誤り |
Oracleデータベースを使用するビジネス・コンポーネント・プロジェクトを作成したことがある場合は、次の手順を理解しているはずです。違いは、SQLスタイルにSQL92を、型マップにJavaを選択することです。また、このプロジェクトで適切なライブラリを使用することも指定します。
ビジネス・ロジック層を即座にテストするには、Business Component Browser(Business Component Tester)を使用します。Javaプロジェクトをテストするには、JVMで実行環境を認識できるようにする必要があります。特に、JDBCドライバの検出方法(プロジェクト・ライブラリを使用)およびロードするJDBCドライバ(構成で制御されるBC4Jプロパティ・フラグを使用)を指定する必要があります。
Business Component Browserでビジネス・ロジック層をテストするには、次のようにします。
jbo.sql92.JdbcDriverClass
へスクロールし、これを
com.microsoft.jdbc.sqlserver.SQLServerDriver
に変更します。Business Component Browserを使用するとビジネス・ロジック層を簡単にテストできますが、他のタイプのクライアント・アプリケーションでは追加要件があります。クライアントがビジネス・ロジック層に接続する際、クライアントでは、アプリケーション・モジュールに対して正しいSQLスタイル、型マップおよびJDBCドライバを使用する必要があります。これらの値を設定するには、アプリケーション・モジュールの構成を編集します。
アプリケーション・モジュールの構成を編集するには、次のようにします。
Java
に変更します。com.microsoft.jdbc.sqlserver.SQLServerDriver
に変更します。 SQL92
に変更します。プロジェクトのローカルでのテストが正常に終了したら、OC4Jへデプロイできます。ただし、まずOC4Jを外部データソースとともに使用するよう構成する必要があります。
OC4Jを外部データソースとともに使用するよう構成するには、次のようにします。
<OracleHome>/j2ee/home/config/
のapplication.xml
ファイルを編集します。msbase.jar
、msutil.jar
およびmssqlserever.jar
を指す<library>
タグを追加します。構文は、<library path="path">
です。<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つの方法があります。
data-sources.xml
ファイルを編集し、データソース用<data-source>要素を手動で追加します。構文は次のとおりです。<data-source class="com.evermind.sql.DriverManagerDataSource" name="SQLServerDS" location="jdbc/SQLServerCoreDS" xa-location="jdbc/xa/SQLServerXADS" ejb-location="jdbc/SQLServerDS" connection-driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" username="scott" password="tiger" url=jdbc:microsoft:sqlserver://<db-host>:1433;SelectMethod=cursor User=<username>;Password=<password> inactivity-timeout="30" /