[
https://issues.apache.org/jira/browse/DERBY-3457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12572987#action_12572987
]
Kristian Waagan commented on DERBY-3457:
----------------------------------------
Thanks for the review Dyre!
I basically agree with you on the close failure issue, but I can't say I'm 100%
sure. Unless someone gives me pushback, I think I'll stick with the current
approach (bailing out on first exception thrown).
My last comment was rooted in the code comment that you also noticed.
I need to verify what is actually happening. I see a few scenarios:
1) LogicalConnection actually closes the statements somehow, rendering the
statement pooling almost useless.
2) LogicalConnection does not close statements at all, and I'll log a bug in
JIRA.
This would affect environments using connection pooling (CP, XA), but not
statement pooling.
Solution to (1) *could* be to introduce a second close method, one that does
not close the statements (that would instead happen when you close the
PooledConnection). The comment should be removed.
For (2), a mechanism must be put into place and the comment can be removed.
Maybe we can use / come up with a shared mechanism for LC and CLC, I don't know
yet. Maybe even something in am.Connection can be used, I know it keeps track
of statements it creates.
I'll get back with more information later, hopefully tomorrow.
> Closing a logical connection must close all associated logical statements
> -------------------------------------------------------------------------
>
> Key: DERBY-3457
> URL: https://issues.apache.org/jira/browse/DERBY-3457
> Project: Derby
> Issue Type: Task
> Components: JDBC, Network Client
> Affects Versions: 10.4.0.0
> Environment: Client-server with statement pooling enabled in the
> client driver.
> Reporter: Kristian Waagan
> Assignee: Kristian Waagan
> Fix For: 10.4.0.0
>
> Attachments: derby-3457-1a-stmt_closing.diff,
> derby-3457-1a-stmt_closing.stat, derby-3457-1b-stmt_closing.diff,
> derby-3457-1c-stmt_closing.diff, derby-3457-2a-stmt_registration.diff
>
>
> When a logical connection is closed, all open logical statements created by
> this connection must be closed.
> The closing is important per the general principle of cleaning up resources,
> but especially so in the case of statement pooling, as not closing the
> logical statement can cause side effects on another logical connection
> (sharing the same physical connection).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.