I am having a hard time reconciling our user documentation with the actual behavior of Derby procedures. The Developers Guide says the following in the section titled "Invoking a procedure using the CALL command": "Procedures that use nested connections, on the other hand, are not permitted to commit or roll back and can therefore be rolled back after the calling statement." This says to me that a user-coded procedure should not be allowed to issue a commit or rollback on the Connection bound to jdbc:default:connection.

However, this limitation does not appear to be enforced. I find that I am able to commit and rollback jdbc:default:connection inside a user-coded procedure. I can do this when I use Derby 10.1.2.1 and I can do this on the trunk so I assume that this is true for all intervening releases too.

Am I misunderstanding our user documentation? Does that sentence mean something else? Where would I look for a definitive summary of how transactions can be started/terminated inside user-coded procedures?

Thanks,
-Rick

Reply via email to