[OmniBase] - Invalid Object Id

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[OmniBase] - Invalid Object Id

Bruno Buzzi Brasesco
Hi,

Did anyone have this problem with an OmniBase repository ?

anODBTreeDictionary values. "fails because: invalid object id"
This seems to me that the repository is corrupted, but i trying to find in
which cases this can happen.
And how i can solve it.

Anyone had this error ?

How i can walk over all repository's objects without using objectID  ?
(Can i loding them as serialized bytes ?)

Regards Bruno


Reply | Threaded
Open this post in threaded view
|

Re: [OmniBase] - Invalid Object Id

Chris Uppal-3
Bruno wrote:

> anODBTreeDictionary values. "fails because: invalid object id"
> This seems to me that the repository is corrupted, but i trying to find in
> which cases this can happen.

This is a very long shot, but...  I've just unpacked the GemBuilder beta and I
notice that it defines Object>>markDirty.  That method is also defined by
OmniBase.  Is it possible that you have overwriten the OmniBase method with the
GemBuilder one ?

The OmniBase method reads:

==============
    markDirty
         OmniBase currentTransaction markDirty: self
==============

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: [OmniBase] - Invalid Object Id

Bruno Buzzi Brasesco
> The OmniBase method reads:
>
> ==============
>     markDirty
>          OmniBase currentTransaction markDirty: self
> ==============

I know about this "bug". And there's is also a problem with STS.

But:
It can be changed from #markDirty to #markChanged without problems.
References to GS #markDirty
GbxNameAssociation>>#value:
GbsSession>>#addClampedObject:

But you have to remember in your GemStone applications.

Regards Bruno


Reply | Threaded
Open this post in threaded view
|

Re: [OmniBase] - Invalid Object Id

Bruno Buzzi Brasesco
In reply to this post by Bruno Buzzi Brasesco
Fixed.

I think it is a problem with ODBBTreeDictionary key.
One key was not garbage collected then ODBBTreeDictionary>>#values crash.

Well, this is my case, but i do not know when this can happend.

Solution:
anODBBTreeDictionay allKeys
    do:[:key | [anODBBTreeDictionay at: key] on: ODBError
        do:[:error | anODBBTreeDictionay removeKey: key]].
anODBBTreeDictionay transaction commit.

Regards Bruno

"Bruno" <[hidden email]> escribió en el mensaje
news:[hidden email]...

> Hi,
>
> Did anyone have this problem with an OmniBase repository ?
>
> anODBTreeDictionary values. "fails because: invalid object id"
> This seems to me that the repository is corrupted, but i trying to find in
> which cases this can happen.
> And how i can solve it.
>
> Anyone had this error ?
>
> How i can walk over all repository's objects without using objectID  ?
> (Can i loding them as serialized bytes ?)
>
> Regards Bruno
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [OmniBase] - Invalid Object Id - Final Fixed

Bruno Buzzi Brasesco
In reply to this post by Bruno Buzzi Brasesco
Hi,

Solution:
1. Rewrite ODBGarbageCollector>>walkObjects with a lot of halt (6).
2. Collect each object that have a reference to the Invalid ODBObjectID.
3. Analice each object (delete the object or not ?):
    3.1. Delete object or ...
    3.2. Changed the reference for anObject with a valid ODBObjectID.

Regards Bruno


"Bruno" <[hidden email]> escribió en el mensaje
news:[hidden email]...

> Hi,
>
> Did anyone have this problem with an OmniBase repository ?
>
> anODBTreeDictionary values. "fails because: invalid object id"
> This seems to me that the repository is corrupted, but i trying to find in
> which cases this can happen.
> And how i can solve it.
>
> Anyone had this error ?
>
> How i can walk over all repository's objects without using objectID  ?
> (Can i loding them as serialized bytes ?)
>
> Regards Bruno
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [OmniBase] - Invalid Object Id - Final Fixed

Chris Uppal-3
Bruno wrote:

> Solution:
> 1. Rewrite ODBGarbageCollector>>walkObjects with a lot of halt (6).
> 2. [...]

Dear Gods!  That sounds like a lot of work.  Your data must be very dear to you
;-)

(Thanks for the tip -- I hope I'm never in a position to need it...)

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: [OmniBase] - Invalid Object Id - Final Fixed

Bruno Buzzi Brasesco
> Dear Gods!  That sounds like a lot of work.  Your data must be very dear
to you
> ;-)
>

Well, is not so hard as it seems.
The repository belong to a Customer.

Regards Bruno