2011-07-01 16 views
0

私は、既存のシステムの障害の根本的な原因を見つけようとしています。私はそれについてはよく分かりませんが、問題はHibernate経由でPostregsqlに大きな行を挿入することにあります。 約50〜100kサイズのTEXTフィールドのレコードを挿入できません。大きな挿入クエリが失敗するHibernate Postgresql

postgresql自体には問題ありません。しかし、私はそれに影響を与えることができる休止状態のいくつかの設定\パラメータがあるかもしれないと思います。検索の方向性に関する提案はありますか?

+1

エラーが発生した場合は、例外が必要です。私はそのメッセージを見始めるだろう(もし私がそれを見ることができれば)。 –

+0

ログはきれいに見えるので、ハイバネート側の問題のように見えます。 – m5ba

+1

「失敗する」とはどういう意味ですか?エラーがありますか?テキストは切り捨てられていますか?この列なしで行が挿入されていますか?インサートは黙って無視されていますか? Hibernateによって生成された挿入SQLクエリが表示されますか?コードはどこに挿入していますか?それはあなたが私たちにそれを示すことができないほど秘密ですか?細部を知らせないことで、私たちがあなたを助けることは非常に難しくなります。 –

答えて

1
  • まず、それはあなたのローカルマシンまたは サーバログにだ場合、私はより多くの手がかりを得るために、 、例外を見てみてください。 以降、行を挿入するときに と表示されている可能性があります。

  • テキスト フィールドには、 が動作するかどうかを確認するために、数バイトしかない行を挿入してみてください。おそらく接続が と遅く、50kを超えて挿入すると がタイムアウトし、その後に ロールバックが発生します。

  • また、 の挿入は、はるかに大きなトランザクション に属しているか、小さい方のトランザクションで実行されているかどうかを確認してください。

  • プレーンjdbc(ちょっとだけ)でその挿入を試して、それがうまく動作し、接続の問題を排除するかどうかを確認してください。

  • 接続に問題がない場合は、Hibernateのパラメータを調整することができます。 2番目のキャッシュを無効にする可能性があります。スタック例外またはデバッグセッションは、どのパラメータを変更するかを知るのに役立ちます。

関連する問題