Hi Larry,

The SQLException is rather explicit. DBAppedner "cannot call commit
when using distributed transactions". The commit occurs on line 116 of
DBAppenderBase. Ideally, DBAppender should be able to automatically
determine whether it participates in a distributed transactions and
skip committing. If that is not feasible, there should be an explicit
property telling DBAppedner not to commit. Please create a jira issue
to request this feature/fix.

Does error BEA-001153 occur independently of DBAppender? If so, I
suspect DBAppender is not at cause here.

Cheers,
--
Ceki
http://twitter.com/#!/ceki


On 18.06.2012 06:21, Smith, Larry (ECS - Enterprise Cloud Service) wrote:
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:

<appendername=/"DataBase"/ class=/"ch.qos.logback.classic.db.DBAppender"/>

<connectionSourceclass=/"ch.qos.logback.core.db.JNDIConnectionSource"/>

<paramname=/"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



_______________________________________________
Logback-user mailing list
Logback-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user

Reply via email to