[Seasar-user:7730] Re: セッションレプリケーションで例外発生

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2007年 5月 21日 (月) 17:07:28 JST


中村(taedium)です。

> JDBCドライバを入れ替えたら例外の内容が変わりました。

こちらでも
Oracle9i Enterprise Edition Release 9.2.0.1.0 と
Oracle9i 9.2.0.8 JDBC Driver の組み合わせで
同様の例外が発生することが確認できました。

データベースの9.2.0.1.0のBLOB型には2つ問題があるようです。
・バッチ更新の場合、サイズが1974バイト以上のデータをINSERTすると
  例外が発生する
・バッチ更新を利用しない場合、サイズが3974バイト以上のデータを
  INSERTすると例外が発生する

対策として次の2点を行うと、上記のサイズを超えたデータを
格納できることを確認しました。
1)BLOB型のかわりにLONG RAW型を使用する
2)バッチ更新を利用しない

1)についてはS2SESSIONテーブルのDDLを変更することで対応お願いします。
2)についてはバッチ更新を利用しないようにdiconファイルにて
設定できるように対応しました。
(デフォルトではバッチ更新を利用するようになっています)

dbsession.diconにて次のようにbatchUpdateDisabledプロパティに
trueを指定してください。

<component class="org.seasar.extension.httpsession.impl.DbSessionStateManagerImpl">
    <property name="dataSource">dataSource</property>
    <property name="batchUpdateDisabled">true</property>
    <aspect>j2ee.requiresNewTx</aspect>
</component>


SNAPSHOTはこちらのものをお使いください。
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-framework/2.4.13-rc2-SNAPSHOT/s2-framework-2.4.13-rc2-20070521.074731-9.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-extension/2.4.13-rc2-SNAPSHOT/s2-extension-2.4.13-rc2-20070521.074731-9.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-tiger/2.4.13-rc2-SNAPSHOT/s2-tiger-2.4.13-rc2-20070521.080130-9.jar

よろしくお願いします。
-- 
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>




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