JDBC での Caché SQL ゲートウェイの使用法
Caché SQL ゲートウェイを使用すると、JDBC および ODBC 経由で Caché から外部データベースにアクセスできます。この章には、JDBC 接続に関する SQL ゲートウェイの情報が含まれます。SQL ゲートウェイの詳細は、"Caché SQL の使用法" の "Caché SQL ゲートウェイの使用法" の章を参照してください。
外部ソースへの JDBC SQL ゲートウェイ接続の作成
このセクションでは、SQL ゲートウェイ用の JDBC 論理接続の定義の作成方法を説明します。
Caché では、外部データ・ソースへの接続の論理名である、SQL ゲートウェイ接続定義のリストが管理されます。各接続定義は、論理名 (Caché 内で使用するため)、データ・ソースへの接続情報、および接続を確立するときに使用するユーザ名とパスワードで構成されます。これらの接続は、%Library.sys_SQLConnection テーブルに格納されます。このテーブルのデータをエクスポートして、別の Caché インスタンスにインポートできます。
SQL ゲートウェイの問題を監視するために SQL ゲートウェイのログを有効化できます (“SQL ゲートウェイのログの有効化” を参照)。Caché JavaHome パラメータを設定して、SQL ゲートウェイで使用する Java のバージョンを指定できます ("Caché パラメータ・ファイル・リファレンス" の "JavaHome" を参照) 。
JDBC SQL ゲートウェイ接続の作成
JDBC 準拠のデータ・ソースにゲートウェイ接続を定義するには、以下の手順を実行します。
-
管理ポータルで、システム管理, 接続性, SQLゲートウェイ接続 ページに移動します。
-
[新規接続作成] をクリックします。
-
[ゲートウェイ接続] ページで、以下のフィールドの値を入力または選択します。
-
[タイプ] で [JDBC] を選択します。
-
[接続名] — Caché 内で使用する、接続の識別子名を指定します。
-
[ユーザ] — 必要に応じて、接続の確立時に既定値として機能するアカウントの名前を指定します。
-
[パスワード] — 既定のアカウントに関連付けられたパスワードを指定します。
-
[ドライバ名] — JDBC クライアント・ドライバの完全クラス名。
-
URL — 使用している JDBC クライアント・ドライバに必要な形式によるデータ・ソースの接続 URL。
-
[クラスパス] — ロードする追加の JAR ファイルのコンマ区切りのリストを指定します。
-
[プロパティ] — ベンダ固有の接続プロパティを指定する文字列 (オプション)。これを指定した場合、この文字列の形式は以下のようになります。
property=value;property=value;...
接続プロパティの詳細は、"Caché JDBC 接続プロパティ" を参照してください。
例えば、一般的な接続は以下の値を使用します。
設定 値 [タイプ] JDBC [接続名] ConnectionJDBC1 [ユーザ] JDBCUser [パスワード] JDBCPassword [ドライバ名] oracle.jdbc.driver.OracleDriver [URL] jdbc:oracle:thin:@//oraserver:1521/SID [クラスパス] /fill/path/to/ojdbc14.jar [プロパティ] oracle.jdbc.V8Compatibility=true; includeSynonyms=false;restrictGetTables=true その他のオプションについては、“実装固有のオプション” を参照してください。
-
-
オプションで、値が有効かどうかをテストします。テストするには、[テスト接続] ボタンをクリックします。画面に、入力した値を、有効な接続で使用できるかどうかを示すメッセージが表示されます。
-
名前付き接続を作成するには、[保存] をクリックします。
-
[閉じる] をクリックします。
SQL ゲートウェイ経由での Caché への JDBC 接続の作成
Caché には、JDBC データ・ソースとして使用できる JDBC ドライバがあります。つまり、Caché インスタンスは、それ自体または別の Caché インスタンスに JDBC および SQL ゲートウェイ経由で接続できます。具体的には、この接続は、1 つの Caché のネームスペースから別の Caché のネームスペースへの接続です。この方法で接続する場合は、他の外部データベースに接続するときと同じように、使用するデータベース・ドライバに関する接続詳細が必要です。このセクションでは基本的な情報を示します。
JDBC データ・ソースとしての Caché への接続
別の Caché インスタンス (Caché-2) を JDBC データ・ソースとして使用するように Caché インスタンス (Caché-1) を構成するには、以下の操作を実行します。
-
Caché-1 内で、SQL ゲートウェイを使用して、使用する Caché-2 のネームスペースへの JDBC 接続を作成します。
-
[タイプ] で [JDBC] を選択します。
-
[接続名] — Caché-1 内で使用する、接続の識別子名を指定します。
-
[ユーザ] — 必要に応じて Caché-2 へのアクセスに必要なユーザ名を指定します。
-
[パスワード] — このユーザのパスワードを指定します。
-
[ドライバ名] — com.intersys.jdbc.CacheDriver を使用します。
-
URL — データ・ソースの接続 URL を以下の形式で指定します。
jdbc:Cache://IP_address:port/namespace
ここで、IP_address:port は、Caché-2 が実行されている IP アドレスおよび TCP ポートです。namespace は、接続先のネームスペースです ("JDBC 接続 URL の定義" を参照)。
例えば、一般的な接続は以下の値を使用します。
設定 値 [タイプ] JDBC [接続名] Cache2Samples [ユーザ] _SYSTEM [パスワード] SYS [ドライバ名] com.intersys.jdbc.CacheDriver [URL] jdbc:Cache://127.0.0.1:1972/SAMPLES -
[クラスパス] — これは空白のままにしておきます。
-
[プロパティ] — Caché JDBC ドライバでサポートされている接続プロパティを指定する文字列 (オプション) です。これを指定した場合、この文字列の形式は以下のようになります。
property=value;property=value;...
-
[複合 Row ID 内で変換] — ほとんどの場合に既定のオプションが適していますが、任意のオプションを選択できます。詳細は、“実装固有のオプション” を参照してください。
-
[デフォルトで区切り識別子を使用しない] — ほとんどの場合に既定の設定 (チェック・ボックスのチェックを外す) が適していますが、必要に応じてこのオプションを有効にできます。詳細は、“実装固有のオプション” を参照してください。
-
-
[保存] をクリックします。
-
[閉じる] をクリックします。
実装固有のオプション
SQL ゲートウェイ接続を定義する前に、外部データベースとデータベース・ドライバの要件を理解しておく必要があります。これらの要件が接続の定義方法に影響を及ぼすためです。
[デフォルトで区切り識別子を使用しない] オプションは、生成されたルーチン内の識別子の形式を制御します。
SQL 区切り識別子をサポートしないデータベースを使用する場合は、このチェック・ボックスにチェックを付けます。これには現在、以下のデータベースが含まれます。
-
Sybase
-
Informix
-
MS SQL Server
他のデータベースを使用する場合は、チェック・ボックスのチェックを外します。すべての SQL 識別子が区切られます。
[COALESCE 使用] オプションは、クエリにパラメータ (?) が含まれる場合のクエリの処理方法を制御します。これは、クエリ・パラメータが NULL の場合にのみ適用されます。
-
[COALESCE 使用] を選択しない場合に、クエリ・パラメータが NULL のとき、クエリは対応する値が NULL となっているレコードのみを返します。例えば、以下の形式のクエリを考えてみます。
SELECT ID, Name from LinkedTables.Table WHERE Name %STARTSWITH ?
指定されたパラメータが NULL のとき、クエリは、値が NULL の名前を持つ行のみを返します。
-
[COALESCE 使用] を選択した場合、クエリは、COALESCE 関数呼び出し内の各パラメータを折り返します。これにより、NULL 値の処理方法が制御されます。
ここで、クエリ・パラメータが NULL のとき、クエリは基本的にはパラメータをワイルドカードとして扱います。前の例では、指定されたパラメータが NULL のとき、このクエリはすべての行を返します。
このオプションを選択するかどうかは、ユーザの判断と COALESCE 関数が外部データベースでサポートされているかどうかによります。
外部データベースで COALESCE 関数がサポートされているかどうかを確認するには、そのデータベースのドキュメントを参照してください。
[複合 Row ID 内で変換] オプションでは、複合 ID を形成するときの文字以外の値の処理方法を制御します。データベースでサポートされているオプションを選択します。
-
[非文字値を変換しない] — このオプションでは、変換は実行されません。このオプションは、データベースで文字以外の値の文字値への連結がサポートされる場合にのみ適切です。
-
[CAST を使用する] — このオプションでは、CAST を使用して、文字以外の値が文字値に変換されます。
-
[{fn convert ...} を使用] — このオプションでは、{fn convert ...} を使用して、文字以外の値が文字値に変換されます。
すべての場合に、ID (または変換後の ID) の間に || を使用して ID が連結されます。
外部データベースでサポートされるオプションを確認するには、外部データベースのドキュメントを参照してください。