JDBCドライバの変更方法

 GeneXusにはデフォルトでそれぞれのDBに対してのJDBCドライバが備わっており、

そのまま、それぞれのDBへ接続/運用が行えます。


ただし、SQLServerとDB2に関してはフリーのJDBCドライバが使用されています


GeneXusで使用されているSQLServer用のフリーのJDBCドライバ

The jTDS Project

http://jtds.sourceforge.net/

「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 のダウンロード

https://docs.microsoft.com/ja-jp/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15


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を利用している場合は、ローカル環境ではドライバの変更は行わず、

検証環境・本番環境に対してのみドライバの変更を行うのが宜しいかと思います。


コメント

このブログの人気の投稿

Tomcatの設定3:8080ポート以外で動作させる

Tomcatの設定1:データソースを使用する方法とメリット

Tomcatの設定2:アクセスログの活用

Tomcatの設定5:メモリ調整と起動モード

IVS文字・サロゲートペア文字の注意

Tomcatで画面表示の速度改善