powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
19 сообщений из 19, страница 1 из 1
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36477217
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Возникла следующая проблема.
Имеется сервер под Linux дистрбутив Red Hat 64-bit.
На нем установлено стороннее приложение, которое требует подключение через ODBC к серверу DB2 v 9.7 на другом хосте. Скачал IBM Data Server Driver for ODBC and CLI (Linux/x86-64 64 bit) V9.7 Fix Pack 1.
Не понятно что делать дальше, графика на серваке не установлена. Поэтому несколько вопросов.
1. Достаточно ли только IBM Data Server Driver for ODBC and CLI или сначало надо обязательно скачать и установить IBM Data Server Runtime Client, чтобы прописать NODE и привизать к нему DATABASE.
2. Как прописать ODBC DATA SOURCE, если команда DB2 catalog odbc data source доступна только под Windows.

Буду признателен за советы.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36477464
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegA67,

Добрый день.
Вам нужен ODBC Driver Manager.
Например, unixODBC (только его компилировать надо):
Setting up the unixODBC driver manager .
Setting up the ODBC environment (Linux and UNIX) .
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36477914
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
Большое спасибо за ссылки.
Код: plaintext
Before setting up the ODBC environment, ensure you have set up the CLI environment.
судя по этой фразе, сначало все таки надо скачать и установить IBM Data Server Runtime Client.
Поправьте меня если я ошибаюсь.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36478108
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegA67
Код: plaintext
Before setting up the ODBC environment, ensure you have set up the CLI environment.
судя по этой фразе, сначало все таки надо скачать и установить IBM Data Server Runtime Client.Да, либо его, либо IBM Data Server Driver for ODBC and CLI .
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36478243
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смущают разница в размерах у дистрибутивов

IBM Data Server Driver for ODBC and CLI. - 12.9 МВ
IBM Data Server Runtime Client. - 164 МВ
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36478291
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36490415
veter2121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

А подскажи пожалуйста как мне можно настроить jdbc коннект к db2
Потому как unixodbc настроил а вот передать инфу третьей проге(субд CACHE) не получается.
вот прилагаю картинку
CACHE не выдает что именно не правильно просто пишет ошибка соединения
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36490427
veter2121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в строке путь класса написано
/home/db2inst/sqllib/java/db2jcc.jar, /home/db2inst/sqllib/java/db2jcc_license_cisuz.jar, /home/db2inst/sqllib/java/db2jcc_license_cu.jar
пробовал и на прямую /opt/IBM/db2/V8.1/java/......
пробовал другое имя драйвера com.ibm.db2.jcc.DB2Driver
тоже не помогает
сервер db2 доступен, база существует, через db2 клиента коннект идет.
Куда копать.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36491712
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
veter2121,

Connectivity_test.java
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
 import  java.sql.DatabaseMetaData;
 import  java.sql.DriverManager;
 import  java.sql.Connection;
 import  java.util.Properties;

 public   class  Connectivity_test {
   static   final  String PFILE = "pfile";
  
   public   static   void  main(String[] args)  throws  Exception {
    Connection con =  null ;
    
     try  {
      System.getProperties().load( new  java.io.FileInputStream(System.getProperty(PFILE)));
      // Getting properties from property file
      String host_driver = System.getProperty("host_driver");
      String host_url = System.getProperty("host_url");
      String host_username = System.getProperty("host_username");
      String host_password = System.getProperty("host_password");
      // get connection 
       Class .forName(host_driver).newInstance();
      System.out.println("URL            : " + host_url);
      System.out.println("username       : " + host_username);
      System.out.println("password length: " + (host_password== null ? 0 :host_password.length()));
      System.out.println('\n'+"trying to connect... ");
      con = DriverManager.getConnection(host_url, host_username, host_password);
      System.out.println("connected!!!");
      // database metadata
      System.out.println('\n'+"*** database info ***");
      DatabaseMetaData dm = con.getMetaData();
      System.out.println("Product name   : " + dm.getDatabaseProductName());
      System.out.println("Product version: " + dm.getDatabaseProductVersion());
      System.out.println("Major version  : " + dm.getDatabaseMajorVersion());
      System.out.println("Minor version  : " + dm.getDatabaseMinorVersion());
      System.out.println('\n'+"*** driver info ***");
      System.out.println("Name           : " + dm.getDriverName());
      System.out.println("Version        : " + dm.getDriverVersion());
      System.out.println("Major version  : " + dm.getDriverMajorVersion());
      System.out.println("Minor version  : " + dm.getDriverMinorVersion());
      System.out.println("JDBC Major version  : " + dm.getJDBCMajorVersion());
      System.out.println("JDBC Minor version  : " + dm.getJDBCMinorVersion());
      // properties
      /*
      Properties prop = System.getProperties();
      for (java.util.Enumeration e = prop.propertyNames(); e.hasMoreElements(); ) {
        String s = (String)e.nextElement();
        if (s.startsWith("java"))
          System.out.println(s+": "+prop.getProperty(s));
      }
      */
    }  catch  (Exception ex) {
      ex.printStackTrace();
    }  finally  {
       if  (con !=  null ) {
        System.out.println('\n'+"trying to disconnect...");
        con.close(); 
        System.out.println("done!");
        con= null ;
      }
    }
  }

}

Connectivity_test.properties
#host_driver=COM.ibm.db2.jdbc.app.DB2Driver
host_driver=com.ibm.db2.jcc.DB2Driver
host_url=jdbc:db2://168.128.0.40:50000/test:retrieveMessagesFromServerOnGetMessage=true;
host_username=db2inst
host_password=pwd

javac -classpath .../db2jcc.jar Connectivity_test.java
java -classpath .:.../db2jcc.jar:.../db2jcc_license_cu.jar -Dpfile=./Connectivity_test.properties Connectivity_test
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36491785
veter2121,
А пути к классам точно через запятую указывать надо?
Обычно (если через classpath), то делается так:
Для Windows (разделитель точка с запятой):
Код: plaintext
CLASSPATH=C:\PROGRA~ 1 \IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~ 1 \IBM\SQLLIB\java\db2jcc_license_cu.jar
Для Unix/Linux (разделитель двоеточие)
Код: plaintext
CLASSPATH=/opt/IBM/db2/V8. 1 /java/db2jcc.jar:/opt/IBM/db2/V8. 1 /java/db2jcc_license_cu.jar
В данном случае в строке путь класса скорее всего нужно написать так:
Код: plaintext
/opt/IBM/db2/V8. 1 /java/db2jcc.jar:/opt/IBM/db2/V8. 1 /java/db2jcc_license_cu.jar

Версия DB2, к которой выполняется подключение, тоже 8.1 или выше (9.x)?
Если выше, то желательно использовать JDBC-драйвер версии не ниже.

Если после этого все равно будут ошибки, то нужно будет включить трассировку, добавив дополнительные поля в строку JDBC URL.
Например так:
Код: plaintext
1.
jdbc:db2:// 168 . 128 . 0 . 40 : 50000 /TEST:traceDirectory=/tmp;traceFileAppend=true;traceLevel= 58295 ;
В каталоге, указанном в параметре traceDirectory драйвером DB2 будут формироваться файлы трассировки, по которым можно определить причину ошибок. Естественно это в случае, если дело доходит до вызова драйвера.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36492094
veter2121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
bkk]# javac -classpath /opt/IBM/db2/V8.1/java/db2jcc.jar Connectivity_test.java
----------
1. WARNING in Connectivity_test.java (at line 4)
import java.util.Properties;
^^^^^^^^^^^^^^^^^^^^
The import java.util.Properties is never used
----------
1 problem (1 warning)
bkk]# java -classpath /opt/IBM/db2/V8.1/java/db2jcc.jar:/opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar -Dpfile=/bkk/Connectivity_test.properties Connectivity_test
Exception in thread "main" java.lang.NoClassDefFoundError: Connectivity_test
at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: Connectivity_test not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/opt/IBM/db2/V8.1/java/db2jcc.jar,file:/opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at gnu.java.lang.MainThread.run(libgcj.so.7rh)
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36492098
veter2121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений Хабаров,

Все тоже самое и никаких фаилов трасировки
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36492142
veter2121,

Команда на запуск такая должна быть (первым в пути классов поставить текущий каталог):
Код: plaintext
java -classpath .:/opt/IBM/db2/V8. 1 /java/db2jcc.jar:/opt/IBM/db2/V8. 1 /java/db2jcc_license_cu.jar -Dpfile=/bkk/Connectivity_test.properties Connectivity_test
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36492158
veter2121Евгений Хабаров,

Все тоже самое и никаких фаилов трасировки Нужно смотреть лог-файлы сервера, в котором настраивается это подключение, искать ошибку. Раз дело до вызова драйвера не доходит, значит ошибка происходит раньше. Без диагностической информации можно гадать очень долго и так и не найти ошибку.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36492160
veter2121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений Хабаров,
вот но я в этом тексте ни.....на не понимаю

java -classpath .:/opt/IBM/db2/V8.1/java/db2jcc.jar:/opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar -Dpfile=/bkk/Connectivity_test.properties Connectivity_test
URL : jdbc:db2://168.128.0.40:50000/test:retrieveMessagesFromServerOnGetMessage=true;
username : db2inst
password length: 8

trying to connect...
Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.db2.jcc.c.lc
at java.lang.Class.initializeClass(libgcj.so.7rh)
at com.ibm.db2.jcc.c.b.a(b.java:747)
at com.ibm.db2.jcc.c.b.<init>(b.java:353)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:165)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at Connectivity_test.main(Connectivity_test.java:25)
Caused by: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:/opt/IBM/db2/V8.1/java/db2jcc.jar,file:/opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.Class.initializeClass(libgcj.so.7rh)
...6 more
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36492661
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
veter2121,

Трудно сказать, что это может быть, похоже на проблему в db2jcc.jar, как описано в Bug 20394 .
Либо найдите другую ява-машину, либо попробуйте взять db2jcc.jar и db2jcc_license_cu.jar от другой версии, например от 9.5:
IBM Data Server Driver for JDBC and SQLJ .
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36493939
veter2121,

Для тестового примера я бы порекомендовал использовать другую реализацию Java, от Sun или IBM.

Логи компиляции тестового примера не особо интересны для решения начальной задачи.
Гораздо интереснее увидеть логи сервера (CACHE, если я правильно понял), в котором настраивается подключение к СУБД DB2.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36517124
veter2121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

после смены java с ibm на sun
вот что получилось
java -classpath .:/opt/IBM/db2/V8.1/java/db2jcc.jar:/opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar -Dpfile=/bkk/Connectivity_test.properties Connectivity_test
URL : jdbc:db2://192.168.0.40:50000/strah:retrieveMessagesFromServerOnGetMessage=true;
username : db2inst
password length: 8

trying to connect...
connected!!!

*** database info ***
Product name : DB2/LINUXX8664
Product version: SQL08029
Major version : 8
Minor version : 2

*** driver info ***
Name : IBM DB2 JDBC Universal Driver Architecture
Version : 2.11.65
Major version : 2
Minor version : 11
JDBC Major version : 3
JDBC Minor version : 0

trying to disconnect...
done!

А вот в cache все также ничего не получается

Евгений Хабаров,
а по поводу логов cache их нет, точнее сказать я так и не понял как их заставить писатся.
...
Рейтинг: 0 / 0
Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
    #36521597
veter2121А вот в cache все также ничего не получается

Евгений Хабаров,
а по поводу логов cache их нет, точнее сказать я так и не понял как их заставить писатся.
С Caché я вообще то сам не сталкивался пока, но может вот эти ссылки помогут:
Caché Parameter File Reference : JDBCGatewayLog
Caché SQL Reference : Configuration Settings

PS: Разделитель путей в classpath в настройках Caché все таки запятая.
Using the Caché SQL Gateway with JDBC
Поэтому пробовать указать так:
Код: plaintext
/opt/IBM/db2/V8. 1 /java/db2jcc.jar,/opt/IBM/db2/V8. 1 /java/db2jcc_license_cu.jar
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как создать ODBC DATA SOURCE для DB2 на Linux RHE 64-bit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]