Prior to OpenEdge 11.0, a static temp-table is instantiated the moment the procedure or class that defines it is instantiated. For code that defines larger numbers of temp-tables this can cause a significant delay while instantiating the procedure/class.
Starting with OpenEdge 11.0, by default the instantiation of those temp-tables is delayed to the point in the code where records in the temp-table would be queried or created. The main goal of this feature is to spread the performance impact, which removes the bottleneck during procedure instantiation and improving overall response times. A secondary goal is to avoid spending resources if the procedure defines a temp-table that it doesn't actually use. (A common example is that a set of temp-tables is defined in an include file - where procedures do not always use all of those temp-tables.)
The -nottdelay startup parameter is used to revert back to the pre-OpenEdge 11 behavior. It should only be used as a workaround if there is an issue with the new way the temp-tables are managed. Note that such issues should be considered defects, and should be reported to Progress Software for further investigation. |