Conflicting plan and package bind options
A plan bound with one set of options can include packages in its package list that were bound with different sets of options.
In general, statements in a DBRM bound as a package use the options that the package was bound with.
For example, the plan value for CURRENTDATA has no effect on the packages executing under that plan. If you do not specify a CURRENTDATA option explicitly when you bind a package, the default is CURRENTDATA(NO).
The rules are slightly different for the bind options RELEASE and ISOLATION. The values of those two options are set when the lock on the resource is acquired and usually stay in effect until the lock is released. But a conflict can occur if a statement that is bound with one pair of values requests a lock on a resource that is already locked by a statement that is bound with a different pair of values. Db2 resolves the conflict by resetting each option with the available value that causes the lock to be held for the greatest duration.
The table below shows how conflicts between isolation levels are resolved. The first column is the existing isolation level, and the remaining columns show what happens when another isolation level is requested by a new application process.
UR | CS | RS | RR | |
---|---|---|---|---|
UR | n/a | CS | RS | RR |
CS | CS | n/a | RS | RR |
RS | RS | RS | n/a | RR |
RR | RR | RR | RR | n/a |