[Seasar-user:20671] Re: 【s2chronos】スレッドが止まってしまう現象

Junichi Kato [E-MAIL ADDRESS DELETED]
2011年 3月 22日 (火) 14:21:01 JST


松村様
加藤です。

以下のログだけではちょっと想像が難しいですね。。
何か再現する環境があれば調査しやすいのですが、お手数ですがそういうサンプルソースなどをいただくことは可能でしょうか?

2011年3月22日12:04  <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。ロックオンの松村と申します。
>
> 現在s2chronosを使用し、バッチアプリケーションを運用しているのですが、以前
> より何度かスレッドが止まって全く動かなくなってしまうという現象が起きてい
> ます。
> 実際に止まった際に取ったスレッドダンプの一部が以下になります。
> ($ jstack ${プロセスID} > jstack.log)
>
> "chronos-pool-3-thread-16" prio=10 tid=0x000000001a32b000 nid=0x456a in
> Object.wait() [0x0000000043f5b000..0x0000000043f5cc90]
>   java.lang.Thread.State: WAITING (on object monitor)
>    at java.lang.Object.wait(Native Method)
>    - waiting on <0x00002aaacff64a90> (a org.seasar.extension.dbcp.impl.
> ConnectionPoolImpl)
>    at java.lang.Object.wait(Object.java:502)
>    at org.seasar.extension.dbcp.impl.ConnectionPoolImpl.
> checkOut(ConnectionPoolImpl.java:309)
>    - locked <0x00002aaacff64a90> (a org.seasar.extension.dbcp.impl.
> ConnectionPoolImpl)
>    at org.seasar.extension.dbcp.impl.DataSourceImpl.
> getConnection(DataSourceImpl.java:59)
>    at org.seasar.extension.jdbc.util.DataSourceUtil.
> getConnection(DataSourceUtil.java:51)
>    at org.seasar.extension.jdbc.manager.JdbcManagerImpl.
> getJdbcContext(JdbcManagerImpl.java:376)
>    at org.seasar.extension.jdbc.query.AbstractSelect.
> getResultListInternal(AbstractSelect.java:223)
>    at org.seasar.extension.jdbc.query.AbstractSelect.
> getResultList(AbstractSelect.java:172)
>
>
> 実際の運用では、5本の異なるバッチのスレッドが同じ時間に並列で動いています。
> スレッドが止まってしまった時は、5本全てのスレッドが同じDBにコネクションを
> 取りに行ったところで止まっていました。
> (止まっているというのは、Tomcatのログにてスレッドが数時間動いていないこ
> とにより確認しています。)
>
> また、5本全てがまったく同じ時間帯に止まったというわけではなく、5本のうち
> の2本がほぼ同じタイミング(仮にずれていたとしてもミリ秒)でコネクションを
> 取りに行った際にスレッドが止まってしまい、後の3本は随時コネクションを取り
> に行った順に止まってしまったようです。
>
> 何らかの原因で永遠にwait()をしている状態(?)のようなのですが、何か原因等
> 心辺りがある方いらっしゃいますでしょうか?
>
> ご教授頂けると幸いです。
> よろしくお願いいたします。
>
>
> 以下環境です。
> --------------------------------
> ■S2ファミリー
> s2-framework-2.4.38
> s2-extension-2.4.38
> s2-tiger-2.4.38
> s2chronos-core-1.0.0
> s2chronos-extension-1.0.0
>
> ■DB
> PostgreSQL 8.3
>
> 以下設定です。
> --------------------------------
> ■chronosCustomize.dicon
> <components>
>    <component name="schedulerConfiguration" class="org.seasar.chronos.
> core.SchedulerConfiguration">
>        <property name="hotdeployDisable">true</property>
>        <property name="daemon">true</property>
>        <property name="autoFinish">true</property>
>        <property name="autoFinishTimeLimit">5000L</property>
>        <property name="taskScanIntervalTime">2000L</property>
>        <property name="threadPoolType">@[E-MAIL ADDRESS DELETED]
> </property>
>    </component>
> </components>
>
> ■org.seasar.extension.dbcp.impl.ConnectionPoolImpl のdicon定義
> <component name="connectionPool"
>    class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
>    <property name="timeout">600</property>
>    <property name="maxPoolSize">10</property>
>    <property name="allowLocalTx">false</property>
>    <destroyMethod name="close"/>
> </component>
>
> ━━━━━━━━━━━━━━━━ドクソウするための助走━>>>>
>                                    http://www.lockon.co.jp/
> 株式会社ロックオン  AutoBidユニット
> 松村 亮平
> E-Mail:  [E-MAIL ADDRESS DELETED]
> ------------------------------------------------------------
>  【大阪】
>  〒530-0001  大阪府大阪市北区梅田2-4-9 ブリーゼタワー13F
>  TEL:06-4795-7500  FAX:06-4795-7501
>
>                   On The Way Of "Impact On The World"┌―→
> ―――――――――――――――――――――――――――┘
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



-- 
/**
 * name  : Junichi Kato
 * email : [E-MAIL ADDRESS DELETED]
 *
 * blog  : http://d.hatena.ne.jp/j5ik2o/
 *
 * commiting projects :
 * http://jiemamy.org/
 * http://s2chronos.sandbox.seasar.org/
 * http://s2config.sandbox.seasar.org/
 */


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