log4j:ERROR failed to execute sql
java.sql.SQLException:listener refused the connection with the following error:
ORA-12505,TNS:listener does not currently kown of SID given int connect descript or 
the Connection descriptior used by the client was :
192.168.23.6:1521:sge
重写了log4j的JDBCAppender类经过本人分析是log4j执行log4j.error("xxx")时候,日志插入的时候报的错误,但是还是无从下手,因为测试服务器和本机都没有异常,只有上传到正式服务器上才有异常真邪门了。。

解决方案 »

  1.   

    ORA-12505,TNS:listener does not currently kown of SID given int connect descript or 
    the Connection descriptior used by the client was :
    192.168.23.6:1521:sge数据库连接串写错呗,看看你的oracle的实例名是不是sge,ip地址对不对jdbc:oracle:thin:@192.168.23.6:1521:sge
      

  2.   

    对的运行程序可以正常运行查询功能都正常。就是编辑保存东西时候才会报错因为在保存信息时候调用了logger.error("asdgs");才报错的而且只在正式服务器上才报错真晕了
      

  3.   

    好好检查检查SID到底写的对不对。
      

  4.   

    对的。。sge配置不正确怎么可以正常运行啊。只有编辑-保存时候才发生这个异常
      

  5.   

    配置不正确,不代表log4j初始化时就会判断。log4j是在需要的时候才会去创建连接,可能你其它时候根本没有发生要写入的操作。所以log4j根本不创建连接,也就不知道错误了
      

  6.   

    > 重写了log4j的JDBCAppender类
    你Overwrite了JDBCAppender? 有没有错。当然,我知道JDBCAppender本身的实现就不是很好。
      

  7.   

    博主请问下,为什么我的总报错 log4j:ERROR Failed to excute sql
    java.sql.SQLException: Invalid SQL statement or JDBC escape, terminating ''' not found.
    配置文件如下:
    log4j.rootLogger=warn,db
    log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.db.BufferSize=1
    log4j.appender.db.URL=jdbc\:jtds\:sqlserver\://server\:1434/pcbsyn
    log4j.appender.db.driver=net.sourceforge.jtds.jdbc.Driver
    log4j.appender.db.user=sa
    log4j.appender.db.password=711
    log4j.appender.db.sql=insert into logInfo(userId,userName,lclass,lmethod,lTime,llevel,message) values ('%X{userId}','%X{userName}','%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
    log4j.appender.db.layout=org.apache.log4j.PatternLayout
     
    有说是 insert into logInfo(userId,userName,lclass,lmethod,lTime,llevel,message) values ('%X{userId}','%X{userName}','%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
    这个的问题,困扰了许久。。谢谢,呵呵呵
    '%d{ISO8601}'的ISO8601是嘛意思呢,