Program Version Error NAT0932 and subroutines


I am trying to understand the mechanics behind this error in relation to subroutines.

In test I can promote and stow a subroutine used by a program running in batch that sleeps when not busy without generating a NAT0932.

Is this luck or is ADABAS Natural Buffer Pool maintenance designed to prevent this occurring by deleting the module when stowed?

If the subroutine was being executed at point of stow would this make a difference?


You need to explain more about your environment: are you using Global Buffer Pool? If you are stowing online, does your online use the same GBP as the batch? Are you sending your updated module from a to b (test to prod?), where b is where the NAT0932 occurs? Or are you pulling the module into b from a (that is, are you initiating a SYSMAIN from a or from b?) Are a and b on different GBP’s?

In general, assuming you have different GBP’s between environments, you want to be on the target environment (e.g. prod) and use SYSMAIN to pull the module from the source environment (e.g. test). This allows the GBP to be aware of the update and act accordingly. If you do it the other way, the target GBP doesn’t know that the module has been updated on the database and that it is different from the version it has in the BP. If space constraints and non-usage dictate that the module be unloaded, the BP doesn’t know that the module is changed until it re-reads it from the database.

Thanks for your reply.

Some detail I don’t know yet - we use a change control function that hides critical detail from us.