[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 メーリングリストの案内