Download View this document as PDF
Transcript
Functional changes in Adaptive Server 15.0.3 and later Changes in memory management Adaptive Server 15.0.2 and earlier used a memory management system consisting of three distinct heaps: a global fixed heap, a shared class heap, and a process object heap. Adaptive Server 15.0.3 and later uses a single PCI memory pool. Any existing configuration values from 15.0.2 and earlier are ignored by Adaptive Server 15.0.3. You must specify the total memory for the PCI subsystem using the pci memory size configuration parameter. See Chapter 2, “Managing the Java Environment.” If you are transitioning from Adaptive Server version 15.0.2 and earlier, you may need to change the default size of the PCI memory pool. The life cycle of classes and garbage collection algorithms used by commercial JVMs differs significantly from that of the Sybase internal JVM. Once the size of the PCI memory pool is appropriately configured, you should see no difference in behavior. Changes in ClassLoader behavior In Adaptive Server version 15.0.3 and later, ClassLoader behavior conforms to JVM specifications for the verification of classes during loading. In Adaptive Server version 15.0.2 and earlier, references to additional classes within the class being loaded were checked but not fully resolved. For example, if class A referred to class B within a method, the ClassLoader did not check that class B was actually available. Thus, a class could successfully load without satisfying all of its dependencies. An exception would be raised only when the method that requiring the unsatisfied dependency was encountered. The ClassLoader for all commercial JVM implementations performs the full class verification when the initial class is loaded. As a result, a class with unsatisfied dependencies does not load, an Unhandled Java Exception is raised, and the Java stack trace lists the error as “java.lang.NoClassDefFoundError.” This means that, in rare instances, a class that loads successfully in Adaptive Server 15.0.2 and earlier may not load in Adaptive Server 15.0.3 and later unless a full set of user and Java-supplied classes is provided so that all dependencies can be satisfied. 6 Adaptive Server Enterprise