hi rick
i guess you will have to do some debugging ;) first of all
we need to know at which location in SimpleDbPersistenceManager
the exception is thrown. a full stack trace would be ideal.
what sql stmt caused the exception? etc etc
set breakpoints in the follwing methods of SimpleDbPersistenceManager:
#store(NodeState)
#store(PropertyState)
and step through the code.
also provide complete repository.xml *and* workspace.xml.
cheers
stefan
On 12/16/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Edgar et.al.
>
>
> Status report on DB2 persistent storage. Have a problem with
> keys, I think.
>
> 1.
>
> Beginning from
>
> /home/milhri/repotestdb
> jaas.config
> repository.xml
>
> <PersistenceManager
> class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
> <param name="driver" value="COM.ibm.db2.jdbc.app.DB2Driver"/>
> <param name="url" value="jdbc:db2:a2test"/>
> <param name="user" value="a2test"/>
> <param name="password" value="a2test"/>
> <param name="schema" value="derby"/>
> <param name="schemaObjectPrefix" value="${wsp.name}_"/>
> <param name="externalBLOBs" value="false"/>
> </PersistenceManager
>
> Executed program, got exception
>
> org.apache.jackrabbit.core.config.ConfigurationException: Replacement
> not found for ${wsp.name}
>
>
> 2.
>
> Hardcoded all ${wsp.name} to 'default', executed program.
>
> Got an error from db2 indicating columns were in excess of 1024.
>
> (Can provide more complete information if someone wants it).
>
> 3.
>
> Checked manual found that columns are max 1024 plus overhead.
>
> Made a new .ddl 'db2.ddl' where
>
> create table ${schemaObjectPrefix}PROP (PROP_ID varchar(1000)
> create table ${schemaObjectPrefix}BINVAL (BINVAL_ID varchar(1000)
>
> Changed repository.xml
>
> <PersistenceManager
> class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
> <param name="driver" value="COM.ibm.db2.jdbc.app.DB2Driver"/>
> <param name="url" value="jdbc:db2:a2test"/>
> <param name="user" value="a2test"/>
> <param name="password" value="a2test"/>
> <param name="schema" value="db2"/>
> <param name="schemaObjectPrefix" value="default_"/>
> <param name="externalBLOBs" value="false"/>
> </PersistenceManager>
>
> 4.
>
> Executed program, got
>
> init >>>>>>>>>>>>javax.jcr.RepositoryException: /: unable to update
> item.: failed to write property state:
> deadbeef-face-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType:
> [IBM][CLI Driver][DB2/6000] SQL0803N One or more values in the INSERT
> statement, UPDATE statement, or foreign key update caused by a DELETE
> statement are not valid because the primary key, unique constraint or
> unique index identified by "1" constrains table "A2TEST.DEFAULT_PROP"
> from having duplicate rows for those columns. SQLSTATE=23505
> : failed to write property state:
> deadbeef-face-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType:
> [IBM][CLI Driver][DB2/6000] SQL0803N One or more values in the INSERT
> statement, UPDATE statement, or foreign key update caused by a DELETE
> statement are not valid because the primary key, unique constraint or
> unique index identified by "1" constrains table "A2TEST.DEFAULT_PROP"
> from having duplicate rows for those columns. SQLSTATE=23505
>
> Directory structure looks like
>
> /home/milhri/repotestdb
> jaas.config
> repository
> meta
> rep.properties
> rootUUID
> namespaces
> ns_reg.properties
> nodetypes
> repository.xml
> versions
> workspaces
> default
> workspace.xml
>
>
> Tables are created
>
> Database product name is DB2/6000
>
>
> Schema A2TEST Table DEFAULT_BINVAL Column BINVAL_ID
> Schema A2TEST Table DEFAULT_BINVAL Column BINVAL_DATA
> Schema A2TEST Table DEFAULT_NODE Column NODE_ID
> Schema A2TEST Table DEFAULT_NODE Column NODE_DATA
> Schema A2TEST Table DEFAULT_PROP Column PROP_ID
> Schema A2TEST Table DEFAULT_PROP Column PROP_DATA
> Schema A2TEST Table DEFAULT_REFS Column NODE_ID
> Schema A2TEST Table DEFAULT_REFS Column REFS_DATA
>
> And have some entries
>
> db2 "select * from DEFAULT_NODE"
>
> NODE_ID NODE_DATA
> ------------------------------------ -------------------------------
> deadbeef-face-babe-cafe-babecafebabe x'00187B696E7465726E616C7D76657
> cafebabe-cafe-babe-cafe-babecafebabe x'000E7B696E7465726E616C7D726F6
>
>
> db2 "select * from DEFAULT_PROP"
>
> PROP_ID
> ----------------------------------------------------------------------------
> deadbeef-face-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType
> cafebabe-cafe-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType
>
> PROP_DATA
> --------------------------------------------------------------------------
> x'0000000700000A31323636363637313430000000000001000000187B696E7465726E61
> x'0000000700000A313236363636373134300000000000010000000E7B696E7465726E61
>
>
> db2 "select * from DEFAULT_REFS"
>
> NODE_ID REFS_DATA
> ------------------------------------ --------------------------------------
> 0 record(s) selected.
>
>
> db2 "select * from DEFAULT_BINVAL"
>
> BINVAL_ID BINVAL_DATA
> ----------------------------------- --------------------------------------
> 0 record(s) selected.
>
>
>
> On Fri, Dec 16, 2005 at 02:43:03PM -0300, Edgar Poce wrote:
> > Hi rick,
> >
> > On 12/16/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > > Edgar
> > >
> > > Here is where I am to date:
> > >
> > > /home/milhri/repotestdb
> > > jaas.config
> > > repository.xml
> > >
> > > <Workspace name="${wsp.name}">
> > ...
> > > </Workspace>
> >
> > AFAIK the workspace part of the repository.xml[1] is used as a
> > template to create the workspace.xml[2], which contains the workspace
> > specific settings. Once you changed the repository.xml settings the
> > existing workspaces configurations do not change. I'm not sure, but I
> > think that might be the cause of your problem.
> >
> > Try to remove every folder under the repository home ("repository" and
> > "workspaces"), modify the repository.xml to match your db config and
> > run jackrabbit. Jackrabbit should fill the ${xxx} variables for the
> > default workspace or any other workspace you create.
> >
> > hope this helps,
> > edgar
> >
> > [1] ${JACKRABBIT_HOME}/repository.xml
> > [2] ${JACKRABBIT_HOME}/workspaces/${WORKSPACE_NAME}/workspace.xml
> >
> >
> >
> >
> > >
> > >
> > > I built a test program to exercise java.sql.DatabaseMetaData and
> > > the connection utility I am using looks like
> > >
> > > try
> > > {
> > > String driverStr = "jdbc:db2:"+dbname;
> > > Class driveClass =
> > > Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
> > > con = DriverManager.getConnection(driverStr, username, pwsd);
> > > }
> > >
> > > where dbname = "a2test", username = "a2test", and pwsd = "a2test".
> > > My test program functions properly
> > >
> > >
> > > e.g.
> > >
> > > /home/milhri/QueryDbMeta.java
> > >
> > > 1. ------------------------------------------
> > > Database product name is DB2/6000
> > >
> > >
> > > 2. ------------------------------------------
> > > schema preferred term is schema
> > >
> > >
> > > schemas available
> > > A2TEST
> > > NULLID
> > > SQLJ
> > > SYSCAT
> > > SYSFUN
> > > SYSIBM
> > > SYSPROC
> > > SYSSTAT
> > > SYSTOOLS
> > >
> > > etc.
> > >
> > > When I attempt to run my jackrabbit program, I get
> > >
> > > /home/milhri>java
> > > -Djava.security.auth.login.config==/home/milhri/repotestdb/jaas.config
> > > JCRDbTest > testdb
> > >
> > > init
> > > >>>>>>>>>>>>org.apache.jackrabbit.core.config.ConfigurationException:
> > > Replacement not found for ${wsp.name}.
> > > checkRootNode >>>>>>>>>>>>java.lang.NullPointerException
> > > createNamespace >>>>>>>>>>>>java.lang.NullPointerException
> > > addContent >>>>>>>>>>>>java.lang.NullPointerException
> > > browseContent >>>>>>>>>>>>java.lang.NullPointerException
> > > browseAll >>>>>>>>>>>>java.lang.NullPointerException
> > >
> > >
> > > Any ideas why the ${wsp.name} is not found?
> > >
> > > Thanks.
> > >
> > >
> > >
> > > On Thu, Dec 15, 2005 at 09:42:28PM -0300, Edgar Poce wrote:
> > > > Hi rick,
> > > >
> > > > you can take a look to
> > > > http://incubator.apache.org/jackrabbit/apidocs/org/apache/jackrabbit/core/state/db/SimpleDbPersistenceManager.html,
> > > > it contains documentation and examples that will help you to configure
> > > > your
> > > > jdbc connection.
> > > >
> > > > br,
> > > > edgar
> > > >
> > > > [EMAIL PROTECTED] wrote:
> > > > >First time mailer...
> > > > >
> > > > >I have successfully downloaded Apache Jackrabbit, and
> > > > >developed (from a variety of sources) a couple of working
> > > > >repositories. Further, I haven't added anything to the standard
> > > > >configuration.
> > > > >
> > > > >e.g.
> > > > >
> > > > >/home/milhri
> > > > > JCRTest.java
> > > > > repotest
> > > > > JackTest.java
> > > > > repotest2
> > > > >
> > > > >/home/milhri/repotest2
> > > > > jaas.config
> > > > > repository
> > > > > repository.xml
> > > > > versions
> > > > > workspaces
> > > > >
> > > > >In both cases, I am using local flat files for persistent storage.
> > > > >I need to demo persistent data storage in a database.
> > > > >
> > > > >Database server = DB2/6000 8.2.1
> > > > >
> > > > >We currently use this database as persistent storage for a J2EE
> > > > >application.
> > > > >
> > > > >Can someone lend assistance getting a similar example program to
> > > > >persist data in the database above?
> > > > >
> > > > >Thanks.
> > > > >
> > > >
> > >
> > > --
> > > Sincerely,
> > >
> > > Rick Milheron
> > > FLMI,ACS
> > > LIDP Consulting, Inc.
> > > Phone 630.829.7136
> > > [EMAIL PROTECTED]
> > > nihilum in temperantia
> > >
> >
>
> --
> Sincerely,
>
> Rick Milheron
> FLMI,ACS
> LIDP Consulting, Inc.
> Phone 630.829.7136
> [EMAIL PROTECTED]
> nihilum in temperantia
>