如何在WebSphere Liberty概要文件中使用DB2配置log4j2 JDBCAppender

如何在WebSphere Liberty概要文件中使用DB2配置log4j2 JDBCAppender,db2,websphere,log4j2,websphere-liberty,Db2,Websphere,Log4j2,Websphere Liberty,我试图在WebSphereLiberty概要文件中的JavaEE应用程序中使用带有数据源的log4j2 JDBCAppender。我想知道我是否有配置错误,因为我在日志中看到以下错误: Caused by: java.sql.SQLException: DSRA9350E: Operation Connection.commit is not allowed during a global transaction. at com.ibm.ws.rsadapter.jdbc.WSJdb

我试图在WebSphereLiberty概要文件中的JavaEE应用程序中使用带有数据源的log4j2 JDBCAppender。我想知道我是否有配置错误,因为我在日志中看到以下错误:

Caused by: java.sql.SQLException: DSRA9350E: Operation Connection.commit is not allowed during a global transaction.  
    at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.commit(WSJdbcConnection.java:778)  
    at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:139)  
    ... 84 more  
2014-11-20 20:23:33,663 ERROR An exception occurred processing Appender OneViewPrimaryLogDatabase org.apache.logging.log4j.core.appender.AppenderLoggingException: Failed to commit transaction logging event or flushing buffer.  
这是我的log4j配置数据:

    <JDBC name="OneViewPrimaryLogDatabase" tableName="IONEVIEW.LOG">  
        <DataSource jndiName="jdbc/OneViewPrimaryLogDataSource" />  
        <Column name="LOGDATE" isEventTimestamp="true" />  
        <Column name="LOGGER" pattern="%logger" isUnicode="false" />  
        <Column name="LOGLEVEL" pattern="%level" isUnicode="false" />  
        <Column name="MESSAGE" pattern="%message" isUnicode="false" />  
    </JDBC>  

这是我的WLP数据源配置:

<jdbcDriver id="Db2V105JdbcDriver">
    <library id="Db2V105JdbcDriverJars">
        <fileset dir="C:/IBM/DB2V105/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/>
    </library>
</jdbcDriver>
<dataSource id="OneViewPrimaryLogDataSource" jdbcDriverRef="Db2V105JdbcDriver" jndiName="jdbc/OneViewPrimaryLogDataSource" type="javax.sql.ConnectionPoolDataSource">
    <properties.db2.jcc databaseName="OVHALOGP" password="XXXX" portNumber="60008" user="myuser" serverName="myserver"/>
</dataSource>


有人看到我可能做错了什么吗?

有人通过检查WAS中的“非事务性数据源”解决了此问题:

您可以试一试吗?

可能是正确的,为了实现这一点,请在
server.xml
中的数据源定义中添加
transactional=“false”

<dataSource transactional="false"  ...>