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

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2012年 4月 13日 (金) 16:32:18 JST


中村(taedium)です。

S2でトランザクション管理すればautoCommitはfalseになりますし、
ResultSet.TYPE_FORWARD_ONLYはデフォルトで使われる値ですし、
気にするのは、PostgreSQLのバージョンだけになるんじゃないかと思います。

2012年4月13日15:31 Seita Sekigushi <[E-MAIL ADDRESS DELETED]>:
>
> 中村さん
>
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user



-- 
Toshihiro Nakamura


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