powered by Jive Software

Errors with IM Gateway, OpenFire3.4.1, Oracle9i,ojdbc14.jar

errors with IM Gateway, OpenFire3.4.1, Oracle9i, ojdbc14.jar

no buddy icons of the msn friends.

errors copy from error.log:

2007.11.14 16:54:52 org.jivesoftware.openfire.gateway.util.Log4JToOpenfireAppender.append(Log4JToOpe nfireAppender.java:49) Avatar: SQL exception while inserting avatar:

java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)

at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)

at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)

at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.jav a:952)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:11 60)

at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatem ent.java:3285)

at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatemen t.java:3368)

at org.jivesoftware.openfire.gateway.avatars.Avatar.insertIntoDb(Avatar.java:227)

at org.jivesoftware.openfire.gateway.avatars.Avatar.<init>(Avatar.java:109)

at org.jivesoftware.openfire.gateway.protocols.msn.MSNListener$1.notifyMsnObjectRe trieval(MSNListener.java:240)

at net.sf.jml.message.p2p.DisplayPictureRetrieveWorker.notifyFinalization(DisplayP ictureRetrieveWorker.java:172)

at net.sf.jml.message.p2p.DisplayPictureRetrieveWorker.p2pMessageReceived(DisplayP ictureRetrieveWorker.java:680)

at net.sf.jml.impl.AbstractMessenger.fireP2PMessageReceived(AbstractMessenger.java :374)

at net.sf.jml.message.p2p.MsnP2PMessage.messageReceived(MsnP2PMessage.java:131)

at net.sf.jml.message.IncomingMimeMessage.messageReceived(IncomingMimeMessage.java :56)

at net.sf.jml.protocol.MsnSession$1.messageReceived(MsnSession.java:105)

at net.sf.cindy.impl.AbstractSession$6.doRun(AbstractSession.java:341)

at net.sf.cindy.impl.AbstractSession$DispatchObject.run(AbstractSession.java:395)

at net.sf.cindy.impl.SimpleDispatcher.dispatch(SimpleDispatcher.java:35)

at net.sf.cindy.impl.AbstractSession.dispatch(AbstractSession.java:249)

at net.sf.cindy.impl.AbstractSession.dispatchMessageReceived(AbstractSession.java: 335)

at net.sf.cindy.impl.StreamChannelSession.recognizeMessageAndDispatch(StreamChanne lSession.java:77)

at net.sf.cindy.impl.StreamChannelSession.readFromChannel(StreamChannelSession.jav a:53)

at net.sf.cindy.impl.ChannelSession.onReadable(ChannelSession.java:212)

at net.sf.cindy.impl.ChannelSession.onEvent(ChannelSession.java:134)

at net.sf.cindy.impl.SocketSession.onEvent(SocketSession.java:119)

at net.sf.cindy.impl.SimpleEventGenerator.processKey(SimpleEventGenerator.java:212 )

at net.sf.cindy.impl.SimpleEventGenerator.run(SimpleEventGenerator.java:192)

at net.sf.cindy.impl.SimpleEventGenerator.access$000(SimpleEventGenerator.java:54)

at net.sf.cindy.impl.SimpleEventGenerator$1.run(SimpleEventGenerator.java:115)

thanks.

I’m very confused considering I didn 't create any “LONG” columns. Only INTEGER. Any thoughts?

I changed another ojdbc.jar, and the error information looks like:

2007.12.12 10:08:07 org.jivesoftware.openfire.gateway.util.Log4JToOpenfireAppender.append(Log4JToOpe nfireAppender.java:49) Avatar: SQL exception while inserting avatar:

java.sql.SQLException: Data size bigger than max size for this type: 24838

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)

at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:147)

at oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2460)

at oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java :1190)

at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.ja va:1610)

at org.jivesoftware.openfire.gateway.avatars.Avatar.insertIntoDb(Avatar.java:279)

at org.jivesoftware.openfire.gateway.avatars.Avatar.<init>(Avatar.java:120)

at org.jivesoftware.openfire.gateway.protocols.msn.MSNListener$2.notifyMsnObjectRe trieval(MSNListener.java:309)

at net.sf.jml.message.p2p.DisplayPictureRetrieveWorker.notifyFinalization(DisplayP ictureRetrieveWorker.java:181)

at net.sf.jml.message.p2p.DisplayPictureRetrieveWorker.p2pMessageReceived(DisplayP ictureRetrieveWorker.java:726)

at net.sf.jml.impl.AbstractMessenger.fireP2PMessageReceived(AbstractMessenger.java :390)

at net.sf.jml.message.p2p.MsnP2PMessage.messageReceived(MsnP2PMessage.java:132)

at net.sf.jml.message.IncomingMimeMessage.messageReceived(IncomingMimeMessage.java :56)

at net.sf.jml.protocol.MsnSession$1.messageReceived(MsnSession.java:105)

Look at the code:(Avatar.java:279)

pstmt.setString(7, imageData);

But the imageData column in Oracle DB is BLOB!

You cann’t use pstmt.setString() for Oracle BLOB, can you?

Not only the ImageData(BLOB) in table GatewayAvatars, but the VCard(LONG) in table JiveVCard, and other Big Data Column (BLOB, LONG) in oracle goes wrong. I think the problem is, you can not use pstmt.setString() for Oracle Blob and Long.

Please check the errors. Thanks.

Why wouldn’t you be able to set a string into a BLOB? String characters are included in “binary”. The error doesn’t appear to indicate a problem with the data type but more of a problem with the max size allowed for the column. Of course, BLOB is capped at something like 4 GB, so that doesn’t make a lot of sense.

I don’t have an oracle server to test against. All I can find o nthe net are references to ‘upgrade your ojdbc driver’, but it sounds like you might have done that. What did you download exactly?