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 <[EMAIL PROTECTED]> 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 > >
