[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[xmlblaster] error report in JdbcManagerCommonTable.java when using database for durable subscriptions
Hi,Marcel
I had found something report error when I using an oracle database for
durable subscriptions(every message needs to be stored is about 5000k).the errors are:
[2003-8-23 11:19:41 WARN JdbcManagerCommonTable-XB_-xmlBlaster_192_168_80_11_3412-msgUnitStore_i
nforMessaging_192_168_80_11_3412sblszsnsrxx-addEntry()] Could not insert entry 'org.xmlBlaster.e
ngine.MsgUnitWrapper'-'sblszsnsrxx/2003-08-23 11:19:41.353000001-1060053581353000001': java.sql.SQLE
xception: inserted value too large for column: 18998
[2003-8-23 11:19:42 ERROR org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin-msgUnitStor
e:xmlBlaster_192_168_80_11_3412/sblszsnsrxx] put: an error occured when writing to the persisten
t queue, transient entry sblszsnsrxx/2003-08-23 11:19:41.353000001 is not swapped and will be lost.
Is the DB up and running ? xmlBlasterException errorCode=[resource.db.unknown] serverSideExcepti
on=true node=[xmlBlaster_192_168_80_11_3412] location=[JdbcManagerCommonTable.addEntry] message=
[An unknown error with the backend database using JDBC occurred : java.sql.SQLException: inserted
value too large for column: 18998] state:
<PersistenceCachePlugin id='msgUnitStore:xmlBlaster_192_168_80_11_3412/sblszsnsrxx' type='CACHE
' version='1.0' numOfEntries='95' numOfBytes='2094335'>
<MapPlugin id='msgUnitStore:xmlBlaster_192_168_80_11_3412/sblszsnsrxx' type='RAM' version='1.0
' numOfEntries='95' numOfBytes='2094335'>
<persistence relating='msgUnitStore' maxEntries='1000000' maxEntriesCache='1000000' maxBytes='209
7152'/>
</MapPlugin>
<JdbcQueueCommonTablePlugin id='msgUnitStore:xmlBlaster_192_168_80_11_3412/sblszsnsrxx' type='
JDBC' version='1.0' numOfEntries='0' numOfBytes='0'>
<persistence relating='msgUnitStore' maxEntries='100000000' maxEntriesCache='1000000'/>
<numOfPersistentsCached>0</numOfPersistentsCached>
<sizeOfPersistentsCached>0</sizeOfPersistentsCached>
<numOfEntriesCached>0</numOfEntriesCached>
<numOfBytesCached>0</numOfBytesCached>
<numOfEntries>0</numOfEntries>
<numOfBytes>0</numOfBytes>
<numOfPersistents>0</numOfPersistents>
<sizeOfPersistents>0</sizeOfPersistents>
</JdbcQueueCommonTablePlugin>
</PersistenceCachePlugin>
i had modified some codes in JdbcManagerCommonTable.java, and the problem is solved.
the modification are:
//preStatement.setBytes(5, blob);
//use this bytes array to construct a InputStream
ByteArrayInputStream blob_stream = new ByteArrayInputStream(blob) ;
// preStatement.setBytes(5, blob);
preStatement.setBinaryStream(5, blob_stream,(int)sizeInBytes);
In my option,setBytes mothed is limited by length of blob object, but setBinaryStream not.
Marcel, any problem in my modification?
regards
pikaiyuan
pi_kyuan at cvicse.com
2003-08-25