Почему драйвер JDBC DB2 Type 4 ищет собственную библиотеку db2jcct2? - PullRequest
5 голосов
/ 30 ноября 2011

Я думал, что драйвер JDBC типа 4 был чисто Java и не требовал собственных библиотек.

Когда я помещал db2jcc4.jar в каталог WEB-INF / lib моего приложения Tomcat, упакованного как .warфайл, я получаю следующую ошибку при попытке использовать приложение: Got SQLException: com.ibm.db2.jcc.am.SqlException: [jcc][10389][12245][4.12.55] Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError

Соответствующий код приложения выглядит следующим образом, и возникает исключение из-за последней строки в списке:

        import com.ibm.db2.jcc.DB2SimpleDataSource;

        // ...

        DB2SimpleDataSource main_db2_data_source = new DB2SimpleDataSource();
        main_db2_data_source.setUser(main_database_user);
        main_db2_data_source.setPassword(main_database_password);
        main_db2_data_source.setServerName(main_database_host);
        try {
          Integer main_database_port_integer = Integer.parseInt(main_database_port);
          main_db2_data_source.setPortNumber(main_database_port_integer);
        } catch (NumberFormatException exception) {
          throw new WebException("...");
        }
        Connection main_connection = null;
        try {
          main_connection = main_db2_data_source.getConnection();

Ответы [ 4 ]

16 голосов
/ 30 ноября 2011

Я подозреваю, что проблема в том, что вы не сказали использовать драйвер типа 4 - я полагаю, что один и тот же файл jar содержит драйверы типа 4 и типа 2.

Попытка:

main_db2_data_source.setDriverType(4);
2 голосов
/ 30 ноября 2011

Драйверу db2 нужен еще один jar-файл с лицензией.

Эта лицензия контролирует тип подключения. Если вы собираетесь использовать «db2 connect» для подключения к мэйнфрейму в качестве серии i, вам следует использовать соответствующую лицензию. Если вы собираетесь подключаться к серверу Linux UNIX или Windows, лицензия включается при получении « клиента сервера данных для JDBC »

1 голос
/ 21 июля 2017

Также попробуйте это:

Goto Configure Build Path --> Libraries 
                             --> JRE System Libraries 
                                --> Native Library Location : Set this to %DB2HOME%/BIN 
                             (which is where db2jcct2.dll is saved)
0 голосов
/ 30 июля 2015

Недавно я столкнулся с этой проблемой, когда подключался к DB2 с сервера Glassfish.для этого я следовал ниже шагов и решил эту проблему.Пожалуйста, проверьте это ниже шагов

шаг1) я проверил детали DB2 в файле Domain.xml. Там я видел только имя пользователя, pwd, имя_базы_данных, имя_сервера, номер_порта, но я не вижу DriverType.Средство Тип драйвера: 2 или 4.

2) для добавления Тип драйвера, который я вошел в консоль администратора сервера Glassfish

Ресурсы -> JDBC -> Пул соединений ->наше имя пула -. добавить дополнительное свойство

здесь я добавил в качестве драйвера тип 4.

Следовательно, моя проблема была решена

Спасибо, Рамайя Пиллала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...