Hi,
I am using JDBCPlus (http://www.dankomannhaupt.de/projects/index.html) as a
jdbc appender for logging into database. For a requirement, I had to change
the datatype of a column (which stores the message string to be logged) from
varchar2(4000) to CLOB. But as soon I do this, the logging in database stops
and the stack trace got is :
log4j:ERROR JDBCAppender::flush_buffer(), :
java.sql.SQLException: Internal Error: Unable to construct a Datum from the
specified input
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:829)
at oracle.sql.SQLUtil.makeDatum(SQLUtil.java:645)
at oracle.sql.SQLUtil.makeOracleDatum(SQLUtil.java:946)
at
oracle.jdbc.driver.UpdatableResultSet.updateObject(UpdatableResultSet.java:1568)
at
oracle.jdbc.driver.OracleResultSet.updateObject(OracleResultSet.java:2787)
at org.apache.log4j.jdbcplus.JDBCLogger.append(JDBCLogger.java:742)
at
org.apache.log4j.jdbcplus.JDBCAppender.flush_buffer(JDBCAppender.java:887)
at org.apache.log4j.jdbcplus.JDBCAppender.append(JDBCAppender.java:867)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
at org.apache.log4j.Category.callAppenders(Category.java:203)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.log(Category.java:853)
at edu.unc.its.util.UNCLogger.prepareAndLogMessage(UNCLogger.java:445)
at edu.unc.its.util.UNCLoggerClient.main(UNCLoggerClient.java:23)
log4j:ERROR JDBCAppender::flush_buffer(), :
java.sql.SQLException: Internal Error: Unable to construct a Datum from the
specified input
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:829)
at oracle.sql.SQLUtil.makeDatum(SQLUtil.java:645)
at oracle.sql.SQLUtil.makeOracleDatum(SQLUtil.java:946)
at
oracle.jdbc.driver.UpdatableResultSet.updateObject(UpdatableResultSet.java:1568)
at
oracle.jdbc.driver.OracleResultSet.updateObject(OracleResultSet.java:2787)
at org.apache.log4j.jdbcplus.JDBCLogger.append(JDBCLogger.java:742)
at
org.apache.log4j.jdbcplus.JDBCAppender.flush_buffer(JDBCAppender.java:887)
at org.apache.log4j.jdbcplus.JDBCAppender.append(JDBCAppender.java:867)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
at org.apache.log4j.Category.callAppenders(Category.java:203)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.log(Category.java:853)
at edu.unc.its.util.UNCLogger.prepareAndLogMessage(UNCLogger.java:445)
at edu.unc.its.util.UNCLoggerClient.main(UNCLoggerClient.java:23)
14:39:08,463 FATAL UNC:? - [Message logged at =2008-08-07 10:30:00][Process
Id =P1][Process Name =Process1][Transaction Id =T1][Source =Source1][Target
=Target1][Service Invoked =LOGGING][Instance Id =I1][Message Id =M1] FATAL -
This is the error message.
It will be great if any suggestions can be provided to implement CLOB with
JDBCPlus appender.
Regards,
Vaibhav