STS/Omnibase incompatibility ?

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

STS/Omnibase incompatibility ?

Chris Uppal-3
I'm attempting to connect to a new STS repository created from D6 from a D5
image (with my normal STS installed).   I'm gettting an error attempting to
de-serialise an object (I'll attach a stack trace in case it's useful).

Is this likely to be an STS problem or an Omnibase one ?  Can anyone confirm
whether STS (in D5) is supposed to be able to read repositories written from D6
?  (If not then that's rather disturbing, but it isn't what I'd have expected
at all).

    -- chris

====== stack trace =========
12:48:48, 17 October 2005: Unhandled exception - an Error('Unknown
serialization id (28)!')

ODBDeserializer(Object)>>error:
ODBDeserializer>>loadError
UndefinedObject>>odbDeserialize:
ODBDeserializer>>nextObject
ODBDeserializer>>deserializeFrom:referenceManager:transaction:
ODBSerializedDBObject256References>>makeTransactionObject:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockClosure>>ifCurtailed:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
[] in BlockClosure>>critical
BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
BlockClosure>>critical
ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
ODBDemandLoader>>getObject
ODBDemandLoader>>perform:withArguments:
ODBReference>>doesNotUnderstand:
StsManager>>getAllPackageNames
StsPackageEditionsBrowserShell>>refresh
StsPackageEditionsBrowserShell>>onViewOpened


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

David Gorisek-2
The D5 and X6 versions use the same OmniBase code. So you might first
check if you are using the latest OmniBase version in D5. You can also
download the latest OmniBase package for D5 from http://www.gorisek.com 
and see if you are still getting the error.

Else, you can also isolate the object which is causing this error. Look
at #transactionObjectAt: in debugger where you will find out which OID
the object has. Then load this object in D5 and in X6 to see if anything
is different.

Best regards,

David Gorisek


Chris Uppal wrote:

> I'm attempting to connect to a new STS repository created from D6 from a D5
> image (with my normal STS installed).   I'm gettting an error attempting to
> de-serialise an object (I'll attach a stack trace in case it's useful).
>
> Is this likely to be an STS problem or an Omnibase one ?  Can anyone confirm
> whether STS (in D5) is supposed to be able to read repositories written from D6
> ?  (If not then that's rather disturbing, but it isn't what I'd have expected
> at all).
>
>     -- chris
>
> ====== stack trace =========
> 12:48:48, 17 October 2005: Unhandled exception - an Error('Unknown
> serialization id (28)!')
>
> ODBDeserializer(Object)>>error:
> ODBDeserializer>>loadError
> UndefinedObject>>odbDeserialize:
> ODBDeserializer>>nextObject
> ODBDeserializer>>deserializeFrom:referenceManager:transaction:
> ODBSerializedDBObject256References>>makeTransactionObject:
> [] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
> BlockClosure>>ifCurtailed:
> [] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
> [] in BlockClosure>>critical
> BlockClosure>>ifCurtailed:
> BlockClosure>>ensure:
> BlockClosure>>critical
> ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
> ODBDemandLoader>>getObject
> ODBDemandLoader>>perform:withArguments:
> ODBReference>>doesNotUnderstand:
> StsManager>>getAllPackageNames
> StsPackageEditionsBrowserShell>>refresh
> StsPackageEditionsBrowserShell>>onViewOpened
>
>


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

Chris Uppal-3
David,

> The D5 and X6 versions use the same OmniBase code. So you might first
> check if you are using the latest OmniBase version in D5. You can also
> download the latest OmniBase package for D5 from http://www.gorisek.com
> and see if you are still getting the error.

Thanks David, I'm using Omnibase 2.04/2, and that's what caused the problem --
there are some new entries in ODBDeserializer's #classArray which my version of
Omnibase didn't know about.

Is it possible to run Omnibase in a way that will allow it to maintain backward
compatibility, or do all apps that use a given database have to agree on the
same version ?

Alternatively, can I just swap the new Omnibase into my D5 setup without
changing STS ?  (That would cause a great deal of upheaval which I'm very
anxious to avoid when I'm going to have a big upheaval (with D6) anyway ;-)

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

Andy Bower-3
David,

Could you just confirm whether X6 B2 has the correct (i.e. latest)
Omnibase installed.

Best regards,

--
Andy Bower
Dolphin Support
www.object-arts.com


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

David Gorisek-2
Yes, the OmniBase code in X6 B2 is the latest version. The only
difference is the package name, originaly it is OmniBase, not Omnibase.

Best regards,

David

Andy Bower wrote:
> David,
>
> Could you just confirm whether X6 B2 has the correct (i.e. latest)
> Omnibase installed.
>
> Best regards,
>


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

David Gorisek-2
In reply to this post by Chris Uppal-3
Chris,

backward compatibility is guaranteed. In your case you would need
forward compatibility which is not possible.

Anyway, there are currently no version specifics so that the same code
will run with either D5 or X6.

You can also upgrade OmniBase without having to upgrade STS in your
current D5 setup.

Best regards,

David


Chris Uppal wrote:

> David,
>
>
>>The D5 and X6 versions use the same OmniBase code. So you might first
>>check if you are using the latest OmniBase version in D5. You can also
>>download the latest OmniBase package for D5 from http://www.gorisek.com
>>and see if you are still getting the error.
>
>
> Thanks David, I'm using Omnibase 2.04/2, and that's what caused the problem --
> there are some new entries in ODBDeserializer's #classArray which my version of
> Omnibase didn't know about.
>
> Is it possible to run Omnibase in a way that will allow it to maintain backward
> compatibility, or do all apps that use a given database have to agree on the
> same version ?
>
> Alternatively, can I just swap the new Omnibase into my D5 setup without
> changing STS ?  (That would cause a great deal of upheaval which I'm very
> anxious to avoid when I'm going to have a big upheaval (with D6) anyway ;-)
>
>     -- chris
>
>


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

Chris Uppal-3
David,

> backward compatibility is guaranteed. In your case you would need
> forward compatibility which is not possible.

Well, by "backward compatible" I meant able to use the same repository as older
clients.

For instance, in this case, the difference is sort of a dot-dot difference and
the implementation /could/ have known that it was talking to a repository read
by older clients and used a correspondingly older version of the #classArray
itself, which would -- as far as I can see -- have had the "desired effect".
I'm not suggesting that that's how you /should/ have implemented it, nor am I
asking for it as an enhancement, still less criticising -- I just wanted to
know what facilities the implementation in fact provided.


> You can also upgrade OmniBase without having to upgrade STS in your
> current D5 setup.

Great, then that's what I shall do.

Thanks for your help (again).

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

Chris Uppal-3
I wrote:

> > You can also upgrade OmniBase without having to upgrade STS in your
> > current D5 setup.
>
> Great, then that's what I shall do.

Unfortunately, that didn't work.  I swapped in the new OmniBase code, and it
all /seemed/ to be working OK, but after a while I started getting walkbacks.
I wasn't able to find a resolution, so I just reverted to the backup.

So, instead, I'm trying to use a copy my D5 repository as a basis for a new D6
repository, but I can't make that work either.  I'll start a new thread for
those problems.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: STS/Omnibase incompatibility ?

David Gorisek-2
Chris,

the first problem you reported is definitely related to using database
files written from a new OmniBase version with an old version with old
deserializer code.

Serializer id 28 is now used for the class LookupTable which is handled
by the serializer for dialect portability. Before it was serialized as
any other Smalltalk object (non-optimized) and that has caused problems
due to different implementations of LookupTable across dialects.

If you still have problems then you must have another error. So could
you send a walkback file?

Best regards,

David Gorisek


Chris Uppal wrote:

> I wrote:
>
>
>>>You can also upgrade OmniBase without having to upgrade STS in your
>>>current D5 setup.
>>
>>Great, then that's what I shall do.
>
>
> Unfortunately, that didn't work.  I swapped in the new OmniBase code, and it
> all /seemed/ to be working OK, but after a while I started getting walkbacks.
> I wasn't able to find a resolution, so I just reverted to the backup.
>
> So, instead, I'm trying to use a copy my D5 repository as a basis for a new D6
> repository, but I can't make that work either.  I'll start a new thread for
> those problems.
>
>     -- chris
>
>