H-Series Application Migration Guide (H06.03+)

General Programming Issues
H-Series Application Migration Guide429855-006
4-7
DDL Dictionary Conversion Required
The system will not allocate less file space than was requested by the file creation
values. If the request extent sizes are a multiple of 14, the system allocates the exact
file space requested. However, if the requested extent sizes are not a multiple of 14,
some additional file space is allocated, allowing the file to grow larger than requested.
This situation does not usually require any application changes. But in some cases, a
change might be required. For example, changes might be required if:
The application expects that the extent sizes or maximum extents will match a
particular value.
The application expects the file to become full at a particular relative byte address
(RBA) based on the extent sizes and maximum extents specified at file creation
time.
DDL Dictionary Conversion Required
When you move Enscribe files and applications from a G-series system to an H-series
system, the dictionary that was created on each subvolume in the TNS/R environment
cannot be updated by the DDL compiler in the TNS/E environment. On the H-series
system, you must convert the dictionaries for the H-series DDL compiler. For details,
see the HP Integrity NonStop NS-Series Database Migration Guide.
setjmp Buffers Have Different Size and
Alignment Requirements
The size and required alignment of setjmp buffers differs between the TNS, TNS/R,
and TNS/E environments as follows:
In certain situations, these differences can cause problems when migrating an
application that uses setjmp buffers from one platform to another.
For example, consider a TNS program that has a setjmp buffer declared in a
SHARED2 structure and is migrated to a TNS/E platform. SHARED2 alignment is used
for structures that can have the same representations across platforms; that is
structures that can have the same alignment and which do not require any alignment
greater than two bytes. SHARED2 is intended to provide identical layout and alignment
for the exact same struct/class definition for the TNS, TNS/R, and TNS/E platforms.
However, when the TNS program is migrated to the TNS/E environment, a compilation
error will occur because the SHARED2 structure attempts to force the setjmp buffer to
a 2-byte alignment, which is not possible because of the different size and alignment
requirements between TNS and TNS/E.
Environment Size Required Alignment
TNS 5 or 112 16-bit integers 2-byte boundary
TNS/R 18 64-bit integers 8-byte boundary
TNS/E 72 64-bit integers 16-byte boundary