2007/12/6 木曜日

PostgreSQLとHibernateとトランザクション

このエントリをはてなブックマークに追加PostgreSQLHibernate潟吟激с海里呂討淵屮奪マーク被リンク数
Filed under: java — akky @ 22:17:59

DBアクセスにHiberanteをつかったJavaアプリを作ったときに発生した悩ましい問題。検索だけの画面の実装において、一連の処理が終わった後にはHibernateのセッションを閉じるためにfinallyでSession.close()を実行している。けど、pgAdminでPostgreSQLのロックの状態をみると、検索したテーブルの索引を排他ロックしたままになっている。明示的にトランザクションの開始をしていないけど、セッションを終了させているのだからトランザクションも終了させてロックを解除して欲しい。けど、ロックしたままになっている。poolしていないけどセッションも残っているが若干気になるが、ロックが残っているもが解せない。

試行錯誤の結果、検索だけであっても明示的にトランザクションを開始し、セッションを閉じる前にcommitする。そうすることで、ロックの残骸はなくなったけどすっきりしないな。これまでの開発ではセッションを閉じるタイミングで暗黙的に開始されているトランザクションであればロールバックされ、ロックも開放されるのだけどな。

PostgreSQLとHibernateとの相性が良くないのか、Hiernateの使い方が間違っているのか。

Oracle ORA-00600 keltnfy-ldmInit エラー

このエントリをはてなブックマークに追加Oracle ORA-00600 keltnfy-ldmInit 爾里呂討淵屮奪マーク被リンク数
Filed under: oracle — akky @ 22:01:27

インスタンスが起動しないと思ったら、alertにエラーが出ていた。

Errors in file /usr/local/oracle10g2/admin/orcl/udump/orcl_ora_4375.trc:
ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
USER: terminating instance due to error 600
Instance terminated by USER, pid = 4375

どうやら、自分自身のホスト名が解決できないのが原因。はて?と思いつつも、/etc/hostsを編集しようとすると中身がからっぽ。0バイトになっている。orz
hostsに記述を追加して無事に起動

次のページ »