Size of AS/400 C++ administration area (u.of 16MB)
(See SAP Note 376827) If C++ objects are created on the AS/400 with thenew-operator then these are stored on the system heap. On the otherhand, C++ offers the option to overload the new-operator and tooverwrite it with an implementation of your own. This is done in someplaces of the SAP code in order that objects are stored in the SAP rollarea rather than the heap. If the objects instantiated in the roll areain this way use virtual functions then pointers to a table of virtualfunctions are stored with the object in the roll area. As these virtualfunctions in the process-local memory of the work process (technicallyseen as an own activation group), the roll area therefore containspointers to the process local memory. If a user is now temporarilyinterrupted during a transaction and is taken out of the work process(rolled out), then the pointer is retained. If the processing iscontinued in another work process, the user gets the previous roll areaback but with virtual function pointers that still point to the previousactivation group (that is, the previous work process). If this pointerwas still in use, the work process would cancel with an MCH error (ille
gal pointer). To avoid this canelation, SAP tries to correct thispointer and to point to the process-local virtual function in the newwork process when continuing the transaction of a user in another workprocess. Prerequisite for this is that the activation groups (= workprocesses) are structured identically. SAP introduces a system-widetable in the shared memory at all places that could potentially containvirtual function pointers in the roll area. This table must include thedata of all users. It is used when revoking a transaction to find alllocations with virtual function pointers for the special user and tocorrect them in such a way that they point to the new work process.
Whole number multiple of 16MB
Who is allowed
Limitation for os