jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Guggisberg <stefan.guggisb...@gmail.com>
Subject Re: Database persistent storage
Date Mon, 19 Dec 2005 12:03:39 GMT
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, milhri@lidp.com <milhri@lidp.com> 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, milhri@lidp.com <milhri@lidp.com> 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
> > > >
> > > > milhri@lidp.com 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
> > >                                                milhri@lidp.com
> > >                                                nihilum in temperantia
> > >
> >
>
> --
>                                             Sincerely,
>
>                                                Rick Milheron
>                                                FLMI,ACS
>                                                LIDP Consulting, Inc.
>                                                Phone 630.829.7136
>                                                milhri@lidp.com
>                                                nihilum in temperantia
>

Mime
View raw message