NPRao
16th May 2002, 03:00
Hi All,

Is there a way we can remove an object from shared memory, without getting the shared memory restarted on Unix?

In general, on Unix, if we do a recycle of shared memory we loose the current connection.

I think in the BaaN NT installation, BaaN provides some tool called NT manager, with which one can unload and reload a particular object in shared memory.

Any ideas?

Thanks!

Francesco
18th May 2002, 01:06
To the best of my knowledge there is no other solution than bouncing shared memory (which you can't do without bouncing the entire app and all linked third party apps).

Han Brinkman
21st May 2002, 10:05
Let's approch this the other way around, why do you want to remove it from SHM?

On Unix the bshell checks if the object on disk is newer than the one in shm, in case it's updated it will use the newer one on disk instead of the old one. On NT this doesn't work and you will have to bounce shm or remove the object manually.

Rgrds,
Han

Francesco
21st May 2002, 17:12
But not every app that attaches to shm can be bounced so easily.

I personally also think it is a pain having to exit all the way out and re-enter to see the effect of your changes.

I agree with NPRao that it would be nice to have. As a matter of fact, I will put it at position 376 on my nice-to-have-list.

Originally posted by Han Brinkman
Let's approch this the other way around, why do you want to remove it from SHM?

On Unix the bshell checks if the object on disk is newer than the one in shm, in case it's updated it will use the newer one on disk instead of the old one. On NT this doesn't work and you will have to bounce shm or remove the object manually.

Rgrds,
Han

NPRao
21st May 2002, 19:12
Hi Hans,

my purpose of looking for an option for unloaded/reloading a particular object from shared memory is to support the LIVE code migrations on a system. I have investigated that even if we are doing a live code migrations, if an object is loaded in shared memory it still picks up the old object version but its not used and not in shared memory it picks up the new object version.
This is found to be only in the case of program scripts. I tested the program scripts with debugger options, when it calls a dll which is just migrated live it picks up the latest dll object.

If there is such option I would like to use some shell script to make a selective load/unload of objects.

I am investigating various options to make our code migrations process faster and better.