Using Logback classic 1.0.6 (slf4j 1.6.5)

Running on a Weblogic server 10.3.5.

 

I just added the DBAppender and have some unusual errors that get generated.

 

 

My append statement works fine and it does log entries to the database:

       <appender name="DataBase" class="ch.qos.logback.classic.db.DBAppender">

             <connectionSource class="ch.qos.logback.core.db.JNDIConnectionSource">

                    <param name="jndiLocation" value="UCS_DS." />

             </connectionSource>

       </appender>

 

Weblogic reports the following about the datasource creation (This pool on my local machine starts at 6 and grows by 2 up to 40 connections):

 

<BEA-001177> <Creating Connection Pool named UCS_DS, URL = jdbc:oracle:thin:@localhost:1521:XE, Properties = user=logback;.>

<BEA-000626> <Free resources in pool "UCS_DS" will be tested every "120" seconds.>

<BEA-001066> <Delaying 6 seconds before making a UCS_DS pool connection.>

<BEA-001516> <Connection Pool "UCS_DS" connected to Database: "Oracle", Version: "Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production".>

<BEA-001517> <Connection Pool "UCS_DS" using Driver: "Oracle JDBC driver", Version: "11.2.0.2.0".>

<BEA-001066> <Delaying 6 seconds before making a UCS_DS pool connection.>

<BEA-001066> <Delaying 6 seconds before making a UCS_DS pool connection.>

<BEA-001066> <Delaying 6 seconds before making a UCS_DS pool connection.>

<BEA-001066> <Delaying 6 seconds before making a UCS_DS pool connection.>

<BEA-001066> <Delaying 6 seconds before making a UCS_DS pool connection.>

<BEA-000628> <Created "6" resources for pool "UCS_DS", out of which "6" are available and "0" are unavailable.>

<BEA-001124> <Created Connection Pool named UCS_DS.>

<BEA-001174> <Creating Data Source named UCS_DS, JNDI Name = UCS_DS.>

<BEA-001512> <Data Source UCS_DS has been successfully created.>

 

But this error is thrown quite frequently.

 

20:38:56,700 |-ERROR in ch.qos.logback.classic.db.DBAppender[DataBase] - problem appending event java.sql.SQLException: Cannot call commit when using distributed transactions at java.sql.SQLException: Cannot call commit when using distributed transactions

        at      at weblogic.jdbc.wrapper.JTAConnection.commit(JTAConnection.java:355)

        at      at ch.qos.logback.core.db.DBAppenderBase.append(DBAppenderBase.java:116)

        at      at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88)

        at      at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)

        at      at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:282)

        at      at ch.qos.logback.classic.Logger.callAppenders(Logger.java:269)

        at      at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:470)

        at      at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:424)

        at      at ch.qos.logback.classic.Logger.info(Logger.java:628)

 

 

And I also see this:

 

<BEA-001153> <Forcibly releasing inactive connection "[weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection-UCS_DS-2, oracle.jdbc.driver.LogicalConnection@11d5e99]" back into the connection pool "UCS_DS", currently reserved by: java.lang.Exception

               at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:325)

               at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:363)

               at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:329)

               at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:417)

               at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:324)

               at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:94)

               at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:63)

               at weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:1677)

               at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1475)

               at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:446)

               at weblogic.jdbc.jta.DataSource.connect(DataSource.java:403)

               at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364)

               at ch.qos.logback.core.db.JNDIConnectionSource.getConnection(JNDIConnectionSource.java:63)

               at ch.qos.logback.core.db.ConnectionSourceBase.discoverConnectionProperties(ConnectionSourceBase.java:47)

               at ch.qos.logback.core.db.JNDIConnectionSource.start(JNDIConnectionSource.java:50)

               at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)

               at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:318)

               at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:197)

               at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:183)

               at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)

               at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:147)

               at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:133)

               at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:96)

               at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:55)

               at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)

               at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148)

               at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)

               at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:54)

               at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)

               at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)

               at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)

               at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)

               at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)

               at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)

               at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)

               at org.displaytag.tags.TableTag.<clinit>(TableTag.java:104)

               at java.lang.Class.forName0(Native Method)

               at java.lang.Class.forName(Class.java:169)

               at org.displaytag.tags.TableTagBeanInfo.class$(TableTagBeanInfo.java:42)

               at org.displaytag.tags.TableTagBeanInfo.getPropertyDescriptors(TableTagBeanInfo.java:41)

               at java.beans.Introspector.getTargetPropertyInfo(Introspector.java:501)

               at java.beans.Introspector.getBeanInfo(Introspector.java:410)

               at java.beans.Introspector.getBeanInfo(Introspector.java:232)

               at java.beans.Introspector.<init>(Introspector.java:389)

               at java.beans.Introspector.getBeanInfo(Introspector.java:232)

               at java.beans.Introspector.getBeanInfo(Introspector.java:218)

               at weblogic.jsp.internal.jsp.tag.TagInfoEx.getPropertyDescriptorSetterTypes(TagInfoEx.java:554)

               at weblogic.jsp.internal.jsp.tag.TagInfoEx.getSetterTypes(TagInfoEx.java:499)

               at weblogic.jsp.internal.jsp.tag.TagInfoEx.initAttributeTypes(TagInfoEx.java:395)

               at weblogic.jsp.internal.jsp.JspActionChecker.checkActionStart(JspActionChecker.java:287)

               at weblogic.jsp.internal.jsp.JspActionChecker.checkActions(JspActionChecker.java:214)

               at weblogic.jsp.internal.jsp.JspActionChecker.checkActions(JspActionChecker.java:228)

               at weblogic.jsp.internal.jsp.JspActionChecker.check(JspActionChecker.java:150)

               at weblogic.jsp.internal.jsp.JspCheckContext.check(JspCheckContext.java:67)

               at weblogic.jsp.internal.jsp.JspAnalyzer.check(JspAnalyzer.java:57)

               at weblogic.jsp.internal.ProxySourceFile._check(ProxySourceFile.java:136)

               at weblogic.jsp.internal.SourceFile.masterCheck(SourceFile.java:762)

               at weblogic.jsp.internal.SourceFile.check(SourceFile.java:314)

               at weblogic.jsp.internal.SourceFile.check(SourceFile.java:335)

               at weblogic.jsp.internal.ProxySourceFile.codeGen(ProxySourceFile.java:224)

               at weblogic.jsp.internal.SourceFile.codeGen(SourceFile.java:327)

               at weblogic.jsp.internal.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:599)

               at weblogic.jsp.internal.client.Job.performJob(Job.java:83)

               at weblogic.jsp.internal.client.ThreadPool$WorkerThread.run(ThreadPool.java:217)

.>

 

So my questions are:

 

1.      Is there a way to not throw the error?

2.      What type of performance impact can this cause?

 

 

Larry Smith