JDBCドライバの変更方法
GeneXusにはデフォルトでそれぞれのDBに対してのJDBCドライバが備わっており、
そのまま、それぞれのDBへ接続/運用が行えます。
ただし、SQLServerとDB2に関してはフリーのJDBCドライバが使用されています
GeneXusで使用されているSQLServer用のフリーのJDBCドライバ
The jTDS Project
「jtds-1.2.jar」
GeneXusで使用されているDB2用のフリーのJDBCドライバ
IBM Toolbox for Java
https://www.ibm.com/docs/ja/was-nd/8.5.5?topic=variables-configuring-toolbox-java
「jt400.jar」
こちらのJDBCドライバを使用していても基本的には問題ないのですが、
どちらかといえばメーカーが提供するJDBCドライバのほうが性能・品質が良いので、
メーカーから出ている最新バージョンを使用するのは”有り”です。
Microsoft SQL Server 用 JDBC Driver のダウンロード
DB2 JDBC Driver Versions and Downloads
https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads
JDBCドライバの変更方法(SQLServer)
①上記のURLからMicrosoft SQL Server 用 JDBC Driver をダウンロードします
②ダウンロードしたzipを解凍すると、Javaのバージョンごとのjarファイルがあるので、
自分が利用するJavaに合わせて1ファイルを選択します。
※以下はJava8を利用
③「mssql-jdbc-9.4.1.jre8.jar」を以下のディレクトリにコピーする
◇ビルド環境
ナレッジベース配下のJavaModel\web\drivers
例:C:\knowlage_base\gx17\TestKB_17U4\JavaModel\web\drivers
◇実行環境
Tomcat配下のwebapps\アプリケーションディレクトリ\WEB-INF\lib
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\TestKB_17U4JavaEnvironment\WEB-INF\lib
④GeneXusのナレッジベースの設定からデータストアのプロパティを変更
・・・するのですが、ここで注意!!
この[JDBC driver]プロパティを「Microsoft JDBC Driver(Type 4)」に変更すればOKと言いたいところですが、
こちらを選択してビルドして生成されるDB接続文字列が以下のようになります。
JDBC_DRIVER=com.microsoft.jdbc.sqlserver.SQLServerDriver
DB_URL=jdbc:microsoft:sqlserver://localhost:1433;databaseName=TestKB_17U4_DB;SelectMethod=cursor
これだと間違っていて、
↓↓こちらが正しい接続設定となります
JDBC_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
DB_URL=jdbc:sqlserver://localhost:1433;databaseName=TestKB_17U4_DB;SelectMethod=cursor
⑤上記の問題があるので以下の形でデータストアのプロパティを変更
⑥すべてビルド
⑦Tomcatを再起動してから、実行
これでドライバの変更は完了となります。
<注意点>
◆GeneXusでのデータベース再編成の際にもJDBCドライバが使われます
③でJavaModel\web\driversの配下に「mssql-jdbc-9.4.1.jre8.jar」をコピーしましたが、
こちらのjarをGeneXusのclasspathに登録させるには、ナレッジベースを一度閉じてから、再度開いてください。
そうすると再編成時にも入れ替えたJDBCドライバが適用されます。
◆データストアの「接続を編集」からの「接続をテスト」はNo suitable driver found forとエラーがでます。
「接続をテスト」では指定したドライバが読み込まれないようなので、ご注意を。
◆GAMを利用している場合
GAMデータベースの再編成時にも指定したドライバが読み込まれないようで
No suitable driver found forのエラーが発生します。(17U4時点)
ですのでGAMを利用している場合は、ローカル環境ではドライバの変更は行わず、
検証環境・本番環境に対してのみドライバの変更を行うのが宜しいかと思います。
コメント
コメントを投稿