- - PR -
スタンドアロンアプリケーションにおけるDB接続Connectionの保持
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-06-21 12:41
Javaを始めて、まだ5日間くらいの状態です。
なお、VB6とC#はそこそこ経験があります。 Webアプリケーションではなく、スタンドアロンアプリケーションの 前提で、以下の点について ご意見お聞かせください。 【動作前提条件】 Javaのバージョン= 1.4 DB =Postgres アプリケーション =スタンドアロン(マルチスレッドなし) アプリケーション動作時間と間隔=1日1回起動する。終了まで概ね2〜3分。 アプリケーション動作1回あたりのDB接続回数(SQL実行回数)=10回程度 【お伺いしたいこと】 スタンドアロンアプリの場合、VBなどでは、Connectionオブジェクトを グローバル変数として持ち、データを取得したりした後も、Closeせず アプリケーション終了時に閉じる実装パターンが多いかと思います。 JavaのWebアプリケーション等の場合、Jakarta Commons の DBCPなどを使用して、当然プーリングすべきでしょう。 しかし、スタンドアロンアプリの場合、 Connectionをstatic変数として保持して、 Closeせず、アプリケーション終了時に最後に閉じるという VBスタンドアプリ的なスタイルのコーディングはおかしいでしょうか。 色々なDB接続サンプルコードを見ると、必ず1ルーチン内で 必ずclose()しているので、 (勿論そうすべきですが・・) スタンドアロン、あるいはクラサバの場合は保持してよいのか 判断に迷いました。 よろしくお願いします。 ★なお上記においては、アプリケーション稼動中に 予期せぬ事態で、Connectonをcloseしないまま、アプリケーションが異常終了 することは、とりあえず無視できるとします(実際には無視できませんが) |
|
投稿日時: 2006-06-21 13:46
専用ツールとして割り切るのであれば、全然問題ないと思います。
端末での手動実行とサーバサイドでの実行と両方で使いたいとか、 要件が変わったときに対応しにくくなりますが。 私なら、 1.業務ロジックに接続を渡して実行するクラス 2.接続を利用して業務ロジックを行うクラス と分けて、1で2を実行した後に接続を解放します。 業務ロジック側では接続を解放しません。 |
|
投稿日時: 2006-06-21 18:09
かつのり様
回答ありがとうございました。 スタンドアロンっぽく(?)作ってみようと思います。 ありがとうございました。 |
1