Вход DBAppender URL - PullRequest
       9

Вход DBAppender URL

0 голосов
/ 31 марта 2010

Я пытаюсь использовать DBAppender Logback. Мой logback.xml имеет следующий appender:

</appender>
 <appender name="DatabaseAppender" class="ch.qos.logback.classic.db.DBAppender">
  <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
   <driverClass>oracle.jdbc.OracleDriver</driverClass>
   <url>jdbc:oracle:thin:@HOST_URL:PORT:SERVICE_NAME</url>
   <user>USER</user>
   <password>PASS</password>
 </connectionSource>
</appender>

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

ORA-00904: "ARG3": invalid identifier

        at java.sql.SQLException: ORA-00904: "ARG3": invalid identifier

, где ARG3 - это <url>jdbc:oracle:thin:@HOST_URL:PORT:SERVICEID</url>

Ответы [ 2 ]

3 голосов
/ 01 апреля 2010

Меня заинтересовало бы утверждение Oracle, приводящее к этой ошибке. Я предполагаю, что он пытается INSERT INTO таблицы (arg1, arg2, arg3) значения (...); когда таблица не содержит этот столбец.

Если вы не знаете, что за таблица, тогда проверяйте здесь о принудительном создании дампа ошибок при обнаружении ошибки 904.

Я могу сделать

ALTER system SET EVENTS '904 TRACE NAME ERRORSTACK LEVEL 3';

Затем, когда возникает ошибка, база данных генерирует файл трассировки, который должен показывать формулировку проблемы, подобную следующей:

ORA-00904: "FRFRF": invalid identifier
Current SQL statement for this session:
select frfrf from dual
0 голосов
/ 17 декабря 2010

ДЛЯ СОЕДИНЕНИЙ ДАННЫХ:

<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource
      class="ch.qos.logback.core.db.DataSourceConnectionSource">
      <dataSource
        class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
        <jdbcUrl>jdbc:oracle:thin:@localhost:1521:XE</jdbcUrl>
        <user>system</user>
        <password>a</password>
      </dataSource>
    </connectionSource>
  </appender>

ДЛЯ СОЕДИНЕНИЙ ВОДИТЕЛЯ:

 <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
      <driverClass>com.mysql.jdbc.Driver</driverClass>
      <url>jdbc:mysql://host_name:3306/datebase_name</url>
      <user>username</user>
      <password>password</password>
    </connectionSource>
  </appender>
...