[Seasar-user:21323] Re: FetchHandlerについて
Seita Sekigushi
[E-MAIL ADDRESS DELETED]
2012年 4月 13日 (金) 17:09:46 JST
中村さん
サンプルありがとうございます。
試してみます。
--- On Fri, 2012/4/13, Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:
> 中村(taedium)です。
>
> サンプルのコードを動かしているとのことだったので
> 一応確認ですが、サンプルのコードはトランザクション管理下に
> ないのでautoCommitはtrueのままです。
>
> container.init() の後ろに次のようなコードを入れて実行すれば
> autoCommitがfalseになって、[Seasar-user:21319] で言及されて
> いた条件を満たせるようになると思います。
>
> UserTransaction tx = (UserTrasaction)
> container.getComponent(UserTrasaction.class);
> tx.begin();
>
>
> 2012年4月13日16:47 Seita Sekigushi <[E-MAIL ADDRESS DELETED]>:
> >
> > 中村さん
> >
> > 調べてみたら確かにResultSetのTypeはデフォルトでOKでした。
> > サーバーのバージョンは9.xxだったので大丈夫なはずですが
> > やはりOutOfMemoryが出ますね・・・・。
> >
> > DBをOracleに変更して同じ件数で処理をしたら
> > すんなり通ったんで、やっぱりDBがらみかなぁと。
> >
> > --- On Fri, 2012/4/13, Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:
> >
> >> 中村(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 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 メーリングリストの案内