0

WebSphere for Z/OS にデプロイされた war ファイル内から組み込みの Derby データベースを使用しようとしています。次のようなコードを使用してデータベースを作成すると、WEB-INF/lib ディレクトリに含まれているバージョン 10.5 の derby.jar の代わりに、WebSphere サーバー 7.0 に含まれている derby.jar を使用して、derby バージョン 10.3 データベースを作成することになります。

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:derby:testDB;create=true");
DatabaseMetaData dbmd = conn.getMetaData();
String productName = dbmd.getDatabaseProductName();
String productVersion = dbmd.getDatabaseProductVersion();

war ファイルにパッケージ化した derby.jar ファイルに含まれる org.apache.derby.jdbc.EmbeddedDriver クラスを WebSphere に強制的に使用させるにはどうすればよいですか?

4

2 に答える 2

1

J2EE 環境では、サーバーに接続を管理させる方が適切であり、通常、WAR に JDBC プロバイダーを配置することはお勧めできません。

WAS 7.0 の新機能は、「分離リソース プロバイダー」と呼ばれる機能です。この機能を使用すると、複数のバージョンの Derby を同じ JVM で並行して実行するように構成できます。

于 2010-05-28T17:32:06.043 に答える
1

最初に Web アプリを調べるには、デフォルトのクラスローダーを切り替える必要があると思います。ここに記載されているように PARENT_LAST を指定します。「Web モジュールでのクラスローダーの設定」を参照してください。

しかし、アプリと戦争の間で複製される可能性のある他のすべてのクラスに影響を与える可能性があるため、これは危険なオプションです。

于 2010-05-28T09:42:52.340 に答える