سؤال

أحاول استخدام DBAPPENDER في LOGBACK. يحتوي logback.xml على الزائد التالي:

</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 الأخرى في نفس المشروع ولكنه يفشل في إعطاء Logback الخطأ التالي

ORA-00904: "ARG3": invalid identifier

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

حيث Arg3 هو <url>jdbc:oracle:thin:@HOST_URL:PORT:SERVICEID</url>

هل كانت مفيدة؟

المحلول

سأكون مهتمًا ببيان أوراكل مما أدى إلى هذا الخطأ. أظن أنه يحاول إدراج في الجدول (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

نصائح أخرى

لاتصالات مصدر البيانات:

<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>

لاتصالات drivermanager:

 <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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top