It might be simpler to avoid custom Java code. Is there a reason you are not using the log4j2-jdbc-dbcp2 module?
For example https://github.com/apache/logging-log4j2/blob/release-2.x/log4j-jdbc-dbcp2/src/test/resources/log4j2-jdbc-dbcp2.xml Gary On Thu, Jun 2, 2022, 08:13 Sébastien Jachym < sebastien.jac...@agri-commerce.fr> wrote: > I'm logging with log4j2 > > log4j2.xml : > <Configuration> > <Appenders> > <JDBC name="MySQLDatabase2" tableName="log4j2"> > <ConnectionFactory class="my.ConnectionFactory" > method="getConnection" /> > ... > <AsyncRoot level="trace"> > <AppenderRef ref="MySQLDatabase2" /> > > ConnectionFactory class : > public static Connection getConnection() throws SQLException { > dataSource = new org.apache.commons.dbcp2.BasicDataSource(); > dataSource.setUp ( url, user, pass, driver ) > > dataSource.setDefaultAutoCommit(false); > dataSource.setAutoCommitOnReturn(false); > dataSource.setRollbackOnReturn(false); > dataSource.setValidationQuery("SELECT 1"); > > // Connection connection = dataSource.getConnection(); > // connection.setAutoCommit(true); // no change, first is SET > autocommit=(0|1) and log4j2 next is SET autocommit=0 > // return connection; > return dataSource.getConnection(); > > In code call : > org.apache.logging.log4j.Logger.trace("hello") > > Finally calling logger, > use JDBC Appender > and get a connection from the BasicDataSource pool. > And continu outside my code with the unwanted transactional statement. > For writing log in my database. > > -----Message d'origine----- > De : Gary Gregory <garydgreg...@gmail.com> > Envoyé : jeudi 2 juin 2022 11:23 > À : Commons Users List <user@commons.apache.org> > Objet : Re: DBCP Database Connection Pools without transactionnal NO > autocommit > > Something is not clear to me: are you in control of calling JDBC or are you > using Log4j's JDBC Appender or something else? You description is not > detailed enough for me to understand who does what. > > Gary > > On Wed, Jun 1, 2022, 19:49 Sébastien Jachym < > sebastien.jac...@agri-commerce.fr> wrote: > > > Hello, > > Thank you Gary for you reply, but it doesn’t work with configuring > > BasicDataSource with : > > dataSource.setDefaultAutoCommit(false); > > dataSource.setAutoCommitOnReturn(false); > > dataSource.setRollbackOnReturn(false); > > > > There are changes, but always transactional with "SET autocommit" : > > SELECT @@session.transaction_isolation SELECT 1 -- ValidationQuery > > dans ConnectionFactory SET autocommit=0 SET SQL_SELECT_LIMIT=1 select > > > > date,logger,level,message,exception,pid,idUtilisateur,version,ip,marke > > rSimpleName,sqlLastInsertId,sqlTimeMillis > > from log4j2 where 1=0 > > SET SQL_SELECT_LIMIT=DEFAULT > > insert into log4j2 > > > > (date,logger,level,message,exception,pid,idUtilisateur,version,ip,mark > > erSimpleName,sqlLastInsertId,sqlTimeMillis) > > values (... the values ...) > > commit > > > > Also before returning the connection to my log4j2 Async Appenders > > whith ConnectionFactory, I force : connection.setAutoCommit(false); > > But result is same with transactional statements : > > SET autocommit=0 -- [ OR "SET autocommit=0" WITH > > connection.setAutoCommit(true); ] SET autocommit=0 SET > > SQL_SELECT_LIMIT=1 select > > > > date,logger,level,message,exception,pid,idUtilisateur,version,ip,marke > > rSimpleName,sqlLastInsertId,sqlTimeMillis > > from log4j2 where 1=0 > > SET SQL_SELECT_LIMIT=DEFAULT > > insert into log4j2 > > > > (date,logger,level,message,exception,pid,idUtilisateur,version,ip,mark > > erSimpleName,sqlLastInsertId,sqlTimeMillis) > > values ... > > commit > > > > Cheers. > > > > > > -----Message d'origine----- > > De : Gary Gregory <garydgreg...@gmail.com> Envoyé : mercredi 1 juin > > 2022 14:57 À : Commons Users List <user@commons.apache.org> Objet : > > Re: DBCP Database Connection Pools without transactionnal NO > > autocommit > > > > Hello, > > > > Try calling Connection#setAutoCommit(false) once you get a Connection. > > You'll likely want to configure your data source with > > org.apache.commons.dbcp2.BasicDataSource.setAutoCommitOnReturn(false) > > to avoid resetting the auto-commit flag. > > > > Gary > > > > On Tue, May 31, 2022 at 7:46 PM Sébastien Jachym > > <sebastien.jac...@agri-commerce.fr> wrote: > > > > > > Hy, is a way to fully disabled transactional (autocommit) statement > > > in DBCP ? > > > > > > > > > > > > Using Database Connection Pools with > > > org.apache.commons.dbcp2.BasicDataSource give me statements : > > > > > > > > > > > > SET autocommit=1 > > > > > > SET autocommit=0 > > > > > > SET SQL_SELECT_LIMIT=1 > > > > > > select > > > date,logger,level,message,exception,pid,idUtilisateur,version,ip,mar > > > ke rSimpleName,sqlLastInsertId,sqlTimeMillis > > > from log4j2 where 1=0 > > > > > > SET SQL_SELECT_LIMIT=DEFAULT > > > > > > insert into log4j2 > > > (date,logger,level,message,exception,pid,idUtilisateur,version,ip,ma > > > rk > > > erSimpleName,sqlLastInsertId,sqlTimeMillis) > > > values > > > ('2022-06-01','timertask','TRACE','WaitInitService','','45964','123',' > > > null','','','','0') > > > > > > commit > > > > > > rollback > > > > > > SET autocommit=1 > > > > > > > > > > > > But it's for MySQL MyISAM table, and I didn't need transactions, I > > > whish only : > > > > > > > > > > > > select > > > date,logger,level,message,exception,pid,idUtilisateur,version,ip,mar > > > ke rSimpleName,sqlLastInsertId,sqlTimeMillis > > > from log4j2 where 1=0 > > > > > > SET SQL_SELECT_LIMIT=DEFAULT > > > > > > insert into log4j2 > > > (date,logger,level,message,exception,pid,idUtilisateur,version,ip,ma > > > rk > > > erSimpleName,sqlLastInsertId,sqlTimeMillis) > > > values > > > ('2022-06-01','timertask','TRACE','WaitInitService','','45964','123',' > > > null','','','','0') > > > > > > > > > > > > Thanks for you replys. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > > For additional commands, e-mail: user-h...@commons.apache.org > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > > For additional commands, e-mail: user-h...@commons.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > For additional commands, e-mail: user-h...@commons.apache.org > >