Cosminexus 機能解説
ここでは,Oracleと接続する場合の前提条件と注意事項について説明します。
Oracle9iの場合の前提条件について示します。
表9-17 RARファイルごとに使用できるトランザクションサポートレベル(Oracle9i)
使用するDB Connector (RARファイル) |
トランザクションサポートレベル | ライトトランザクション | |
---|---|---|---|
有効 | 無効 | ||
DBConnector_DABJ_CP.rar DBConnector_Oracle_CP.rar |
NoTransaction LocalTransaction |
○ | ○ |
DBConnector_DABJ_XA.rar DBConnector_Oracle_XA.rar |
XATransaction | − | ○ |
(凡例) ○:使用できる −:該当しない
Oracle10gの場合の前提条件について示します。
表9-18 RARファイルごとに使用できるトランザクションサポートレベル(Oracle10g)
使用するDB Connector (RARファイル) |
トランザクションサポートレベル | ライトトランザクション | |
---|---|---|---|
有効 | 無効 | ||
DBConnector_DABJ_CP.rar DBConnector_Oracle_CP.rar |
NoTransaction LocalTransaction |
○ | ○ |
DBConnector_DABJ_XA.rar DBConnector_Oracle_XA.rar |
XATransaction | − | ○ |
DBConnector_CP_ClusterPool_Root.rar DBConnector_Oracle_CP_ClusterPool_Member.rar |
NoTransaction LocalTransaction |
○ | ○ |
(凡例) ○:使用できる −:該当しない
Oracleと接続する場合,使用するJDBCドライバによって,機能差があります。
ここでは,Oracleに接続する場合の,Cosminexus DABroker LibraryとOracle JDBC Thin Driverの機能の差異と,使用時の注意について説明します。
Oracle接続で使用できるJ2EEコンポーネントを,JDBCドライバごとに次の表に示します。
表9-19 J2EEコンポーネントと使用できるJDBCドライバ
J2EEコンポーネント | Cosminexus DABroker Library | Oracle JDBC Thin Driver |
---|---|---|
サーブレット/JSP | ○ | ○ |
Stateless Session Bean | ○ | ○ |
Stateful Session Bean | ○ | ○ |
Entity Bean(BMP) | ○ | ○ |
Entity Bean(CMP2.0) | ○ | × |
Message-driven Bean | ○ | ○ |
(凡例) ○:使用できる ×:使用できない
Cosminexus DABroker LibraryおよびOracle JDBC Thin Driverでは,Javaの型とOracleのSQL型の間で,マッピングが一部異なります。Javaの型とOracleのSQL型のマッピングを,JDBCドライバごとに表に示します。
表9-20 Javaの型とOracleのSQL型のマッピング(Cosminexus DABroker Library)
メソッド | 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 | ○ | ○ | ○ | ○ | − | ○ | ○ | ○ | ○ | ○ |
表9-21 Javaの型とOracleのSQL型のマッピング(Oracle JDBC Thin Driver)
メソッド | 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 | ○ | ○ | ○ | ○ | − | ○ | ○ | ○ | ○ | ○ |
JDBCドライバでは,データをデータベースに格納するとき,およびデータベースからデータを取り出すときに,Unicodeとデータベース格納コードとの間で適宜,文字コードを変換します。文字コード変換をする場所は,JDBCドライバによって異なります。JDBCドライバごとに文字コード変換が実施される場所について説明します。
Cosminexus DABroker Libraryを使用する場合に文字コード変換が実施される場所を次の図に示します。
図9-3 Cosminexus DABroker Libraryを使用する場合に文字コード変換が実施される場所
J2EEサーバ上のJDBCドライバ部分では,JavaVMのコンバータによって,Unicodeからデータベース格納コード,およびデータベース格納コードからUnicodeへの変換が実施されます。
Cosminexus DABroker LibraryのエンコーディングセットとOracleサーバのデータベースキャラクタセットを同じにしておく必要があります。
Oracle JDBC Thin Driverを使用する場合に文字コード変換が実施される場所を次の図に示します。
図9-4 Oracle JDBC Thin Driverを使用する場合に文字コード変換が実施される場所
図中の場所ごとに実行される文字コード変換について,次の表に示します。
表9-22 Oracle JDBC Thin Driverを使用する場合に文字コード変換が実施される場所
場所 | 実施される内容 |
---|---|
1 | ネットワーク,ファイルなどの外部データをJ2EEサーバで読み込む時に,外部データコードからUnicodeに変換されます。 |
2 | J2EEサーバで読み込んだデータをOracleサーバに格納する時に,UnicodeからUTF-8に変換されます。J2EEサーバ上のJDBCドライバ部分で実施されるコード変換です。 |
3 | Oracleサーバのコンバータによって,UTF-8からデータベース格納コードへの変換が実施されます。Oracleサーバ上で実施されるコード変換です。 |
4 | Oracleサーバのコンバータによって,データベース格納コードからUTF-8への変換が実施されます。 |
5 | OracleサーバからJ2EEサーバが格納したデータを取得する時に,UTF-8からUnicodeに変換されます。 |
6 | J2EEサーバで取得したデータをネットワークやファイルなどに書き出す時に,Unicodeから外部データコードに変換されます。 |
Oracle JDBC Thin Driverを使用する場合,JavaVMとOracleサーバのコンバータがサポートしているマッピング規則の相違から,文字化けが発生することがあります。文字化けは,外部データの文字コードとデータベース格納コードの組み合わせや,文字コード変換を行うコンバータの組み合わせによって発生します。
文字化けを回避するためには,外部データの文字コードと,データベース格納コードを,次に示す組み合わせで使用してください。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.