ここでは,Oracleと接続する場合の前提条件と注意事項について説明します。
Oracle9iの場合の前提条件について示します。
表3-27 RARファイルごとに使用できるトランザクションサポートレベル(Oracle9i)
使用するDB Connector (RARファイル) | トランザクションサポートレベル | ライトトランザクション | |
---|---|---|---|
有効 | 無効 | ||
DBConnector_Oracle_CP.rar | NoTransaction LocalTransaction | ○ | ○ |
DBConnector_Oracle_XA.rar | XATransaction | - | ○ |
(凡例) ○:使用できる -:該当しない
Oracle10gの場合の前提条件について示します。
表3-28 RARファイルごとに使用できるトランザクションサポートレベル(Oracle10g)
使用するDB Connector (RARファイル) | トランザクションサポートレベル | ライトトランザクション | |
---|---|---|---|
有効 | 無効 | ||
DBConnector_Oracle_CP.rar | NoTransaction LocalTransaction | ○ | ○ |
DBConnector_Oracle_XA.rar | XATransaction | - | ○ |
DBConnector_CP_ClusterPool_Root.rar DBConnector_Oracle_CP_ClusterPool_Member.rar | NoTransaction LocalTransaction | ○ | ○ |
(凡例) ○:使用できる -:該当しない
Oracle11gの場合の前提条件について示します。
表3-29 RARファイルごとに使用できるトランザクションサポートレベル(Oracle11g)
使用するDB Connector (RARファイル) | トランザクションサポートレベル | ライトトランザクション | |
---|---|---|---|
有効 | 無効 | ||
DBConnector_Oracle_CP.rar | NoTransaction LocalTransaction | ○ | ○ |
DBConnector_Oracle_XA.rar | XATransaction | - | ○ |
DBConnector_CP_ClusterPool_Root.rar DBConnector_Oracle_CP_ClusterPool_Member.rar | NoTransaction LocalTransaction | ○ | ○ |
(凡例) ○:使用できる -:該当しない
ここでは,Oracleに接続する場合の使用時の注意について説明します。
Oracle JDBC Thin DriverでOracleに接続する場合に使用できるJ2EEコンポーネントを次に示します。
Oracle JDBC Thin Driverを使用する場合のJavaの型とOracleのSQL型のマッピングを次の表に示します。
表3-30 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 | ○ | ○ | ○ | ○ | - | ○ | ○ | ○ | ○ | ○ |
注 この表は,Oracle9iのマッピングです。詳細やOracle10gおよびOracle11gについては,Oracleのマニュアルを参照してください。
JDBCドライバでは,データをデータベースに格納するとき,およびデータベースからデータを取り出すときに,Unicodeとデータベース格納コードとの間で適宜,文字コードを変換します。ここでは,Oracle JDBC Thin Driverを使用する場合に文字コード変換が実施される場所を次の図に示します。
図3-18 Oracle JDBC Thin Driverを使用する場合に文字コード変換が実施される場所
図中の場所ごとに実行される文字コード変換について,次の表に示します。
表3-31 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サーバのコンバータがサポートしているマッピング規則の相違から,文字化けが発生することがあります。文字化けは,外部データの文字コードとデータベース格納コードの組み合わせや,文字コード変換を行うコンバータの組み合わせによって発生します。
文字化けを回避するためには,外部データの文字コードと,データベース格納コードを,次に示す組み合わせで使用してください。
Oracleに対してXA接続でアクセスする場合,データソースの設定では,次の規則でXA Open Stringを指定する必要があります。
Oracle RACを使用したOracleへの接続方法は,Oracleのバージョン,または負荷分散に使用する機能によって異なります。Oracleのバージョン,負荷分散に使用する機能および使用するRARファイルの対応を次の表に示します。
表3-32 Oracleのバージョン,使用する機能および使用するRARファイルの対応
Oracleのバージョン | 負荷分散に使用する機能 | DB ConnectorのRARファイル名 |
---|---|---|
| アプリケーションサーバの機能(コネクションプールのクラスタ化機能) | DBConnector_CP_ClusterPool_Root.rar DBConnector_Oracle_CP_ClusterPool_Member.rar |
| Oracleの機能 | DBConnector_Oracle_CP.rar DBConnector_Oracle_CP_Cosminexus_RM.rar |