jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexandru Popescu <the.mindstorm.mailingl...@gmail.com>
Subject Re: SQLException "Data too long" using SimpleDbPersistenceManager/MySQL
Date Wed, 19 Apr 2006 11:24:22 GMT
Hi Stefan.


I am wondering if this problem may occur with Derby too?

tia,

./alex
--
.w( the_mindstorm )p.

#: Stefan Guggisberg changed the world a bit at a time by saying (astral date: 4/19/2006 11:03
AM) :#
> hi daniel
> the default schema for mysql uses 'blob' columns for storing
> serialized node states.
> the blob data type has a maximum size limit of 65k. if your repository needs
> to store large numbers of child nodes per node you can use the 'mediumblob'
> data type instead.
> 
> e.g.
> create table default_NODE (NODE_ID char(36) not null, NODE_DATA
> mediumblob not null);
> 
> btw: you should in general try to avoid flat hierarchies in jackrabbit
> as they come at
> a certain performance cost.
> 
> cheers
> stefan
> 
> On 4/18/06, Daniel Hagen <dhagen@h1-software.de> wrote:
>> Hi,
>>
>> I noticed a problem during a test using the SimbpleDbPersistenceManager and
>> MySQL 5.0.
>> Strangely enough this problem occurred only after some nodes (~25000) where
>> created in the repository.
>>
>> Now I receive the following error when creating a node:
>>
>> ERROR org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager -
>> failed to write node state: ea7f3f8b-97fe-450d-8a8a-2b6d84c711c1
>> java.sql.SQLException: Data too long for column 'NODE_DATA' at row 1
>>         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
>>         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
>>         at
>> com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement
>> .java:1085)
>>         at
>> com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStateme
>> nt.java:670)
>>         at
>> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1159)
>>         at
>> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1076)
>>         at
>> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1061)
>>         at
>> org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.store(SimpleD
>> bPersistenceManager.java:585)
>>         at
>> org.apache.jackrabbit.core.state.AbstractPersistenceManager.store(AbstractPe
>> rsistenceManager.java:75)
>>         at
>> org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.store(SimpleD
>> bPersistenceManager.java:446)
>>         at
>> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedIte
>> mStateManager.java:569)
>>         at
>> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemSta
>> teManager.java:692)
>>         at
>> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemState
>> Manager.java:315)
>>         at
>> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManage
>> r.java:322)
>>         at
>> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemState
>> Manager.java:291)
>>         at
>> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemS
>> tateManager.java:257)
>>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1189)
>>         at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:805)
>>
>> Am I missing some MySQL Parameters I have to set?
>>
>> The ddl I used to create the tables is
>>
>> create table default_NODE (NODE_ID char(36) not null, NODE_DATA blob not
>> null) TYPE=InnoDB;
>> create unique index default_NODE_IDX on default_NODE (NODE_ID);
>> create table default_PROP (PROP_ID varchar(255) not null, PROP_DATA blob not
>> null) TYPE=InnoDB;
>> create unique index default_PROP_IDX on default_PROP (PROP_ID);
>> create table default_REFS (NODE_ID char(36) not null, REFS_DATA blob not
>> null) TYPE=InnoDB;
>> create unique index default_REFS_IDX on default_REFS (NODE_ID);
>> create table default_BINVAL (BINVAL_ID varchar(255) not null, BINVAL_DATA
>> longblob not null) TYPE=InnoDB;
>> create unique index default_BINVAL_IDX on default_BINVAL (BINVAL_ID);
>>
>> Does anybody have a clue as to what is going wrong?
>> I will gladly provide more information (logs etc) if required.
>>
>> Regards
>>
>> Daniel
>>
>>
> 


Mime
View raw message