[ 
https://issues.apache.org/jira/browse/LOG4J2-2715?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary D. Gregory resolved LOG4J2-2715.
-------------------------------------
    Fix Version/s: 2.17.2
       Resolution: Fixed

I updated the site documentation but the changes will only appear when the next 
release is published.

 

> JDBCAppender commits to the DB a JTA RollbackOnly transaction and causes DB 
> inconsistency
> -----------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-2715
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2715
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders, JDBC
>    Affects Versions: 2.9.1, 2.12.1
>         Environment: Container Payara 5.183,
> Application: EAR using EJB 3, Hibernate 5.3.6-FINAL
> JDBC Driver: Oracle Driver ojdbc8
>            Reporter: David Obber
>            Priority: Critical
>             Fix For: 2.17.2
>
>
> I'm using log4j2 in a Payara 5.183 server and I've enabled a JDBC Appender 
> connected to a JNDI datasource.
> <JDBC name="DBAppender" tableName="LOG_TABLE">
>     <DataSource jndiName="myJNDI"></DataSource>
>     <Column ..." />   
>      <Column ..." />
> </JDBC>
> The same datasource is used by the application to talk with the db. If the 
> application, that uses EJB3, marks the transaction to be rolled back 
> (sessionContext.setRollbackOnly()), each statement sent to the database 
> (flush(), executeUpdate()) inside the transaction must not be committed.
> What happens is that using the *jdbc appender* causes a commit that 
> *{color:#de350b}writes to the database everything{color}*, *causing database 
> inconsistency*.
> Using DriverManager instead of a JNDI works fine, but I don't know if I can 
> set a connection pool with it.
>  
> When log4j is inside a JTA transaction it should use another JDBC connection 
> to log.
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to