Метод JDBC DatabaseMetaData не реализован драйвером JDBC (T4SQLMX)

Я настраиваю приложение Spring-boot для подключения к SQL / MX HP NonStop Tandem. Сначала я достиг этого соединения, жестко закодировав параметры jdbc, такие как dataSource, URL и т. Д., В служебном разделе приложения, и это сработало (я смог получить доступ к таблицам, выполнив запрос).

Теперь я пытаюсь удалить жестко закодированную часть и сохранить информацию о моей базе данных в файле application.properties, но теперь я получаю следующую ошибку

org.springframework.jdbc.support.MetaDataAccessException: метод JDBC DatabaseMetaData не реализован драйвером JDBC - обновите драйвер; вложенное исключение - java.lang.AbstractMethodError: Метод com / tandem / t4jdbc / SQLMXConnection.isValid (I) Z является абстрактным

Может ли кто-нибудь помочь мне понять основную причину? Тот же самый jar-файл драйвера используется при жестком кодировании сведений об источнике данных, и он работал, но не работал, когда свойства источника данных были в application.properties и требовалось обновление до jar.


person Thulasi_G    schedule 28.04.2019    source источник


Ответы (2)


Я столкнулся с тем же исключением при использовании Spring Data JPA в приложении Spring Boot, драйвере JTDS и пуле соединений Hikari. В моем случае я обнаружил, что следующее устраняет проблему:

Изучая класс com.zaxxer.hikari.pool.PoolBase, можно заметить следующее:

this.isUseJdbc4Validation = config.getConnectionTestQuery() == null;

Таким образом, проверка JDBC 4 не будет выполняться, если настроен тестовый запрос соединения. В приложении Spring Boot это можно сделать следующим образом:

spring.datasource.hikari.connection-test-query=select 1;

К сожалению, у меня нет опыта работы с драйвером T4SQLMX, но, тем не менее, надеюсь, что это может быть полезно.

person Ivan Krizsan    schedule 30.08.2019

Я недавно боролся с той же проблемой, для меня я использовал драйвер JDBC типа 3; но моя реализация Spring поддерживала только драйвер типа 4, поэтому, когда была предпринята попытка вызвать метод, который вы указали выше, это вызвало ошибку.

Я предлагаю вам найти драйвер типа 4 для вашей конкретной базы данных и посмотреть, решит ли это вашу проблему.

person rdChris    schedule 10.05.2019
comment
Спасибо за ответ! На самом деле я использую драйвер t4sqlmx, но, похоже, у него нет метода. Не могли бы вы поделиться версией используемого вами драйвера t4? Возможно, мне придется попросить нашу команду HP обновить драйвер. - person Thulasi_G; 13.05.2019