Issues while saving MUC conversation logs

Hi,

We are observing throusands of below mentioned error messages per day in openfire logs:

2009.09.02 07:14:50 [org.jivesoftware.openfire.muc.spi.MUCPersistenceManager.saveConversationLogEnt ry(MUCPersistenceManager.java:991)] Error saving conversation log entry
java.sql.SQLException: Incorrect string value: ‘\xEF\xBB\xBFB-3…’ for column ‘body’ at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja va:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
at $java.sql.PreparedStatement$$EnhancerByProxool$$95638d4c.executeUpdate()
at org.jivesoftware.openfire.muc.spi.MUCPersistenceManager.saveConversationLogEntr y(MUCPersistenceManager.java:987)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.logConversation(Mult iUserChatServiceImpl.java:415)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$100(MultiUser ChatServiceImpl.java:64)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$LogConversationTask. run(MultiUserChatServiceImpl.java:401)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

openfire version: 3.6.4

Operating System: Ubuntu Hardy

Database: Mysql 5.0.51a-3ubuntu5.4

JDBC: mysql-connector-java-5.0.8

DB Connection URL: jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&ch aracterSetResults=UTF-8

Main issue is that few messages in MUC rooms are not getting stored in DB, hence they are not available for future references. So, I am suspecting the above mentioned messages relate to this issue. Did anyone else observe the same? Any ideas to fix this problem?

Appreciate any pointers to resolve this issue. Thanks in advance.

Thanks,

Satish

Any updates? This has been affecting us a lot, as we are not able to rely on openfire for logging the MUC conversation logs.

Thanks

Did anyone else observe this issue?? Any suggestions for fixing this issue??

Openfire and the JDBC driver are using UTF-8. How is the DB configured? What’s the default charset and what’s the charset used for the database? latin or utf-8?

Regards,

– Gato

looks like the default charset used the DB is latin1. Does this mis-match could be the issue? Do we need to update it to utf-8?

Thanks

Yep, change the database to use UTF-8 so that everything is UTF-8 (DB, JDBC and Openfire). This bug report helped me diagnose the problem.

Regards,

– Gato