vaishali_sftdev
16th July 2008, 20:24
Hi,

How compiling is different than the Convert to Runtime? Why we do not require relogin when we compile a script or dump a form? How APDD and RTDD come into the picture in both the cases? Plz, elaborate.

Thanks.

mark_h
17th July 2008, 05:33
When compiling you are compiling directly to a runtime object - object is loaded at runtime. Same with the form. So no log out and log in to do. Sometimes a object can get put out there where the data dictionary does not get updated correctly. So for example a new report is added to the session - I log in run the session and do not see the new report. I then do a convert(or create) to get it updated. Then run the program and it works. I do know sometimes Baan does not recognize a change to a session and needs to be forced to re-create the data dictionary.

Forgot to add that this is different than a domain or table definition. These are loaded are login in time - so those require a log out and log back in.

vaishali_sftdev
21st July 2008, 09:03
Thank u Mark for clarifing doubt.
Is there any concept of shared memory? When user login, a reference is created. So, if we make any changes in table and then do convert to runtime.. We cannot c changes since, our reference is an older one. But when we get relogin new refrence is created. Is it right?

mark_h
21st July 2008, 15:12
We do not really use shared memory, but it is my understanding that if you change something that is in shared memory(object, table, etc.) then you must stop and restart shared memory to get the new object into it.

dave_23
21st July 2008, 23:48
In Unix -
On Baan startup srdd_init loads everything into shared memory.

When a bshell first accesses an object - it compares the disk object to the shared memory object (via the inode) if there is a difference, the bshell loads the version from disk (and then updates the global shared memory).

The bshell only reads an object once. With 1 exception:

Create/convert runtime will force an age out of an object for the existing bshell. (sometimes). but not other bshells that have touched that object.


In Windows -
Similar to above except -
There is no concept of modification date/time associated with an inode, so baan cannot compare changes between objects in shared memory and objects on the disk in any reasonable way (without incurring significant performance degradation)

So if you make a change to an object you need to either:
1) remove it by hand using the shared memory manager in bentman or
2) restart shared memory (and remove all bshell connections)


Dave