Page 1 of 1

How to insert a schema between two others.

Posted: Fri Aug 07, 2009 12:10 pm
by ConvertFromOldNGs
by CarlRanson >> Thu, 25 Jul 2002 1:14:25 GMT

Hi All,

Does anyone have a process worked out to sucessfully add a schema between two existing ones? There is data associated with the classes in the bottom schema.

It seems likely that one could rebuild the schemas into a new jade system and re-use the dat files somehow, but im not entirely clear on how you would go about it.

Anyone?
CR

Re: How to insert a schema between two others.

Posted: Fri Aug 07, 2009 12:10 pm
by ConvertFromOldNGs
by jadesupport >> Mon, 29 Jul 2002 0:11:43 GMT

Carl,

This is not an officially sanctioned operation and the ideas represented in this posting are not necessarily those of my employer. Your use of this information is entirely at your own risk. No warranty, implied or otherwise, accompanies the following information. Viewer discretion is advised.

Cheers,
BeeJay. ____________________________________________________________________________ __

The following is how I achieved just this result in a couple of systems that I look after. Let me know if this helps.

1) I took a full offline backup of the target system prior to starting !!

2) I created a very small, App/Global/WebSession only defined schema with the appropriate class and mapfile names to match the full schema that I eventually wanted to insert into the hierarchy - created as a subschema of the appropriate superschema. I made sure that there were no additional properties on any of these classes to ensure no reorg complications with this process.

3) Then I extracted and loaded this dummy schema into the target system to ensure the class numbers get remapped to avoid any potential for class number conflict.

4) I performed a mul extract of all the schemas from the target system.

5) I then used jdbutilb to perform a delete of the 5 x _user***.dat files that contain only meta data of the schema definitions. ie:

jdbutilb path=<db path> delete _userdev
jdbutilb path=<db path> delete _usergui
jdbutilb path=<db path> delete _userint
jdbutilb path=<db path> delete _userscm
jdbutilb path=<db path> delete _userxrf

Note: I did *NOT* delete _userdef as this contains user data.

6) I then performed an "unsupported and not recommended" edit of the schema file for the schema that will be immediately below my inserted schema and changed as appropriate the subschema of definition. Then I changed the subclass of definitions as appropriate for the Application, Global and WebSession subclasses.

7) I then restarted the JDE for the target system, cancelled the "do you want to add a schema" dialog and performed a mul load of all the schemas extracted at step 4 above.

8) I then restarted the system and tested to ensure I could access all the data that was available in the system previously without any 3039, error 4s or similar errors occurring.

9) Ran a post-fiddle full offline backup and then made the system available to the users again. ____________________________________________________________________________ __

At a later time when I was ready, I then performed a normal schema load of the full version of the inserted schema and left the schema load process to handle any reorgs etc at that time. You could do this operation prior to making the system available to the users if desired. Note that this process will not help if you want to reparent any of the persistent object classes in the subschema(s) to classes in the newly inserted schema.

Re: How to insert a schema between two others.

Posted: Fri Aug 07, 2009 12:10 pm
by ConvertFromOldNGs
by CarlRanson >> Mon, 29 Jul 2002 1:01:32 GMT

Yes, I recognise that the procedure posted is unofficial and all that stuff, but im still grateful for the input.

Actually, the case I have in mind is inserting an automation tools layer, so with any luck there should be no inheritance, subschema copies between the schemas except for app, global etc. That should up the odds of it working.

Thanks again,
CR