Changes for static variables for Adaptive Server 15.0.3 and later

In Adaptive Server 15.0.2 and earlier, each task was assigned its own internal JVM. Each JVM was associated with a unique set of ClassLoaders. As a result, class variables were available only to a single Adaptive Server task.

With Adaptive Server 15.0.3 and later, and the introduction of the PCA/JVM, Adaptive Server uses a separate JVM thread for each Adaptive Server task within the same JVM. All user classes are loaded by ClassLoaders associated only with the specific Adaptive Server task executing the particular Java method. Because ClassLoaders associated with user classes are not shared across Adaptive Server tasks, user classes are not considered the same. Therefore, class variables from user classes are not visible across Adaptive Server tasks.

However, class variables from classes loaded by the system ClassLoader are visible across all Adaptive Server tasks because all user ClassLoaders share the system ClassLoader as a parent. This is true for all standard JVMs. Class variables in these classes do not endanger functionality or security when they are used across multiple tasks.