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 |
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 > > |
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 |
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 |
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, > |
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 > > |
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 |
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 |
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 > > |
Free forum by Nabble | Edit this page |