How Should Static Variables Be Used In Java Batch Programs?
(Doc ID 1081090.1)
Last updated on MARCH 25, 2019
Applies to:
Oracle Utilities Customer Care and Billing - Version 2.0.1 to 2.3.0.0.0 [Release 2.0 to 2.3]Information in this document applies to any platform.
Goal
Why are values sometimes saved correct or incorrectly when stored in static variables during a batch run specifically batch executed using thread pool?
EXAMPLE 1: Static Variable used as counter
X is a static variable
Start Batch Run 1: X = 0, 0 is the default value for integer
End Batch Run 1: X = 5
Start Batch Run 2: X = 5
JVM threadpools are started each time for the batch run but the threadpool seems to remember the previous value.
Why does X retain its value from the previous batch run?
Start Batch Run 1: X = 0, 0 is the default value for integer
End Batch Run 1: X = 5
Start Batch Run 2: X = 5
JVM threadpools are started each time for the batch run but the threadpool seems to remember the previous value.
Why does X retain its value from the previous batch run?
EXAMPLE 2: Static Variable used to store batch parameter value
X is a static variable
Batch Parameter = A
Batch Run 1: X = A
Batch Parameter = B
Batch Run 2: X can either be A, B or blank.
The batch parameter Report Name value was change so when the batch was executed, the batch raised a null pointer exception since the static variable didn't have any value. But when the batch was executed again, it now has a value.
Why is that there are times when the variable stores different value?
Batch Parameter = A
Batch Run 1: X = A
Batch Parameter = B
Batch Run 2: X can either be A, B or blank.
The batch parameter Report Name value was change so when the batch was executed, the batch raised a null pointer exception since the static variable didn't have any value. But when the batch was executed again, it now has a value.
Why is that there are times when the variable stores different value?
Solution
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Goal |
Solution |
References |