«Нет файла сообщения для продукта = RDBMS» с тонким драйвером ojdbc7 от Oracle - PullRequest
0 голосов
/ 15 октября 2019

Я использую тонкий драйвер Oracle ojdbc7 (12.1.0.2) в веб-приложении для доступа к серверу базы данных Oracle 12.1.

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

java.sql.SQLException: ORA-01000: Message 1000 not found; No message file for product=RDBMS, facility=ORA

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:774)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4845)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1849)
        at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:472)
        ... 16 more

При поиске этой конкретной фразы «Нет файла сообщения ...» можно найти тонны комментариев, но в основном все они относятся к отсутствующим / неправильным настройкам среды ORACLE_ *, не указывающим на локальную установку Oracle-Client-Installaton. Однако с использованием тонкого драйвера, используемого здесь, установка локального клиента не требуется!

Состояния Oracle в JDBC-Руководстве для разработчиков :

JDBCТонкий драйвер полностью написан на Java, и поэтому он не зависит от платформы. Кроме того, этот драйвер не требует никакого дополнительного программного обеспечения Oracle на стороне клиента.

Итак, что мне здесь не хватает? Что необходимо для правильного отображения полных сообщений об ошибках?

...