2016-06-23 8 views
0

私はJDBC4仕様とjava.sql.Clobリソースの解放を強制する方法は?

などの異なる値をラップパラメータと呼ばれるクラスを持って、我々はClobオブジェクトに割り当てられたリソースを解放する呼び出すことができますfree()方法があります。私は、これは素晴らしい出て動作しますが、私も何かがParameterがドキュメントである以外AutoClosable

のインスタンスであることを強制するか、少なくともヒント他にしたいclose()

ParameterクラスAutoClosableと呼んfree()方法を作ることを考えていますこれを達成する方法はありますか?基本的に私はこのような状況で何かできる余分なものを探しています。

+2

誰がこのヒントを 'Parameter'を使ってプログラマに伝えるべきでしょうか? IDEですか?コンパイラ? –

+0

[AutoCloseable](https://docs.oracle.com/javase/8/docs/api/java/lang/Au​​toCloseable.html)はインタフェースです。あなたがそれを実装する以外の "ヒント"は何ですか? – Fildor

+0

@Lutz Horn私はIDEの観点から考えていました。私は私の質問がばかげていることを知っているが、私はそれを置くための良い方法がありません。 :) – VishalDevgire

答えて

1

これを行う通常の方法は、設定可能なタイムアウトでObjectPoolを実装することです。 ObjectPoolから取得したオブジェクトのカウントを開始し、タイムアウトの終了時にプールに戻ってきているかどうかを確認します。 Objectがプールに返されない場合、例外をスローするか、またはObjectが保持しているリソースを強制的に解放します。このようにして、プログラマがclose()メソッドにコールしたり、リークを検出したりするようになります。

ほとんどのデータベース接続プールライブラリにこの機能があります。チェックJDBCConnectionPool - InactiveConnectionTimeoutSecondsApache Commons Pool - AbandonedConfig

関連する問題