You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "nicolas.jouanin" <ni...@gmail.com> on 2005/12/19 19:44:51 UTC
Oracle as Persistence manager
Hi,
I read a previous thread concerning the use of Oracle with JackRabbit (see
below for copy).
As written, it seems not so simple to make it work.
Nevertheless, I wrote an oracle.ddl file (attached to this email) based on
mysql.ddl where I simply replaced some data types:
- longblob -> blob
- char -> varchar2 (Oracle doesn't like char)
Then I configured repository.xml correctly and used this configuration to
run this famous jLibrary software. To my surprise it worked, and managed to
create a repository, and add some nodes : some jlibrary folders, and some
PDF documents node.
So , it may be need some more testing ; has someone achieved to make
jackrabbit run with Oracle, let me know.
Regards, Nicolas.
Original message:
Antonis Tsaltas
<An...@eurodyn.com>to jackrabbit-dev
More options Dec 15 (3 days ago)
Dear all,
I am trying to use oracle with jackrabbit and the steps I have followed
are the following:
1) I have created the ddl files needed for creating the schemas with
oracle database similar to the existing ones and add them to the
appropriate package in the jackrabbit jar generated after the build.
However, when I tried to run a sample application I got nested
exceptions during the configuration of the repository and more specific
during the insertion of the root node due to the case that Oracle is
treating an emptry string and null as the same and the fsname of the
root node is empty string.
2) Next I tried to allow nullable values for the fsname as this will
only be the case for the root node and there will be no manual updates
to the repository. At this point it failed again when it tried to add an
entry '/meta' in fsentries table when it was checking if the parent of
this node exists (which is root node '/' ). There it performs the
following query:
select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
FSENTRY_NAME is null
which is in oracle equivalent with this:
select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
FSENTRY_NAME=''
and then it tries to insert the root node again but there is the logical
constraint:
create unique index ${schemaObjectPrefix}FSENTRY_IDX on
${schemaObjectPrefix}FSENTRY
(FSENTRY_PATH, FSENTRY_NAME).
Are there any suggestion or does anyone know if jackrabbit can work fine
with oracle db server?
Thanx
Stefan Guggisberg
to jackrabbit-dev
More options Dec 15 (3 days ago)
hi antonis
- Show quoted text -
well there's no reason why that shouldn't be the case in general.
but because of oracle's rather exotic and non-standard 'feature' of treating
empty values as null you will probably have to write some oracle specific
code :(
cheers
stefan
>
> Thanx
>
Re: Oracle as Persistence manager
Posted by Nicolas Jouanin <ni...@gmail.com>.
2005/12/29, Stefan Guggisberg <st...@gmail.com>:
>
> On 12/29/05, nicolas.jouanin <ni...@gmail.com> wrote:
> > Hi,
> > That's what happened actually, we were not talking of the same thing...
> >
> > If I understand correctly, we should use DbFileSystem AND
> > SimpleDbPersistenceManager if we want a complete DB repository.
>
> correct. the downside is that that the repository state and workspace
> configuration is not easily accessible/readable any more.
Still accessible through SQL select statements or is everything put into
blob ?
>
> > My comments:
> > Errors occurs when trying to insert the root folder in FSENTRY because
> it
> > tries to insert a string of length zero in field FSENTRY_NAME : in the
> case
> > of the root folder, FSENTRY_NAME is '' and FSENTRY_PATH is '/'.
> > So, one solution (for Oracle and may be others) could be to not split
> PATH
> > and NAME and store the complete path into a single field which would
> never
> > be '', even for the root which would be '/' in that case. The index
> primary
> > key could be then set to this column. Concerning DbFileSystem, it would
> only
> > need to be modified to stop splitting PATH and NAME , and manage this
> > difference.
> > May be there's something I don't see and splitted PATH is needed
> somewhere
> > else, but I can try to write a DbFileSystem modified to do what I
> explained.
>
> the reason why path and name are splitted is that it e.g. allows to easily
> and
> efficiently list child entries of a folder. have a look at the sql stmts
> used by
> DbFileSystem.
In that case , the LIKE operator can also be used to get the children of a
folder. It's still efficient because Oracle can still use a range scan of
the indexed column. Nevertheless ,the best way to get children given a
folder is through a foreign key which could be null for the root folder.
cheers
> stefan
>
> >
> > Regards,
> >
> > Nicolas.
> >
> > -----Message d'origine-----
> > De: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
> > Envoyé: mercredi 21 décembre 2005 13:31
> > À: jackrabbit-dev@incubator.apache.org
> > Objet: Re: Oracle as Persistence manager
> >
> > i assume antonis is talking of DbFileSystem whereas nicolas
> > is referring to SimpleDbPersistenceManager.
> >
> > to sum it up:
> > - using SimpleDbPersistenceManager for oracle seems to
> > be no problem (with the right .ddl) as no empty strings
> > are stored.
> > - DbFileSystem needs to be adapted/tweaked for oracle
> > because of oracle's rather peculiar and non-standard
> > emtpy value handling 'feature' ("" is treated as null :(
> >
> > please note that normally you don't need DbFileSystem.
> > using SimpleDbPersistenceManager with LocalFileSystem
> > is absolutely fine.
> >
> > cheers
> > stefan
> >
> >
> >
> > On 12/20/05, nicolas.jouanin <ni...@gmail.com> wrote:
> > > Hi,
> > >
> > > May be we misunderstood one what we do each other ...
> > >
> > > I wrote oracle.ddl from mysql.dll which is the
> > > org.apache.jackrabbit.core.state.db package.
> > >
> > > This files contains DDL commands for creating tables:
> > > xxx_BINVAL
> > > xxx_NODE
> > > xxx_PROPS
> > > xxx_REFS
> > > (where xxx is ${schemaObjectPrefix})
> > >
> > > The error message you report (ORA-01400:cannot insert NULL into
> > > ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")) tells that you have an error
> when
> > > trying to insert a NULL in column FSENTRY_NAME of table REP_FSENTRY,
> which
> > > doesn't correspond to the tables I have on my side ...
> > >
> > > So we are not talking about the same, or may be I missed something.
> Let me
> > > know !
> > >
> > > Regards,
> > >
> > > Nicolas.
> > >
> > > -----Message d'origine-----
> > > De: Antonis Tsaltas [mailto:Antonis.Tsaltas@eurodyn.com]
> > > Envoyé: mardi 20 décembre 2005 14:19
> > > À: jackrabbit-dev@incubator.apache.org
> > > Objet: Re: Oracle as Persistence manager
> > >
> > > Nicolas Jouanin wrote:
> > >
> > > >Hi,
> > > >
> > > >As i said, may be it comes from the fact that the orginial ddl file (
> > > >mysql.ddl) uses CHAR type for table columns. I replaced them by
> VARCHAR2
> > > >columns.
> > > >Have your tried the same, or have you let let the CHAR datatype ?
> > > >
> > > >I'll try to get back to CHAR datatype and try to run jLibrary with
> > it.I'll
> > > >tell you the result.
> > > >
> > > >
> > > >2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
> > > >
> > > >
> > > >>nicolas.jouanin wrote:
> > > >>
> > > >>
> > > >>
> > > >>>Hi,
> > > >>>
> > > >>>
> > > >>>
> > > >>>I read a previous thread concerning the use of Oracle with
> JackRabbit
> > > >>>(see below for copy).
> > > >>>
> > > >>>As written, it seems not so simple to make it work.
> > > >>>
> > > >>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
> > > >>>based on mysql.ddl where I simply replaced some data types:
> > > >>>
> > > >>>- longblob -> blob
> > > >>>
> > > >>>- char -> varchar2 (Oracle doesn't like char)
> > > >>>
> > > >>>
> > > >>>
> > > >>>Then I configured repository.xml correctly and used this
> configuration
> > > >>>to run this famous jLibrary software. To my surprise it worked, and
> > > >>>managed to create a repository, and add some nodes : some jlibrary
> > > >>>folders, and some PDF documents node.
> > > >>>
> > > >>>
> > > >>>
> > > >>>So , it may be need some more testing ; has someone achieved to
> make
> > > >>>jackrabbit run with Oracle, let me know.
> > > >>>
> > > >>>
> > > >>>
> > > >>>Regards, Nicolas.
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>Original message:
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>Antonis Tsaltas
> > > >>>
> > > >>><An...@eurodyn.com>to jackrabbit-dev
> > > >>>
> > > >>> More options Dec 15 (3 days ago)
> > > >>>
> > > >>>Dear all,
> > > >>>
> > > >>>
> > > >>>
> > > >>>I am trying to use oracle with jackrabbit and the steps I have
> followed
> > > >>>
> > > >>>are the following:
> > > >>>
> > > >>>
> > > >>>
> > > >>>1) I have created the ddl files needed for creating the schemas
> with
> > > >>>
> > > >>>oracle database similar to the existing ones and add them to the
> > > >>>
> > > >>>appropriate package in the jackrabbit jar generated after the
> build.
> > > >>>
> > > >>>However, when I tried to run a sample application I got nested
> > > >>>
> > > >>>exceptions during the configuration of the repository and more
> specific
> > > >>>
> > > >>>during the insertion of the root node due to the case that Oracle
> is
> > > >>>
> > > >>>treating an emptry string and null as the same and the fsname of
> the
> > > >>>
> > > >>>root node is empty string.
> > > >>>
> > > >>>
> > > >>>
> > > >>>2) Next I tried to allow nullable values for the fsname as this
> will
> > > >>>
> > > >>>only be the case for the root node and there will be no manual
> updates
> > > >>>
> > > >>>to the repository. At this point it failed again when it tried to
> add
> > an
> > > >>>
> > > >>>entry '/meta' in fsentries table when it was checking if the parent
> of
> > > >>>
> > > >>>this node exists (which is root node '/' ). There it performs the
> > > >>>
> > > >>>following query:
> > > >>>
> > > >>>
> > > >>>
> > > >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> > > >>>
> > > >>>FSENTRY_NAME is null
> > > >>>
> > > >>>
> > > >>>
> > > >>>which is in oracle equivalent with this:
> > > >>>
> > > >>>
> > > >>>
> > > >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> > > >>>
> > > >>>FSENTRY_NAME=''
> > > >>>
> > > >>>
> > > >>>
> > > >>>and then it tries to insert the root node again but there is the
> > logical
> > > >>>
> > > >>>constraint:
> > > >>>
> > > >>>
> > > >>>
> > > >>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
> > > >>>
> > > >>>${schemaObjectPrefix}FSENTRY
> > > >>>
> > > >>> (FSENTRY_PATH, FSENTRY_NAME).
> > > >>>
> > > >>>
> > > >>>
> > > >>>Are there any suggestion or does anyone know if jackrabbit can work
> > fine
> > > >>>
> > > >>>with oracle db server?
> > > >>>
> > > >>>
> > > >>>
> > > >>>Thanx
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>> Stefan Guggisberg
> > > >>>
> > > >>>to jackrabbit-dev
> > > >>>
> > > >>> More options Dec 15 (3 days ago)
> > > >>>
> > > >>>hi antonis
> > > >>>
> > > >>>- Show quoted text -
> > > >>>
> > > >>>
> > > >>>
> > > >>>well there's no reason why that shouldn't be the case in general.
> > > >>>
> > > >>>but because of oracle's rather exotic and non-standard 'feature' of
> > > >>>treating
> > > >>>
> > > >>>empty values as null you will probably have to write some oracle
> > > >>>
> > > >>>
> > > >>specific
> > > >>
> > > >>
> > > >>>code :(
> > > >>>
> > > >>>
> > > >>>
> > > >>>cheers
> > > >>>
> > > >>>stefan
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>>Thanx
> > > >>>>
> > > >>>>
> > > >>Hi Nicolas,
> > > >>
> > > >>I tried to do what you described in your mail from scratch, but the
> > > >>exception that I received during configuration of the repository is
> the
> > > >>following, which is due to Oracle's aproach of treating NULL and
> empty
> > > >>string in the same way (for the root node tries to insert '/' as
> path
> > > >>and '' as name where it fails):
> > > >>
> > > >>org.apache.jackrabbit.core.config.ConfigurationException: File
> system
> > > >>initialization failure.: failed to initialize file system: failed to
> > > >>create folder entry: /: ORA-01400: cannot insert NULL into
> > > >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > > >>: failed to initialize file system: failed to create folder entry:
> /:
> > > >>ORA-01400: cannot insert NULL into
> > ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > > >>
> > > >> at
> > > >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> > > >>FileSystemConfig.java:61)
> > > >> at
> > > >>org.apache.jackrabbit.core.config.RepositoryConfig.init(
> > > >>RepositoryConfig.java:250)
> > > >> at
> > > >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> > > >>RepositoryConfig.java:136)
> > > >> at
> > > >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> > > >>RepositoryConfig.java:78)
> > > >> at
> > > >>org.apache.jackrabbit.core.jndi.BindableRepository.init(
> > > >>BindableRepository.java:122)
> > > >> at
> > > >>org.apache.jackrabbit.core.jndi.BindableRepository.create(
> > > >>BindableRepository.java:110)
> > > >> at
> > > >>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
> > > >>RegistryHelper.java:57)
> > > >> at
> > ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
> > > >> at
> > > >>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java
> :465)
> > > >> at
> > ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
> > > >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed
> to
> > > >>initialize file system: failed to create folder entry: /: ORA-01400:
> > > >>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > > >>
> > > >> at
> > >
> > >>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java
> :344)
> > > >> at
> > > >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> > > >>FileSystemConfig.java:55)
> > > >> ... 9 more
> > > >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed
> to
> > > >>create folder entry: /: ORA-01400: cannot insert NULL into
> > > >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > > >>
> > > >> at
> > > >>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
> > > >>DbFileSystem.java:1256)
> > > >> at
> > > >>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
> > > >>DbFileSystem.java:1225)
> > > >> at
> > >
> > >>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java
> :338)
> > > >> ... 10 more
> > > >>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
> > > >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >
> > > >
> > > >
> > > Hi,
> > >
> > > Yes I have done that. However, the error does not seem to be relevant
> to
> > > that.
> > >
> > >
> >
> >
>
Re: Oracle as Persistence manager
Posted by Stefan Guggisberg <st...@gmail.com>.
On 12/29/05, nicolas.jouanin <ni...@gmail.com> wrote:
> Hi,
> That's what happened actually, we were not talking of the same thing...
>
> If I understand correctly, we should use DbFileSystem AND
> SimpleDbPersistenceManager if we want a complete DB repository.
correct. the downside is that that the repository state and workspace
configuration is not easily accessible/readable any more.
>
> My comments:
> Errors occurs when trying to insert the root folder in FSENTRY because it
> tries to insert a string of length zero in field FSENTRY_NAME : in the case
> of the root folder, FSENTRY_NAME is '' and FSENTRY_PATH is '/'.
> So, one solution (for Oracle and may be others) could be to not split PATH
> and NAME and store the complete path into a single field which would never
> be '', even for the root which would be '/' in that case. The index primary
> key could be then set to this column. Concerning DbFileSystem, it would only
> need to be modified to stop splitting PATH and NAME , and manage this
> difference.
> May be there's something I don't see and splitted PATH is needed somewhere
> else, but I can try to write a DbFileSystem modified to do what I explained.
the reason why path and name are splitted is that it e.g. allows to easily and
efficiently list child entries of a folder. have a look at the sql stmts used by
DbFileSystem.
cheers
stefan
>
> Regards,
>
> Nicolas.
>
> -----Message d'origine-----
> De: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
> Envoyé: mercredi 21 décembre 2005 13:31
> À: jackrabbit-dev@incubator.apache.org
> Objet: Re: Oracle as Persistence manager
>
> i assume antonis is talking of DbFileSystem whereas nicolas
> is referring to SimpleDbPersistenceManager.
>
> to sum it up:
> - using SimpleDbPersistenceManager for oracle seems to
> be no problem (with the right .ddl) as no empty strings
> are stored.
> - DbFileSystem needs to be adapted/tweaked for oracle
> because of oracle's rather peculiar and non-standard
> emtpy value handling 'feature' ("" is treated as null :(
>
> please note that normally you don't need DbFileSystem.
> using SimpleDbPersistenceManager with LocalFileSystem
> is absolutely fine.
>
> cheers
> stefan
>
>
>
> On 12/20/05, nicolas.jouanin <ni...@gmail.com> wrote:
> > Hi,
> >
> > May be we misunderstood one what we do each other ...
> >
> > I wrote oracle.ddl from mysql.dll which is the
> > org.apache.jackrabbit.core.state.db package.
> >
> > This files contains DDL commands for creating tables:
> > xxx_BINVAL
> > xxx_NODE
> > xxx_PROPS
> > xxx_REFS
> > (where xxx is ${schemaObjectPrefix})
> >
> > The error message you report (ORA-01400:cannot insert NULL into
> > ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")) tells that you have an error when
> > trying to insert a NULL in column FSENTRY_NAME of table REP_FSENTRY, which
> > doesn't correspond to the tables I have on my side ...
> >
> > So we are not talking about the same, or may be I missed something. Let me
> > know !
> >
> > Regards,
> >
> > Nicolas.
> >
> > -----Message d'origine-----
> > De: Antonis Tsaltas [mailto:Antonis.Tsaltas@eurodyn.com]
> > Envoyé: mardi 20 décembre 2005 14:19
> > À: jackrabbit-dev@incubator.apache.org
> > Objet: Re: Oracle as Persistence manager
> >
> > Nicolas Jouanin wrote:
> >
> > >Hi,
> > >
> > >As i said, may be it comes from the fact that the orginial ddl file (
> > >mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
> > >columns.
> > >Have your tried the same, or have you let let the CHAR datatype ?
> > >
> > >I'll try to get back to CHAR datatype and try to run jLibrary with
> it.I'll
> > >tell you the result.
> > >
> > >
> > >2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
> > >
> > >
> > >>nicolas.jouanin wrote:
> > >>
> > >>
> > >>
> > >>>Hi,
> > >>>
> > >>>
> > >>>
> > >>>I read a previous thread concerning the use of Oracle with JackRabbit
> > >>>(see below for copy).
> > >>>
> > >>>As written, it seems not so simple to make it work.
> > >>>
> > >>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
> > >>>based on mysql.ddl where I simply replaced some data types:
> > >>>
> > >>>- longblob -> blob
> > >>>
> > >>>- char -> varchar2 (Oracle doesn't like char)
> > >>>
> > >>>
> > >>>
> > >>>Then I configured repository.xml correctly and used this configuration
> > >>>to run this famous jLibrary software. To my surprise it worked, and
> > >>>managed to create a repository, and add some nodes : some jlibrary
> > >>>folders, and some PDF documents node.
> > >>>
> > >>>
> > >>>
> > >>>So , it may be need some more testing ; has someone achieved to make
> > >>>jackrabbit run with Oracle, let me know.
> > >>>
> > >>>
> > >>>
> > >>>Regards, Nicolas.
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>Original message:
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>Antonis Tsaltas
> > >>>
> > >>><An...@eurodyn.com>to jackrabbit-dev
> > >>>
> > >>> More options Dec 15 (3 days ago)
> > >>>
> > >>>Dear all,
> > >>>
> > >>>
> > >>>
> > >>>I am trying to use oracle with jackrabbit and the steps I have followed
> > >>>
> > >>>are the following:
> > >>>
> > >>>
> > >>>
> > >>>1) I have created the ddl files needed for creating the schemas with
> > >>>
> > >>>oracle database similar to the existing ones and add them to the
> > >>>
> > >>>appropriate package in the jackrabbit jar generated after the build.
> > >>>
> > >>>However, when I tried to run a sample application I got nested
> > >>>
> > >>>exceptions during the configuration of the repository and more specific
> > >>>
> > >>>during the insertion of the root node due to the case that Oracle is
> > >>>
> > >>>treating an emptry string and null as the same and the fsname of the
> > >>>
> > >>>root node is empty string.
> > >>>
> > >>>
> > >>>
> > >>>2) Next I tried to allow nullable values for the fsname as this will
> > >>>
> > >>>only be the case for the root node and there will be no manual updates
> > >>>
> > >>>to the repository. At this point it failed again when it tried to add
> an
> > >>>
> > >>>entry '/meta' in fsentries table when it was checking if the parent of
> > >>>
> > >>>this node exists (which is root node '/' ). There it performs the
> > >>>
> > >>>following query:
> > >>>
> > >>>
> > >>>
> > >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> > >>>
> > >>>FSENTRY_NAME is null
> > >>>
> > >>>
> > >>>
> > >>>which is in oracle equivalent with this:
> > >>>
> > >>>
> > >>>
> > >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> > >>>
> > >>>FSENTRY_NAME=''
> > >>>
> > >>>
> > >>>
> > >>>and then it tries to insert the root node again but there is the
> logical
> > >>>
> > >>>constraint:
> > >>>
> > >>>
> > >>>
> > >>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
> > >>>
> > >>>${schemaObjectPrefix}FSENTRY
> > >>>
> > >>> (FSENTRY_PATH, FSENTRY_NAME).
> > >>>
> > >>>
> > >>>
> > >>>Are there any suggestion or does anyone know if jackrabbit can work
> fine
> > >>>
> > >>>with oracle db server?
> > >>>
> > >>>
> > >>>
> > >>>Thanx
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> Stefan Guggisberg
> > >>>
> > >>>to jackrabbit-dev
> > >>>
> > >>> More options Dec 15 (3 days ago)
> > >>>
> > >>>hi antonis
> > >>>
> > >>>- Show quoted text -
> > >>>
> > >>>
> > >>>
> > >>>well there's no reason why that shouldn't be the case in general.
> > >>>
> > >>>but because of oracle's rather exotic and non-standard 'feature' of
> > >>>treating
> > >>>
> > >>>empty values as null you will probably have to write some oracle
> > >>>
> > >>>
> > >>specific
> > >>
> > >>
> > >>>code :(
> > >>>
> > >>>
> > >>>
> > >>>cheers
> > >>>
> > >>>stefan
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>Thanx
> > >>>>
> > >>>>
> > >>Hi Nicolas,
> > >>
> > >>I tried to do what you described in your mail from scratch, but the
> > >>exception that I received during configuration of the repository is the
> > >>following, which is due to Oracle's aproach of treating NULL and empty
> > >>string in the same way (for the root node tries to insert '/' as path
> > >>and '' as name where it fails):
> > >>
> > >>org.apache.jackrabbit.core.config.ConfigurationException: File system
> > >>initialization failure.: failed to initialize file system: failed to
> > >>create folder entry: /: ORA-01400: cannot insert NULL into
> > >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > >>: failed to initialize file system: failed to create folder entry: /:
> > >>ORA-01400: cannot insert NULL into
> ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > >>
> > >> at
> > >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> > >>FileSystemConfig.java:61)
> > >> at
> > >>org.apache.jackrabbit.core.config.RepositoryConfig.init(
> > >>RepositoryConfig.java:250)
> > >> at
> > >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> > >>RepositoryConfig.java:136)
> > >> at
> > >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> > >>RepositoryConfig.java:78)
> > >> at
> > >>org.apache.jackrabbit.core.jndi.BindableRepository.init(
> > >>BindableRepository.java:122)
> > >> at
> > >>org.apache.jackrabbit.core.jndi.BindableRepository.create(
> > >>BindableRepository.java:110)
> > >> at
> > >>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
> > >>RegistryHelper.java:57)
> > >> at
> ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
> > >> at
> > >>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
> > >> at
> ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
> > >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> > >>initialize file system: failed to create folder entry: /: ORA-01400:
> > >>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > >>
> > >> at
> >
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
> > >> at
> > >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> > >>FileSystemConfig.java:55)
> > >> ... 9 more
> > >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> > >>create folder entry: /: ORA-01400: cannot insert NULL into
> > >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > >>
> > >> at
> > >>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
> > >>DbFileSystem.java:1256)
> > >> at
> > >>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
> > >>DbFileSystem.java:1225)
> > >> at
> >
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
> > >> ... 10 more
> > >>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
> > >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> > >>
> > >>
> > >>
> > >>
> > >>
> > >
> > >
> > >
> > Hi,
> >
> > Yes I have done that. However, the error does not seem to be relevant to
> > that.
> >
> >
>
>
RE: Oracle as Persistence manager
Posted by "nicolas.jouanin" <ni...@gmail.com>.
Hi,
That's what happened actually, we were not talking of the same thing...
If I understand correctly, we should use DbFileSystem AND
SimpleDbPersistenceManager if we want a complete DB repository.
My comments:
Errors occurs when trying to insert the root folder in FSENTRY because it
tries to insert a string of length zero in field FSENTRY_NAME : in the case
of the root folder, FSENTRY_NAME is '' and FSENTRY_PATH is '/'.
So, one solution (for Oracle and may be others) could be to not split PATH
and NAME and store the complete path into a single field which would never
be '', even for the root which would be '/' in that case. The index primary
key could be then set to this column. Concerning DbFileSystem, it would only
need to be modified to stop splitting PATH and NAME , and manage this
difference.
May be there's something I don't see and splitted PATH is needed somewhere
else, but I can try to write a DbFileSystem modified to do what I explained.
Regards,
Nicolas.
-----Message d'origine-----
De : Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
Envoyé : mercredi 21 décembre 2005 13:31
À : jackrabbit-dev@incubator.apache.org
Objet : Re: Oracle as Persistence manager
i assume antonis is talking of DbFileSystem whereas nicolas
is referring to SimpleDbPersistenceManager.
to sum it up:
- using SimpleDbPersistenceManager for oracle seems to
be no problem (with the right .ddl) as no empty strings
are stored.
- DbFileSystem needs to be adapted/tweaked for oracle
because of oracle's rather peculiar and non-standard
emtpy value handling 'feature' ("" is treated as null :(
please note that normally you don't need DbFileSystem.
using SimpleDbPersistenceManager with LocalFileSystem
is absolutely fine.
cheers
stefan
On 12/20/05, nicolas.jouanin <ni...@gmail.com> wrote:
> Hi,
>
> May be we misunderstood one what we do each other ...
>
> I wrote oracle.ddl from mysql.dll which is the
> org.apache.jackrabbit.core.state.db package.
>
> This files contains DDL commands for creating tables:
> xxx_BINVAL
> xxx_NODE
> xxx_PROPS
> xxx_REFS
> (where xxx is ${schemaObjectPrefix})
>
> The error message you report (ORA-01400:cannot insert NULL into
> ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")) tells that you have an error when
> trying to insert a NULL in column FSENTRY_NAME of table REP_FSENTRY, which
> doesn't correspond to the tables I have on my side ...
>
> So we are not talking about the same, or may be I missed something. Let me
> know !
>
> Regards,
>
> Nicolas.
>
> -----Message d'origine-----
> De: Antonis Tsaltas [mailto:Antonis.Tsaltas@eurodyn.com]
> Envoyé: mardi 20 décembre 2005 14:19
> À: jackrabbit-dev@incubator.apache.org
> Objet: Re: Oracle as Persistence manager
>
> Nicolas Jouanin wrote:
>
> >Hi,
> >
> >As i said, may be it comes from the fact that the orginial ddl file (
> >mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
> >columns.
> >Have your tried the same, or have you let let the CHAR datatype ?
> >
> >I'll try to get back to CHAR datatype and try to run jLibrary with
it.I'll
> >tell you the result.
> >
> >
> >2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
> >
> >
> >>nicolas.jouanin wrote:
> >>
> >>
> >>
> >>>Hi,
> >>>
> >>>
> >>>
> >>>I read a previous thread concerning the use of Oracle with JackRabbit
> >>>(see below for copy).
> >>>
> >>>As written, it seems not so simple to make it work.
> >>>
> >>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
> >>>based on mysql.ddl where I simply replaced some data types:
> >>>
> >>>- longblob -> blob
> >>>
> >>>- char -> varchar2 (Oracle doesn't like char)
> >>>
> >>>
> >>>
> >>>Then I configured repository.xml correctly and used this configuration
> >>>to run this famous jLibrary software. To my surprise it worked, and
> >>>managed to create a repository, and add some nodes : some jlibrary
> >>>folders, and some PDF documents node.
> >>>
> >>>
> >>>
> >>>So , it may be need some more testing ; has someone achieved to make
> >>>jackrabbit run with Oracle, let me know.
> >>>
> >>>
> >>>
> >>>Regards, Nicolas.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>Original message:
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>Antonis Tsaltas
> >>>
> >>><An...@eurodyn.com>to jackrabbit-dev
> >>>
> >>> More options Dec 15 (3 days ago)
> >>>
> >>>Dear all,
> >>>
> >>>
> >>>
> >>>I am trying to use oracle with jackrabbit and the steps I have followed
> >>>
> >>>are the following:
> >>>
> >>>
> >>>
> >>>1) I have created the ddl files needed for creating the schemas with
> >>>
> >>>oracle database similar to the existing ones and add them to the
> >>>
> >>>appropriate package in the jackrabbit jar generated after the build.
> >>>
> >>>However, when I tried to run a sample application I got nested
> >>>
> >>>exceptions during the configuration of the repository and more specific
> >>>
> >>>during the insertion of the root node due to the case that Oracle is
> >>>
> >>>treating an emptry string and null as the same and the fsname of the
> >>>
> >>>root node is empty string.
> >>>
> >>>
> >>>
> >>>2) Next I tried to allow nullable values for the fsname as this will
> >>>
> >>>only be the case for the root node and there will be no manual updates
> >>>
> >>>to the repository. At this point it failed again when it tried to add
an
> >>>
> >>>entry '/meta' in fsentries table when it was checking if the parent of
> >>>
> >>>this node exists (which is root node '/' ). There it performs the
> >>>
> >>>following query:
> >>>
> >>>
> >>>
> >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> >>>
> >>>FSENTRY_NAME is null
> >>>
> >>>
> >>>
> >>>which is in oracle equivalent with this:
> >>>
> >>>
> >>>
> >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> >>>
> >>>FSENTRY_NAME=''
> >>>
> >>>
> >>>
> >>>and then it tries to insert the root node again but there is the
logical
> >>>
> >>>constraint:
> >>>
> >>>
> >>>
> >>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
> >>>
> >>>${schemaObjectPrefix}FSENTRY
> >>>
> >>> (FSENTRY_PATH, FSENTRY_NAME).
> >>>
> >>>
> >>>
> >>>Are there any suggestion or does anyone know if jackrabbit can work
fine
> >>>
> >>>with oracle db server?
> >>>
> >>>
> >>>
> >>>Thanx
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Stefan Guggisberg
> >>>
> >>>to jackrabbit-dev
> >>>
> >>> More options Dec 15 (3 days ago)
> >>>
> >>>hi antonis
> >>>
> >>>- Show quoted text -
> >>>
> >>>
> >>>
> >>>well there's no reason why that shouldn't be the case in general.
> >>>
> >>>but because of oracle's rather exotic and non-standard 'feature' of
> >>>treating
> >>>
> >>>empty values as null you will probably have to write some oracle
> >>>
> >>>
> >>specific
> >>
> >>
> >>>code :(
> >>>
> >>>
> >>>
> >>>cheers
> >>>
> >>>stefan
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>Thanx
> >>>>
> >>>>
> >>Hi Nicolas,
> >>
> >>I tried to do what you described in your mail from scratch, but the
> >>exception that I received during configuration of the repository is the
> >>following, which is due to Oracle's aproach of treating NULL and empty
> >>string in the same way (for the root node tries to insert '/' as path
> >>and '' as name where it fails):
> >>
> >>org.apache.jackrabbit.core.config.ConfigurationException: File system
> >>initialization failure.: failed to initialize file system: failed to
> >>create folder entry: /: ORA-01400: cannot insert NULL into
> >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>: failed to initialize file system: failed to create folder entry: /:
> >>ORA-01400: cannot insert NULL into
("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >> at
> >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> >>FileSystemConfig.java:61)
> >> at
> >>org.apache.jackrabbit.core.config.RepositoryConfig.init(
> >>RepositoryConfig.java:250)
> >> at
> >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> >>RepositoryConfig.java:136)
> >> at
> >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> >>RepositoryConfig.java:78)
> >> at
> >>org.apache.jackrabbit.core.jndi.BindableRepository.init(
> >>BindableRepository.java:122)
> >> at
> >>org.apache.jackrabbit.core.jndi.BindableRepository.create(
> >>BindableRepository.java:110)
> >> at
> >>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
> >>RegistryHelper.java:57)
> >> at
ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
> >> at
> >>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
> >> at
ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
> >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> >>initialize file system: failed to create folder entry: /: ORA-01400:
> >>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >> at
>
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
> >> at
> >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> >>FileSystemConfig.java:55)
> >> ... 9 more
> >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> >>create folder entry: /: ORA-01400: cannot insert NULL into
> >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >> at
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
> >>DbFileSystem.java:1256)
> >> at
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
> >>DbFileSystem.java:1225)
> >> at
>
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
> >> ... 10 more
> >>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
> >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> Hi,
>
> Yes I have done that. However, the error does not seem to be relevant to
> that.
>
>
Re: Oracle as Persistence manager
Posted by Stefan Guggisberg <st...@gmail.com>.
i assume antonis is talking of DbFileSystem whereas nicolas
is referring to SimpleDbPersistenceManager.
to sum it up:
- using SimpleDbPersistenceManager for oracle seems to
be no problem (with the right .ddl) as no empty strings
are stored.
- DbFileSystem needs to be adapted/tweaked for oracle
because of oracle's rather peculiar and non-standard
emtpy value handling 'feature' ("" is treated as null :(
please note that normally you don't need DbFileSystem.
using SimpleDbPersistenceManager with LocalFileSystem
is absolutely fine.
cheers
stefan
On 12/20/05, nicolas.jouanin <ni...@gmail.com> wrote:
> Hi,
>
> May be we misunderstood one what we do each other ...
>
> I wrote oracle.ddl from mysql.dll which is the
> org.apache.jackrabbit.core.state.db package.
>
> This files contains DDL commands for creating tables:
> xxx_BINVAL
> xxx_NODE
> xxx_PROPS
> xxx_REFS
> (where xxx is ${schemaObjectPrefix})
>
> The error message you report (ORA-01400:cannot insert NULL into
> ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")) tells that you have an error when
> trying to insert a NULL in column FSENTRY_NAME of table REP_FSENTRY, which
> doesn't correspond to the tables I have on my side ...
>
> So we are not talking about the same, or may be I missed something. Let me
> know !
>
> Regards,
>
> Nicolas.
>
> -----Message d'origine-----
> De: Antonis Tsaltas [mailto:Antonis.Tsaltas@eurodyn.com]
> Envoyé: mardi 20 décembre 2005 14:19
> À: jackrabbit-dev@incubator.apache.org
> Objet: Re: Oracle as Persistence manager
>
> Nicolas Jouanin wrote:
>
> >Hi,
> >
> >As i said, may be it comes from the fact that the orginial ddl file (
> >mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
> >columns.
> >Have your tried the same, or have you let let the CHAR datatype ?
> >
> >I'll try to get back to CHAR datatype and try to run jLibrary with it.I'll
> >tell you the result.
> >
> >
> >2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
> >
> >
> >>nicolas.jouanin wrote:
> >>
> >>
> >>
> >>>Hi,
> >>>
> >>>
> >>>
> >>>I read a previous thread concerning the use of Oracle with JackRabbit
> >>>(see below for copy).
> >>>
> >>>As written, it seems not so simple to make it work.
> >>>
> >>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
> >>>based on mysql.ddl where I simply replaced some data types:
> >>>
> >>>- longblob -> blob
> >>>
> >>>- char -> varchar2 (Oracle doesn't like char)
> >>>
> >>>
> >>>
> >>>Then I configured repository.xml correctly and used this configuration
> >>>to run this famous jLibrary software. To my surprise it worked, and
> >>>managed to create a repository, and add some nodes : some jlibrary
> >>>folders, and some PDF documents node.
> >>>
> >>>
> >>>
> >>>So , it may be need some more testing ; has someone achieved to make
> >>>jackrabbit run with Oracle, let me know.
> >>>
> >>>
> >>>
> >>>Regards, Nicolas.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>Original message:
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>Antonis Tsaltas
> >>>
> >>><An...@eurodyn.com>to jackrabbit-dev
> >>>
> >>> More options Dec 15 (3 days ago)
> >>>
> >>>Dear all,
> >>>
> >>>
> >>>
> >>>I am trying to use oracle with jackrabbit and the steps I have followed
> >>>
> >>>are the following:
> >>>
> >>>
> >>>
> >>>1) I have created the ddl files needed for creating the schemas with
> >>>
> >>>oracle database similar to the existing ones and add them to the
> >>>
> >>>appropriate package in the jackrabbit jar generated after the build.
> >>>
> >>>However, when I tried to run a sample application I got nested
> >>>
> >>>exceptions during the configuration of the repository and more specific
> >>>
> >>>during the insertion of the root node due to the case that Oracle is
> >>>
> >>>treating an emptry string and null as the same and the fsname of the
> >>>
> >>>root node is empty string.
> >>>
> >>>
> >>>
> >>>2) Next I tried to allow nullable values for the fsname as this will
> >>>
> >>>only be the case for the root node and there will be no manual updates
> >>>
> >>>to the repository. At this point it failed again when it tried to add an
> >>>
> >>>entry '/meta' in fsentries table when it was checking if the parent of
> >>>
> >>>this node exists (which is root node '/' ). There it performs the
> >>>
> >>>following query:
> >>>
> >>>
> >>>
> >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> >>>
> >>>FSENTRY_NAME is null
> >>>
> >>>
> >>>
> >>>which is in oracle equivalent with this:
> >>>
> >>>
> >>>
> >>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> >>>
> >>>FSENTRY_NAME=''
> >>>
> >>>
> >>>
> >>>and then it tries to insert the root node again but there is the logical
> >>>
> >>>constraint:
> >>>
> >>>
> >>>
> >>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
> >>>
> >>>${schemaObjectPrefix}FSENTRY
> >>>
> >>> (FSENTRY_PATH, FSENTRY_NAME).
> >>>
> >>>
> >>>
> >>>Are there any suggestion or does anyone know if jackrabbit can work fine
> >>>
> >>>with oracle db server?
> >>>
> >>>
> >>>
> >>>Thanx
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Stefan Guggisberg
> >>>
> >>>to jackrabbit-dev
> >>>
> >>> More options Dec 15 (3 days ago)
> >>>
> >>>hi antonis
> >>>
> >>>- Show quoted text -
> >>>
> >>>
> >>>
> >>>well there's no reason why that shouldn't be the case in general.
> >>>
> >>>but because of oracle's rather exotic and non-standard 'feature' of
> >>>treating
> >>>
> >>>empty values as null you will probably have to write some oracle
> >>>
> >>>
> >>specific
> >>
> >>
> >>>code :(
> >>>
> >>>
> >>>
> >>>cheers
> >>>
> >>>stefan
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>Thanx
> >>>>
> >>>>
> >>Hi Nicolas,
> >>
> >>I tried to do what you described in your mail from scratch, but the
> >>exception that I received during configuration of the repository is the
> >>following, which is due to Oracle's aproach of treating NULL and empty
> >>string in the same way (for the root node tries to insert '/' as path
> >>and '' as name where it fails):
> >>
> >>org.apache.jackrabbit.core.config.ConfigurationException: File system
> >>initialization failure.: failed to initialize file system: failed to
> >>create folder entry: /: ORA-01400: cannot insert NULL into
> >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>: failed to initialize file system: failed to create folder entry: /:
> >>ORA-01400: cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >> at
> >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> >>FileSystemConfig.java:61)
> >> at
> >>org.apache.jackrabbit.core.config.RepositoryConfig.init(
> >>RepositoryConfig.java:250)
> >> at
> >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> >>RepositoryConfig.java:136)
> >> at
> >>org.apache.jackrabbit.core.config.RepositoryConfig.create(
> >>RepositoryConfig.java:78)
> >> at
> >>org.apache.jackrabbit.core.jndi.BindableRepository.init(
> >>BindableRepository.java:122)
> >> at
> >>org.apache.jackrabbit.core.jndi.BindableRepository.create(
> >>BindableRepository.java:110)
> >> at
> >>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
> >>RegistryHelper.java:57)
> >> at ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
> >> at
> >>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
> >> at ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
> >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> >>initialize file system: failed to create folder entry: /: ORA-01400:
> >>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >> at
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
> >> at
> >>org.apache.jackrabbit.core.config.FileSystemConfig.init(
> >>FileSystemConfig.java:55)
> >> ... 9 more
> >>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> >>create folder entry: /: ORA-01400: cannot insert NULL into
> >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >> at
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
> >>DbFileSystem.java:1256)
> >> at
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
> >>DbFileSystem.java:1225)
> >> at
> >>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
> >> ... 10 more
> >>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
> >>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> Hi,
>
> Yes I have done that. However, the error does not seem to be relevant to
> that.
>
>
Re: Oracle as Persistence manager
Posted by Antonis Tsaltas <An...@eurodyn.com>.
Hello,
Yes I did that for both ddl files one in
org.apache.jackrabbit.core.fs.db and the one in
org.apache.jackrabbit.core.state.db. It would be really helpfull for me
if you let me know the data entered during the configuration of the
repository for the root element in the ${schemaObjectPrefix}FSENTRY
table more specific the FSENTRY_NAME field.
The only difference that I can see on what we are doing is that I have
build jackrabbit from source and I am using the jar file created, but
not jlibrary which* is based* on jackrabbit. I am not sure if the
implementation of jlibrary has added any layer above that is able to
handle the case of oracle.
Antonis
nicolas.jouanin wrote:
>Hi,
>
>May be we misunderstood one what we do each other ...
>
>I wrote oracle.ddl from mysql.dll which is the
>org.apache.jackrabbit.core.state.db package.
>
>This files contains DDL commands for creating tables:
> xxx_BINVAL
> xxx_NODE
> xxx_PROPS
> xxx_REFS
> (where xxx is ${schemaObjectPrefix})
>
>The error message you report (ORA-01400:cannot insert NULL into
>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")) tells that you have an error when
>trying to insert a NULL in column FSENTRY_NAME of table REP_FSENTRY, which
>doesn't correspond to the tables I have on my side ...
>
>So we are not talking about the same, or may be I missed something. Let me
>know !
>
>Regards,
>
>Nicolas.
>
>-----Message d'origine-----
>De : Antonis Tsaltas [mailto:Antonis.Tsaltas@eurodyn.com]
>Envoyé : mardi 20 décembre 2005 14:19
>À : jackrabbit-dev@incubator.apache.org
>Objet : Re: Oracle as Persistence manager
>
>Nicolas Jouanin wrote:
>
>
>
>>Hi,
>>
>>As i said, may be it comes from the fact that the orginial ddl file (
>>mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
>>columns.
>>Have your tried the same, or have you let let the CHAR datatype ?
>>
>>I'll try to get back to CHAR datatype and try to run jLibrary with it.I'll
>>tell you the result.
>>
>>
>>2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
>>
>>
>>
>>
>>>nicolas.jouanin wrote:
>>>
>>>
>>>
>>>
>>>
>>>>Hi,
>>>>
>>>>
>>>>
>>>>I read a previous thread concerning the use of Oracle with JackRabbit
>>>>(see below for copy).
>>>>
>>>>As written, it seems not so simple to make it work.
>>>>
>>>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
>>>>based on mysql.ddl where I simply replaced some data types:
>>>>
>>>>- longblob -> blob
>>>>
>>>>- char -> varchar2 (Oracle doesn't like char)
>>>>
>>>>
>>>>
>>>>Then I configured repository.xml correctly and used this configuration
>>>>to run this famous jLibrary software. To my surprise it worked, and
>>>>managed to create a repository, and add some nodes : some jlibrary
>>>>folders, and some PDF documents node.
>>>>
>>>>
>>>>
>>>>So , it may be need some more testing ; has someone achieved to make
>>>>jackrabbit run with Oracle, let me know.
>>>>
>>>>
>>>>
>>>>Regards, Nicolas.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>Original message:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>Antonis Tsaltas
>>>>
>>>><An...@eurodyn.com>to jackrabbit-dev
>>>>
>>>> More options Dec 15 (3 days ago)
>>>>
>>>>Dear all,
>>>>
>>>>
>>>>
>>>>I am trying to use oracle with jackrabbit and the steps I have followed
>>>>
>>>>are the following:
>>>>
>>>>
>>>>
>>>>1) I have created the ddl files needed for creating the schemas with
>>>>
>>>>oracle database similar to the existing ones and add them to the
>>>>
>>>>appropriate package in the jackrabbit jar generated after the build.
>>>>
>>>>However, when I tried to run a sample application I got nested
>>>>
>>>>exceptions during the configuration of the repository and more specific
>>>>
>>>>during the insertion of the root node due to the case that Oracle is
>>>>
>>>>treating an emptry string and null as the same and the fsname of the
>>>>
>>>>root node is empty string.
>>>>
>>>>
>>>>
>>>>2) Next I tried to allow nullable values for the fsname as this will
>>>>
>>>>only be the case for the root node and there will be no manual updates
>>>>
>>>>to the repository. At this point it failed again when it tried to add an
>>>>
>>>>entry '/meta' in fsentries table when it was checking if the parent of
>>>>
>>>>this node exists (which is root node '/' ). There it performs the
>>>>
>>>>following query:
>>>>
>>>>
>>>>
>>>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>>>>
>>>>FSENTRY_NAME is null
>>>>
>>>>
>>>>
>>>>which is in oracle equivalent with this:
>>>>
>>>>
>>>>
>>>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>>>>
>>>>FSENTRY_NAME=''
>>>>
>>>>
>>>>
>>>>and then it tries to insert the root node again but there is the logical
>>>>
>>>>constraint:
>>>>
>>>>
>>>>
>>>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
>>>>
>>>>${schemaObjectPrefix}FSENTRY
>>>>
>>>>(FSENTRY_PATH, FSENTRY_NAME).
>>>>
>>>>
>>>>
>>>>Are there any suggestion or does anyone know if jackrabbit can work fine
>>>>
>>>>with oracle db server?
>>>>
>>>>
>>>>
>>>>Thanx
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>Stefan Guggisberg
>>>>
>>>>to jackrabbit-dev
>>>>
>>>> More options Dec 15 (3 days ago)
>>>>
>>>>hi antonis
>>>>
>>>>- Show quoted text -
>>>>
>>>>
>>>>
>>>>well there's no reason why that shouldn't be the case in general.
>>>>
>>>>but because of oracle's rather exotic and non-standard 'feature' of
>>>>treating
>>>>
>>>>empty values as null you will probably have to write some oracle
>>>>
>>>>
>>>>
>>>>
>>>specific
>>>
>>>
>>>
>>>
>>>>code :(
>>>>
>>>>
>>>>
>>>>cheers
>>>>
>>>>stefan
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>Thanx
>>>>>
>>>>>
>>>>>
>>>>>
>>>Hi Nicolas,
>>>
>>>I tried to do what you described in your mail from scratch, but the
>>>exception that I received during configuration of the repository is the
>>>following, which is due to Oracle's aproach of treating NULL and empty
>>>string in the same way (for the root node tries to insert '/' as path
>>>and '' as name where it fails):
>>>
>>>org.apache.jackrabbit.core.config.ConfigurationException: File system
>>>initialization failure.: failed to initialize file system: failed to
>>>create folder entry: /: ORA-01400: cannot insert NULL into
>>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>>: failed to initialize file system: failed to create folder entry: /:
>>>ORA-01400: cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>>
>>> at
>>>org.apache.jackrabbit.core.config.FileSystemConfig.init(
>>>FileSystemConfig.java:61)
>>> at
>>>org.apache.jackrabbit.core.config.RepositoryConfig.init(
>>>RepositoryConfig.java:250)
>>> at
>>>org.apache.jackrabbit.core.config.RepositoryConfig.create(
>>>RepositoryConfig.java:136)
>>> at
>>>org.apache.jackrabbit.core.config.RepositoryConfig.create(
>>>RepositoryConfig.java:78)
>>> at
>>>org.apache.jackrabbit.core.jndi.BindableRepository.init(
>>>BindableRepository.java:122)
>>> at
>>>org.apache.jackrabbit.core.jndi.BindableRepository.create(
>>>BindableRepository.java:110)
>>> at
>>>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
>>>RegistryHelper.java:57)
>>> at ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
>>> at
>>>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
>>> at ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
>>>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
>>>initialize file system: failed to create folder entry: /: ORA-01400:
>>>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>>
>>> at
>>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
>>> at
>>>org.apache.jackrabbit.core.config.FileSystemConfig.init(
>>>FileSystemConfig.java:55)
>>> ... 9 more
>>>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
>>>create folder entry: /: ORA-01400: cannot insert NULL into
>>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>>
>>> at
>>>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
>>>DbFileSystem.java:1256)
>>> at
>>>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
>>>DbFileSystem.java:1225)
>>> at
>>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
>>> ... 10 more
>>>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
>>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>Hi,
>
>Yes I have done that. However, the error does not seem to be relevant to
>that.
>
>
>
RE: Oracle as Persistence manager
Posted by "nicolas.jouanin" <ni...@gmail.com>.
Hi,
May be we misunderstood one what we do each other ...
I wrote oracle.ddl from mysql.dll which is the
org.apache.jackrabbit.core.state.db package.
This files contains DDL commands for creating tables:
xxx_BINVAL
xxx_NODE
xxx_PROPS
xxx_REFS
(where xxx is ${schemaObjectPrefix})
The error message you report (ORA-01400:cannot insert NULL into
("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")) tells that you have an error when
trying to insert a NULL in column FSENTRY_NAME of table REP_FSENTRY, which
doesn't correspond to the tables I have on my side ...
So we are not talking about the same, or may be I missed something. Let me
know !
Regards,
Nicolas.
-----Message d'origine-----
De : Antonis Tsaltas [mailto:Antonis.Tsaltas@eurodyn.com]
Envoyé : mardi 20 décembre 2005 14:19
À : jackrabbit-dev@incubator.apache.org
Objet : Re: Oracle as Persistence manager
Nicolas Jouanin wrote:
>Hi,
>
>As i said, may be it comes from the fact that the orginial ddl file (
>mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
>columns.
>Have your tried the same, or have you let let the CHAR datatype ?
>
>I'll try to get back to CHAR datatype and try to run jLibrary with it.I'll
>tell you the result.
>
>
>2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
>
>
>>nicolas.jouanin wrote:
>>
>>
>>
>>>Hi,
>>>
>>>
>>>
>>>I read a previous thread concerning the use of Oracle with JackRabbit
>>>(see below for copy).
>>>
>>>As written, it seems not so simple to make it work.
>>>
>>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
>>>based on mysql.ddl where I simply replaced some data types:
>>>
>>>- longblob -> blob
>>>
>>>- char -> varchar2 (Oracle doesn't like char)
>>>
>>>
>>>
>>>Then I configured repository.xml correctly and used this configuration
>>>to run this famous jLibrary software. To my surprise it worked, and
>>>managed to create a repository, and add some nodes : some jlibrary
>>>folders, and some PDF documents node.
>>>
>>>
>>>
>>>So , it may be need some more testing ; has someone achieved to make
>>>jackrabbit run with Oracle, let me know.
>>>
>>>
>>>
>>>Regards, Nicolas.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>Original message:
>>>
>>>
>>>
>>>
>>>
>>>Antonis Tsaltas
>>>
>>><An...@eurodyn.com>to jackrabbit-dev
>>>
>>> More options Dec 15 (3 days ago)
>>>
>>>Dear all,
>>>
>>>
>>>
>>>I am trying to use oracle with jackrabbit and the steps I have followed
>>>
>>>are the following:
>>>
>>>
>>>
>>>1) I have created the ddl files needed for creating the schemas with
>>>
>>>oracle database similar to the existing ones and add them to the
>>>
>>>appropriate package in the jackrabbit jar generated after the build.
>>>
>>>However, when I tried to run a sample application I got nested
>>>
>>>exceptions during the configuration of the repository and more specific
>>>
>>>during the insertion of the root node due to the case that Oracle is
>>>
>>>treating an emptry string and null as the same and the fsname of the
>>>
>>>root node is empty string.
>>>
>>>
>>>
>>>2) Next I tried to allow nullable values for the fsname as this will
>>>
>>>only be the case for the root node and there will be no manual updates
>>>
>>>to the repository. At this point it failed again when it tried to add an
>>>
>>>entry '/meta' in fsentries table when it was checking if the parent of
>>>
>>>this node exists (which is root node '/' ). There it performs the
>>>
>>>following query:
>>>
>>>
>>>
>>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>>>
>>>FSENTRY_NAME is null
>>>
>>>
>>>
>>>which is in oracle equivalent with this:
>>>
>>>
>>>
>>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>>>
>>>FSENTRY_NAME=''
>>>
>>>
>>>
>>>and then it tries to insert the root node again but there is the logical
>>>
>>>constraint:
>>>
>>>
>>>
>>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
>>>
>>>${schemaObjectPrefix}FSENTRY
>>>
>>> (FSENTRY_PATH, FSENTRY_NAME).
>>>
>>>
>>>
>>>Are there any suggestion or does anyone know if jackrabbit can work fine
>>>
>>>with oracle db server?
>>>
>>>
>>>
>>>Thanx
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Stefan Guggisberg
>>>
>>>to jackrabbit-dev
>>>
>>> More options Dec 15 (3 days ago)
>>>
>>>hi antonis
>>>
>>>- Show quoted text -
>>>
>>>
>>>
>>>well there's no reason why that shouldn't be the case in general.
>>>
>>>but because of oracle's rather exotic and non-standard 'feature' of
>>>treating
>>>
>>>empty values as null you will probably have to write some oracle
>>>
>>>
>>specific
>>
>>
>>>code :(
>>>
>>>
>>>
>>>cheers
>>>
>>>stefan
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>Thanx
>>>>
>>>>
>>Hi Nicolas,
>>
>>I tried to do what you described in your mail from scratch, but the
>>exception that I received during configuration of the repository is the
>>following, which is due to Oracle's aproach of treating NULL and empty
>>string in the same way (for the root node tries to insert '/' as path
>>and '' as name where it fails):
>>
>>org.apache.jackrabbit.core.config.ConfigurationException: File system
>>initialization failure.: failed to initialize file system: failed to
>>create folder entry: /: ORA-01400: cannot insert NULL into
>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>: failed to initialize file system: failed to create folder entry: /:
>>ORA-01400: cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>> at
>>org.apache.jackrabbit.core.config.FileSystemConfig.init(
>>FileSystemConfig.java:61)
>> at
>>org.apache.jackrabbit.core.config.RepositoryConfig.init(
>>RepositoryConfig.java:250)
>> at
>>org.apache.jackrabbit.core.config.RepositoryConfig.create(
>>RepositoryConfig.java:136)
>> at
>>org.apache.jackrabbit.core.config.RepositoryConfig.create(
>>RepositoryConfig.java:78)
>> at
>>org.apache.jackrabbit.core.jndi.BindableRepository.init(
>>BindableRepository.java:122)
>> at
>>org.apache.jackrabbit.core.jndi.BindableRepository.create(
>>BindableRepository.java:110)
>> at
>>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
>>RegistryHelper.java:57)
>> at ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
>> at
>>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
>> at ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
>>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
>>initialize file system: failed to create folder entry: /: ORA-01400:
>>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
>> at
>>org.apache.jackrabbit.core.config.FileSystemConfig.init(
>>FileSystemConfig.java:55)
>> ... 9 more
>>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
>>create folder entry: /: ORA-01400: cannot insert NULL into
>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
>>DbFileSystem.java:1256)
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
>>DbFileSystem.java:1225)
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
>> ... 10 more
>>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>>
>>
>>
>>
>
>
>
Hi,
Yes I have done that. However, the error does not seem to be relevant to
that.
Re: Oracle as Persistence manager
Posted by Antonis Tsaltas <An...@eurodyn.com>.
Nicolas Jouanin wrote:
>Hi,
>
>As i said, may be it comes from the fact that the orginial ddl file (
>mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
>columns.
>Have your tried the same, or have you let let the CHAR datatype ?
>
>I'll try to get back to CHAR datatype and try to run jLibrary with it.I'll
>tell you the result.
>
>
>2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
>
>
>>nicolas.jouanin wrote:
>>
>>
>>
>>>Hi,
>>>
>>>
>>>
>>>I read a previous thread concerning the use of Oracle with JackRabbit
>>>(see below for copy).
>>>
>>>As written, it seems not so simple to make it work.
>>>
>>>Nevertheless, I wrote an oracle.ddl file (attached to this email)
>>>based on mysql.ddl where I simply replaced some data types:
>>>
>>>- longblob -> blob
>>>
>>>- char -> varchar2 (Oracle doesn't like char)
>>>
>>>
>>>
>>>Then I configured repository.xml correctly and used this configuration
>>>to run this famous jLibrary software. To my surprise it worked, and
>>>managed to create a repository, and add some nodes : some jlibrary
>>>folders, and some PDF documents node.
>>>
>>>
>>>
>>>So , it may be need some more testing ; has someone achieved to make
>>>jackrabbit run with Oracle, let me know.
>>>
>>>
>>>
>>>Regards, Nicolas.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>Original message:
>>>
>>>
>>>
>>>
>>>
>>>Antonis Tsaltas
>>>
>>><An...@eurodyn.com>to jackrabbit-dev
>>>
>>> More options Dec 15 (3 days ago)
>>>
>>>Dear all,
>>>
>>>
>>>
>>>I am trying to use oracle with jackrabbit and the steps I have followed
>>>
>>>are the following:
>>>
>>>
>>>
>>>1) I have created the ddl files needed for creating the schemas with
>>>
>>>oracle database similar to the existing ones and add them to the
>>>
>>>appropriate package in the jackrabbit jar generated after the build.
>>>
>>>However, when I tried to run a sample application I got nested
>>>
>>>exceptions during the configuration of the repository and more specific
>>>
>>>during the insertion of the root node due to the case that Oracle is
>>>
>>>treating an emptry string and null as the same and the fsname of the
>>>
>>>root node is empty string.
>>>
>>>
>>>
>>>2) Next I tried to allow nullable values for the fsname as this will
>>>
>>>only be the case for the root node and there will be no manual updates
>>>
>>>to the repository. At this point it failed again when it tried to add an
>>>
>>>entry '/meta' in fsentries table when it was checking if the parent of
>>>
>>>this node exists (which is root node '/' ). There it performs the
>>>
>>>following query:
>>>
>>>
>>>
>>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>>>
>>>FSENTRY_NAME is null
>>>
>>>
>>>
>>>which is in oracle equivalent with this:
>>>
>>>
>>>
>>>select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>>>
>>>FSENTRY_NAME=''
>>>
>>>
>>>
>>>and then it tries to insert the root node again but there is the logical
>>>
>>>constraint:
>>>
>>>
>>>
>>>create unique index ${schemaObjectPrefix}FSENTRY_IDX on
>>>
>>>${schemaObjectPrefix}FSENTRY
>>>
>>> (FSENTRY_PATH, FSENTRY_NAME).
>>>
>>>
>>>
>>>Are there any suggestion or does anyone know if jackrabbit can work fine
>>>
>>>with oracle db server?
>>>
>>>
>>>
>>>Thanx
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Stefan Guggisberg
>>>
>>>to jackrabbit-dev
>>>
>>> More options Dec 15 (3 days ago)
>>>
>>>hi antonis
>>>
>>>- Show quoted text -
>>>
>>>
>>>
>>>well there's no reason why that shouldn't be the case in general.
>>>
>>>but because of oracle's rather exotic and non-standard 'feature' of
>>>treating
>>>
>>>empty values as null you will probably have to write some oracle
>>>
>>>
>>specific
>>
>>
>>>code :(
>>>
>>>
>>>
>>>cheers
>>>
>>>stefan
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>Thanx
>>>>
>>>>
>>Hi Nicolas,
>>
>>I tried to do what you described in your mail from scratch, but the
>>exception that I received during configuration of the repository is the
>>following, which is due to Oracle's aproach of treating NULL and empty
>>string in the same way (for the root node tries to insert '/' as path
>>and '' as name where it fails):
>>
>>org.apache.jackrabbit.core.config.ConfigurationException: File system
>>initialization failure.: failed to initialize file system: failed to
>>create folder entry: /: ORA-01400: cannot insert NULL into
>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>: failed to initialize file system: failed to create folder entry: /:
>>ORA-01400: cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>> at
>>org.apache.jackrabbit.core.config.FileSystemConfig.init(
>>FileSystemConfig.java:61)
>> at
>>org.apache.jackrabbit.core.config.RepositoryConfig.init(
>>RepositoryConfig.java:250)
>> at
>>org.apache.jackrabbit.core.config.RepositoryConfig.create(
>>RepositoryConfig.java:136)
>> at
>>org.apache.jackrabbit.core.config.RepositoryConfig.create(
>>RepositoryConfig.java:78)
>> at
>>org.apache.jackrabbit.core.jndi.BindableRepository.init(
>>BindableRepository.java:122)
>> at
>>org.apache.jackrabbit.core.jndi.BindableRepository.create(
>>BindableRepository.java:110)
>> at
>>org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
>>RegistryHelper.java:57)
>> at ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
>> at
>>ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
>> at ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
>>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
>>initialize file system: failed to create folder entry: /: ORA-01400:
>>cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
>> at
>>org.apache.jackrabbit.core.config.FileSystemConfig.init(
>>FileSystemConfig.java:55)
>> ... 9 more
>>Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
>>create folder entry: /: ORA-01400: cannot insert NULL into
>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
>>DbFileSystem.java:1256)
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
>>DbFileSystem.java:1225)
>> at
>>org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
>> ... 10 more
>>Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
>>("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>>
>>
>>
>>
>>
>
>
>
Hi,
Yes I have done that. However, the error does not seem to be relevant to
that.
Re: Oracle as Persistence manager
Posted by Nicolas Jouanin <ni...@gmail.com>.
Hi,
As i said, may be it comes from the fact that the orginial ddl file (
mysql.ddl) uses CHAR type for table columns. I replaced them by VARCHAR2
columns.
Have your tried the same, or have you let let the CHAR datatype ?
I'll try to get back to CHAR datatype and try to run jLibrary with it.I'll
tell you the result.
2005/12/20, Antonis Tsaltas <An...@eurodyn.com>:
>
> nicolas.jouanin wrote:
>
> > Hi,
> >
> >
> >
> > I read a previous thread concerning the use of Oracle with JackRabbit
> > (see below for copy).
> >
> > As written, it seems not so simple to make it work.
> >
> > Nevertheless, I wrote an oracle.ddl file (attached to this email)
> > based on mysql.ddl where I simply replaced some data types:
> >
> > - longblob -> blob
> >
> > - char -> varchar2 (Oracle doesn't like char)
> >
> >
> >
> > Then I configured repository.xml correctly and used this configuration
> > to run this famous jLibrary software. To my surprise it worked, and
> > managed to create a repository, and add some nodes : some jlibrary
> > folders, and some PDF documents node.
> >
> >
> >
> > So , it may be need some more testing ; has someone achieved to make
> > jackrabbit run with Oracle, let me know.
> >
> >
> >
> > Regards, Nicolas.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Original message:
> >
> >
> >
> >
> >
> > Antonis Tsaltas
> >
> > <An...@eurodyn.com>to jackrabbit-dev
> >
> > More options Dec 15 (3 days ago)
> >
> > Dear all,
> >
> >
> >
> > I am trying to use oracle with jackrabbit and the steps I have followed
> >
> > are the following:
> >
> >
> >
> > 1) I have created the ddl files needed for creating the schemas with
> >
> > oracle database similar to the existing ones and add them to the
> >
> > appropriate package in the jackrabbit jar generated after the build.
> >
> > However, when I tried to run a sample application I got nested
> >
> > exceptions during the configuration of the repository and more specific
> >
> > during the insertion of the root node due to the case that Oracle is
> >
> > treating an emptry string and null as the same and the fsname of the
> >
> > root node is empty string.
> >
> >
> >
> > 2) Next I tried to allow nullable values for the fsname as this will
> >
> > only be the case for the root node and there will be no manual updates
> >
> > to the repository. At this point it failed again when it tried to add an
> >
> > entry '/meta' in fsentries table when it was checking if the parent of
> >
> > this node exists (which is root node '/' ). There it performs the
> >
> > following query:
> >
> >
> >
> > select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> >
> > FSENTRY_NAME is null
> >
> >
> >
> > which is in oracle equivalent with this:
> >
> >
> >
> > select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
> >
> > FSENTRY_NAME=''
> >
> >
> >
> > and then it tries to insert the root node again but there is the logical
> >
> > constraint:
> >
> >
> >
> > create unique index ${schemaObjectPrefix}FSENTRY_IDX on
> >
> > ${schemaObjectPrefix}FSENTRY
> >
> > (FSENTRY_PATH, FSENTRY_NAME).
> >
> >
> >
> > Are there any suggestion or does anyone know if jackrabbit can work fine
> >
> > with oracle db server?
> >
> >
> >
> > Thanx
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Stefan Guggisberg
> >
> > to jackrabbit-dev
> >
> > More options Dec 15 (3 days ago)
> >
> > hi antonis
> >
> > - Show quoted text -
> >
> >
> >
> > well there's no reason why that shouldn't be the case in general.
> >
> > but because of oracle's rather exotic and non-standard 'feature' of
> > treating
> >
> > empty values as null you will probably have to write some oracle
> specific
> >
> > code :(
> >
> >
> >
> > cheers
> >
> > stefan
> >
> >
> >
> >
> >
> >
> >
> >>
> >
> >> Thanx
> >
> >>
> >
> Hi Nicolas,
>
> I tried to do what you described in your mail from scratch, but the
> exception that I received during configuration of the repository is the
> following, which is due to Oracle's aproach of treating NULL and empty
> string in the same way (for the root node tries to insert '/' as path
> and '' as name where it fails):
>
> org.apache.jackrabbit.core.config.ConfigurationException: File system
> initialization failure.: failed to initialize file system: failed to
> create folder entry: /: ORA-01400: cannot insert NULL into
> ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
> : failed to initialize file system: failed to create folder entry: /:
> ORA-01400: cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>
> at
> org.apache.jackrabbit.core.config.FileSystemConfig.init(
> FileSystemConfig.java:61)
> at
> org.apache.jackrabbit.core.config.RepositoryConfig.init(
> RepositoryConfig.java:250)
> at
> org.apache.jackrabbit.core.config.RepositoryConfig.create(
> RepositoryConfig.java:136)
> at
> org.apache.jackrabbit.core.config.RepositoryConfig.create(
> RepositoryConfig.java:78)
> at
> org.apache.jackrabbit.core.jndi.BindableRepository.init(
> BindableRepository.java:122)
> at
> org.apache.jackrabbit.core.jndi.BindableRepository.create(
> BindableRepository.java:110)
> at
> org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(
> RegistryHelper.java:57)
> at ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
> at
> ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
> at ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
> Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> initialize file system: failed to create folder entry: /: ORA-01400:
> cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>
> at
> org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
> at
> org.apache.jackrabbit.core.config.FileSystemConfig.init(
> FileSystemConfig.java:55)
> ... 9 more
> Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
> create folder entry: /: ORA-01400: cannot insert NULL into
> ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>
> at
> org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(
> DbFileSystem.java:1256)
> at
> org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(
> DbFileSystem.java:1225)
> at
> org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
> ... 10 more
> Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
> ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
>
>
>
Re: Oracle as Persistence manager
Posted by Antonis Tsaltas <An...@eurodyn.com>.
nicolas.jouanin wrote:
> Hi,
>
>
>
> I read a previous thread concerning the use of Oracle with JackRabbit
> (see below for copy).
>
> As written, it seems not so simple to make it work.
>
> Nevertheless, I wrote an oracle.ddl file (attached to this email)
> based on mysql.ddl where I simply replaced some data types:
>
> - longblob -> blob
>
> - char -> varchar2 (Oracle doesn't like char)
>
>
>
> Then I configured repository.xml correctly and used this configuration
> to run this famous jLibrary software. To my surprise it worked, and
> managed to create a repository, and add some nodes : some jlibrary
> folders, and some PDF documents node.
>
>
>
> So , it may be need some more testing ; has someone achieved to make
> jackrabbit run with Oracle, let me know.
>
>
>
> Regards, Nicolas.
>
>
>
>
>
>
>
>
>
> Original message:
>
>
>
>
>
> Antonis Tsaltas
>
> <An...@eurodyn.com>to jackrabbit-dev
>
> More options Dec 15 (3 days ago)
>
> Dear all,
>
>
>
> I am trying to use oracle with jackrabbit and the steps I have followed
>
> are the following:
>
>
>
> 1) I have created the ddl files needed for creating the schemas with
>
> oracle database similar to the existing ones and add them to the
>
> appropriate package in the jackrabbit jar generated after the build.
>
> However, when I tried to run a sample application I got nested
>
> exceptions during the configuration of the repository and more specific
>
> during the insertion of the root node due to the case that Oracle is
>
> treating an emptry string and null as the same and the fsname of the
>
> root node is empty string.
>
>
>
> 2) Next I tried to allow nullable values for the fsname as this will
>
> only be the case for the root node and there will be no manual updates
>
> to the repository. At this point it failed again when it tried to add an
>
> entry '/meta' in fsentries table when it was checking if the parent of
>
> this node exists (which is root node '/' ). There it performs the
>
> following query:
>
>
>
> select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>
> FSENTRY_NAME is null
>
>
>
> which is in oracle equivalent with this:
>
>
>
> select 1 from REP_FSENTRY where FSENTRY_PATH = '/' and
>
> FSENTRY_NAME=''
>
>
>
> and then it tries to insert the root node again but there is the logical
>
> constraint:
>
>
>
> create unique index ${schemaObjectPrefix}FSENTRY_IDX on
>
> ${schemaObjectPrefix}FSENTRY
>
> (FSENTRY_PATH, FSENTRY_NAME).
>
>
>
> Are there any suggestion or does anyone know if jackrabbit can work fine
>
> with oracle db server?
>
>
>
> Thanx
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Stefan Guggisberg
>
> to jackrabbit-dev
>
> More options Dec 15 (3 days ago)
>
> hi antonis
>
> - Show quoted text -
>
>
>
> well there's no reason why that shouldn't be the case in general.
>
> but because of oracle's rather exotic and non-standard 'feature' of
> treating
>
> empty values as null you will probably have to write some oracle specific
>
> code :(
>
>
>
> cheers
>
> stefan
>
>
>
>
>
>
>
>>
>
>> Thanx
>
>>
>
Hi Nicolas,
I tried to do what you described in your mail from scratch, but the
exception that I received during configuration of the repository is the
following, which is due to Oracle's aproach of treating NULL and empty
string in the same way (for the root node tries to insert '/' as path
and '' as name where it fails):
org.apache.jackrabbit.core.config.ConfigurationException: File system
initialization failure.: failed to initialize file system: failed to
create folder entry: /: ORA-01400: cannot insert NULL into
("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
: failed to initialize file system: failed to create folder entry: /:
ORA-01400: cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
at
org.apache.jackrabbit.core.config.FileSystemConfig.init(FileSystemConfig.java:61)
at
org.apache.jackrabbit.core.config.RepositoryConfig.init(RepositoryConfig.java:250)
at
org.apache.jackrabbit.core.config.RepositoryConfig.create(RepositoryConfig.java:136)
at
org.apache.jackrabbit.core.config.RepositoryConfig.create(RepositoryConfig.java:78)
at
org.apache.jackrabbit.core.jndi.BindableRepository.init(BindableRepository.java:122)
at
org.apache.jackrabbit.core.jndi.BindableRepository.create(BindableRepository.java:110)
at
org.apache.jackrabbit.core.jndi.RegistryHelper.registerRepository(RegistryHelper.java:57)
at ed.doc.mgt.test.RepositoryManager.<init>(RepositoryManager.java:82)
at
ed.doc.mgt.test.RepositoryManager.configRep(RepositoryManager.java:465)
at ed.doc.mgt.test.RepositoryManager.main(RepositoryManager.java:443)
Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
initialize file system: failed to create folder entry: /: ORA-01400:
cannot insert NULL into ("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
at
org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:344)
at
org.apache.jackrabbit.core.config.FileSystemConfig.init(FileSystemConfig.java:55)
... 9 more
Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to
create folder entry: /: ORA-01400: cannot insert NULL into
("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")
at
org.apache.jackrabbit.core.fs.db.DbFileSystem.createDeepFolder(DbFileSystem.java:1256)
at
org.apache.jackrabbit.core.fs.db.DbFileSystem.verifyRoodExists(DbFileSystem.java:1225)
at
org.apache.jackrabbit.core.fs.db.DbFileSystem.init(DbFileSystem.java:338)
... 10 more
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into
("RABBIT"."REP_FSENTRY"."FSENTRY_NAME")