2014-11-21 6 views
2

Я пытаюсь использовать log4j2 JDBCAppender в своем приложении Java EE в профиле WebSphere Liberty с помощью DataSource. Я интересно, если у меня есть ошибка конфигурации, потому что я вижу следующее сообщение об ошибке в моем журнале:Как настроить log4j2 JDBCAppender с DB2 в профиле WebSphere Liberty

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> 

А вот мой DataSource конфигурации от 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> 

Кто-нибудь видит что-нибудь, что я могу делать неправильно здесь?

ответ

2

Remko's hint может быть правильным, для свободы, чтобы добиться того, чтобы добавить transactional="false" к определению источника данных в server.xml:

<dataSource transactional="false" ...>