jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mil...@lidp.com
Subject Re: Database persistent storage
Date Fri, 16 Dec 2005 22:30:07 GMT
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