[Seasar-user:21309] Re: [s2csv]同じCSVEntityを用いるCSVファイルをマルチスレッドで読み込むとバリデーションエラーとなる

大塚 [E-MAIL ADDRESS DELETED]
2012年 3月 30日 (金) 21:19:19 JST


newta様

早速試してみたところ、頻度は下がったようですが、まだ発生するようです。(4/50)

ただ、これがいままでと同じ現象、同じ原因によるものかはまだ調べ切れていませんので、またなにかわかったことがあれば報告させていただきます。

取り急ぎご報告まで。

大塚
2012/03/30 20:04 "大塚" <[E-MAIL ADDRESS DELETED]>:

> newta様
>
> ご連絡ありがとうございます。
> ご教示いただいた方法を試してみます。
> 改めて結果を報告いたします。
>
> 大塚。
> 2012/03/30 19:58 "newta" <[E-MAIL ADDRESS DELETED]>:
>
>> お世話になります。
>> newtaです。
>>
>> CSVDescPoolImplのメタデータのキャッシュで
>> cacheにHashMapを使ってるのが問題に見えますね。。
>>
>> 同期したMapを使おうと思います。
>>
>> 直近の対応としてはCSVDescPoolを継承したクラスを作ってもらって、
>> cacheにMapUtil.createHashMapで同期されたHashMapを生成するか
>> ConcurrentHashMapなどを使ってもらうかして、
>> diconで作成したクラスを指定して、利用してもらえればと思います。
>>
>>
>>
>> 2012年3月30日16:45 大塚 <[E-MAIL ADDRESS DELETED]>:
>> > seasar-userの皆様。
>> > お世話になります。大塚です。
>> >
>> > s2csvを利用させていただき、利便性の高さに感謝しております。
>> >
>> > 同ライブラリを用いて複数のCSVファイルをマルチスレッドに読み込んだところ、
>> > 以下の様に一定の頻度でバリデーションエラーとなるケースが発生したため報告いたします。
>> >
>> > 環境
>> > OS:Windows7 64bit
>> > JDK:1.6.0_25
>> > JAR:s2-framework-2.4.45.jar、s2csv-0.0.2-sp1.jar
>> >
>> > 前提
>> >  書式が同一のCSVファイル(10行程度)*15ファイル。
>> >  同一のCSVEntityを使用。
>> >  スレッド数は2ないし3でほぼ同時に起動。
>> >
>> > 現象
>> >  本来はエラーとならない行(カラム)で、一定の頻度(200回中18回)でバリデーションエラーとなる。
>> >
>> > その他
>> >  s2csv.diconにて、org.seasar.s2csv.csv.desc.impl.CSVDescPoolImplを
>> >  singletonからprototypeとしたところ発生しなくなりました。(0/200)
>> >  また、シングルスレッドで実行した場合も発生しない様です。
>> >
>> > 再現させるためのミニマムコードがすぐには示せないのが申し訳ないですが、取り急ぎご報告まで。
>> > _______________________________________________
>> > 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
>>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20120330/41e10a13/attachment.html>


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