Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


18.8.7 データベースと接続するときの注意事項

ここでは,DABroker Libraryを使用してHiRDBまたはOracleに接続する場合の注意事項を示します。

〈この項の構成〉

(1) HiRDBと接続する場合の注意事項

HiRDBと接続する場合の注意事項については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.6.5 HiRDBと接続する場合の前提条件と注意事項」を参照してください。

(a) SQLの前処理保持機能

commit()メソッドをわたっても保持されるPreparedStatementオブジェクトは,DELETE文,INSERT文,PURGE文,TABLE文,UPDATE文,CALL文,およびSELECT文で生成したものだけです。ただし,HiRDBクライアント経由でXDM/RD E2を使用する場合にPURGE TABLE文で生成したPreparedStatementオブジェクトは除きます。

これらのSQL以外で生成されたPreparedStatementオブジェクトは,commit()メソッド実行時に無効となります。無効になったPreparedStatementオブジェクトでSQLを実行するとエラーになります。実行例を次に示します。

実行例
PrepareStatement pstmt1 = con.prepareStatement(""lock table tb1"");
PrepareStatement pstmt2 = con.prepareStatement(""lock table tb2"");
pstmt1.execute();  //エラーにならない
con.commit();
pstmt2.execute();  //エラーになる
pstmt1.close();
pstmt2.close();
注※ commit()メソッドによる明示的なコミットのほかに,次の処理も該当します。
  • 自動コミットによる暗黙的なコミット

  • 定義系SQLの実行

  • PURGE TABLE文の実行

  • rollbackメソッドによる明示的なロールバック

  • SQL実行エラーによる暗黙的なロールバック

(2) Oracleと接続する場合の注意事項

ここでは,DABroker Libraryを使用してOracleに接続する場合の注意事項について説明します。

(a) 使用できるJ2EEコンポーネント

DABroker Libraryでは,次のコンポーネントを使用できます。

  • サーブレット/JSP

  • Stateless Session Bean

  • Stateful Session Bean

  • Entity Bean(BMP)

  • Entity Bean(CMP2.0)

  • Message-driven Bean

(b) 型マッピング

DABroker Libraryを使用する場合の,Javaの型とOracleのSQL型のマッピングを次の表に示します。

表18‒70 Javaの型とOracleのSQL型のマッピング

メソッド

OracleのSQL型

CHAR

VARCHAR2

NUMBER

DATE

TIMESTAMP

CLOB

LONG

BLOB

RAW

LONGRAW

set/getByte

set/getShort

set/getInt

set/getLong

set/getFloat

set/getDouble

set/getBigDecimal

set/getBoolean

set/getString

set/getBytes

set/getDate

set/getTime

set/getTimestamp

set/getClob

set/getBlob

set/getObject

(凡例)

○:java.sql.PreparedStatement#setXXXおよびjava.sql.ResultSet#getXXXなどでマッピングできる

−:マッピングできない

(c) 日本語文字コード変換のための設定

DABroker Libraryを使用する場合に文字コード変換が実施される場所を次の図に示します。

図18‒9 DABroker Libraryを使用する場合に文字コード変換が実施される場所

[図データ]

J2EEサーバ上のJDBCドライバ部分では,JavaVMのコンバータによって,Unicodeからデータベース格納コード,およびデータベース格納コードからUnicodeへの変換が実施されます。

DABroker LibraryのエンコーディングセットとOracleサーバのデータベースキャラクタセットを同じにしておく必要があります。

(d) データソースの設定

Oracleに対してXA接続でアクセスする場合,データソースの設定では,次の規則でXA Open Stringを指定する必要があります。

  • 指定する文字列は,Oracleのマニュアルに記載されている規則に従って指定してください。キーワードなどの区切り文字が不正な場合は,Oracleライブラリ内でアプリケーションエラーが発生する場合がありますのでご注意ください。

  • 指定する文字列には必ず,「Threads=true」を指定してください。「Threads=true」が指定されていない場合は,Oracleライブラリ内でアプリケーションエラーが発生,またはSQL実行時にエラーが発生することがありますのでご注意ください。