Подключение к старой Pervasive DB с помощью JDBC

Я пытаюсь написать небольшую программу для операций CRUD со старой базой данных Pervasive 9, но как только я пытаюсь установить соединение с Drivermanager.getConnection, она выдает

"java.io.IOException: LNA session closed"

Я прочитал сообщение ЭТО, но копирование/вставка этого кода мне не помогло. . Может быть, это конфигурация на той машине Pervasive 9? Это драйвер JDBC10, который не будет хорошо работать со старыми версиями? Или.. это я тупой? (Все всегда возможно)

С Уважением


person elwis    schedule 06.11.2014    source источник


Ответы (2)


Согласно Pervasive, не рекомендуется использовать новый клиент для старого движка. Это задокументировано в http://docs.pervasive.com/products/database/psqlv11/wwhelp/wwhimpl/js/html/wwhelp.htm#href=getstart/installprep.02.6.html#149125.< br> Это не значит, что это не сработает, но нет никакой гарантии. Есть отчеты о том, что интерфейс Btrieve работает правильно, но реляционная сторона (SQL, ODBC, JDBC) дает сбой чаще, главным образом потому, что она меняется между основными версиями, тогда как сторона Btrieve остается неизменной. Я бы предложил использовать клиент v9 (и драйвер JDBC) или обновить сервер до v10.

person mirtheil    schedule 06.11.2014
comment
Привет и спасибо за ответ. К сожалению, обновление не является альтернативой, я пробовал с JDBC версии 9, но потом получил ошибку о 32-битной DLL на 64-битной машине. - person elwis; 07.11.2014
comment
Кстати, действительно ли клиент имеет значение при использовании JDBC? Я попытался разработать его на сервере с использованием локального хоста, но все равно та же ошибка. - person elwis; 07.11.2014
comment
В этом случае драйвер Pervasive JDBC является клиентом. Драйвер JDBC общается с ядром, используя протокол Pervasive LNA, даже локально на сервере. Это протокол, который изменился. Движок может общаться со старым клиентом, но не с новым. Какие именно ошибки были при использовании драйвера v9? - person mirtheil; 07.11.2014
comment
Старый JDBC выдает мне это исключение в потоке main java.lang.UnsatisfiedLinkError: C:\PVSW\bin\pvjdbc2.dll: не удается загрузить 32-разрядную IA .dll на 64-разрядной платформе AMD. Думаю, тогда мне понадобится 32-битная Java - person elwis; 10.11.2014

@elwis твоя проблема связана с базой данных. Я рекомендую вам установить соединение с помощью обратного туннеля ssh против машины, на которой у вас есть база данных, сначала с портом по умолчанию pervasive. Что-то вроде: ssh user@yourmachine -L 15831:192.1X.X0.X80:1583

Затем с помощью инструмента можно сгенерировать подключение DBeaver, чтобы увидеть и сделать то, что вам нужно. Это подходит для меня. Удачи.

person Unknown Kadaba    schedule 13.10.2016