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