[Seasar-user:21319] Re: FetchHandlerについて

Seita Sekigushi [E-MAIL ADDRESS DELETED]
2012年 4月 13日 (金) 15:31:32 JST


中村さん

OutOfMemoryですが、PostgreSQLのResultSetに問題があるようです。
PostgresSQLのResultSetは、nextを呼ばなくても
毎回全件フェッチするようです。
そのため、OutOfMemoryが発生している模様です。

AutoCommitを無効、ResultSet.TYPE_FORWARD_ONLYというタイプ、
サーバーのバージョンが7.4以降でないとダメみたいです。

Seasar2はデフォルトでAutoCommitがFalseだったと思いますが
ResultSetのタイプの変更方法を模索中です。

奥が深くなってきました・・・。

--- On Fri, 2012/4/13, Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:

> 中村(taedium)です。
> 
> PostgreSQLでしたか。
> では、リンク先の話は関係ないですね。
> 
> EmployeeとDepartmentのリレーションシップをやめてみたら
> どうなるでしょうか?
> 可能性としては、Departmentが大量に作られているからという
> ことが考えられます。
> 
> それでも、現象が発生するなら、
> プロファイラなどを使って実際にヒープを占めている
> オブジェクトを特定してみてはどうでしょうか。
> アプリか、S2Daoか、PostgreSQLのJDBCドライバーか、
> どこに問題があるか手がかりが得られると思います。
> 
> 
> 2012年4月13日11:27 Seita Sekigushi <[E-MAIL ADDRESS DELETED]>:
> >
> > 中村さん
> >
> > 使っているDBはPostgreSQLです。
> > 使用しているDriverはorg.postgresql.Driverです。
> >
> > --- On Fri, 2012/4/13, Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:
> >
> >> 中村(taedium)です。
> >>
> >> 使っているDBはなんでしょうか?
> >> MySQLの Connector/Jが関係しているかもしれません。
> >>
> >> http://d.hatena.ne.jp/hajimeni/20120406/1333677789
> >>
> >>
> >> 2012年4月13日11:09 Seita Sekigushi <[E-MAIL ADDRESS DELETED]>:
> >> >
> >> > 中村さん
> >> >
> >> > 仰る通り、別のHandlerが使われていたみたいです。
> >> > diconファイルの設定を見直して、正常にFetchHandlerが動くようになりました。
> >> >
> >> > ただ、jarに含まれてるサンプルを使用して
> >> > 60万件ほどのデータを対象にCSVに出力してみましたが
> >> > OutOfMemoryが発生しました。
> >> > 添付されているサンプルソースを使用しているので、
> >> > これで動かないということは、設定周りじゃない気がするのですが・・・。
> >> >
> >> > --- On Thu, 2012/4/12, Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:
> >> >
> >> >> 中村(taedium)です。
> >> >>
> >> >> > 唯一怪しいと思うのが、以下のようなログが出力されたことです。
> >> >> >
> >> >> > 「取得行数が2件以上存在しますが先頭行のみ返されます」
> >> >>
> >> >> FetchHandlerではない別のHandlerが使われてしまっているようです。
> >> >> Daoの定義とFetchHandlerの定義はどのようになっていますか?
> >> >>
> >> >>
> >> >> 2012年4月12日10:30 Seita Sekigushi <[E-MAIL ADDRESS DELETED]>:
> >> >> > お世話なっております。
> >> >> >
> >> >> > Seasar2.3系、S2Dao、tigerともに、1.0.50で現在開発を行っておりますが
> >> >> > FetchHandlerがうまく動いていない状況です。
> >> >> >
> >> >> > デバッグしてみたものの、ブレークポイントを張っても
> >> >> > そのままスルーされているので、何が原因か掴めていません。
> >> >> >
> >> >> > 唯一怪しいと思うのが、以下のようなログが出力されたことです。
> >> >> >
> >> >> > 「取得行数が2件以上存在しますが先頭行のみ返されます」
> >> >> >
> >> >> > 同じような現象になったことある方、いらっしゃいますでしょうか?
> >> >> > _______________________________________________
> >> >> > Seasar-user mailing list
> >> >> > [E-MAIL ADDRESS DELETED]
> >> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Toshihiro Nakamura
> >> >> _______________________________________________
> >> >> Seasar-user mailing list
> >> >> [E-MAIL ADDRESS DELETED]
> >> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>
> >> > _______________________________________________
> >> > Seasar-user mailing list
> >> > [E-MAIL ADDRESS DELETED]
> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >>
> >>
> >>
> >> --
> >> Toshihiro Nakamura
> >> _______________________________________________
> >> Seasar-user mailing list
> >> [E-MAIL ADDRESS DELETED]
> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >>
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> 
> -- 
> Toshihiro Nakamura
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


Seasar-user メーリングリストの案内