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

松崎 学 [E-MAIL ADDRESS DELETED]
2007年 5月 18日 (金) 17:58:24 JST


ひがさん、中村さん

松崎です。返信ありがとうございます。

> 9iで、byte[]をPreparedStatement#setObject();で
> 更新できるでしょうか。
できました。

> 4つ質問があります。
> 1.使用されているJDBCドライバーのバージョンはいくつでしょうか
> 2.JDBCドライバーのタイプはType2でしょうかType4でしょうか
> 3.シリアライズしようとしているオブジェクトのサイズはどれくらいでしょうか
> 4.エラーはかならず起きますか(成功することもありますか)
1. ojdbc14.jar、nls_charset12.jar共に9.0.2.0.0です。
2. Type4を使ってます。
3. オブジェクトのサイズは数百バイトです。
4. 必ず起きます。

また、
org.seasar.extension.httpsession.impl.DbSessionStateManagerImplTest
のテストを実行しましたが、testUpdateState_insertTxと
testUpdateState_updateTxで画面で操作した時と同じ例外が発生しました。

org.seasar.framework.exception.IORuntimeException: [ESSR0040]IO例外が発生しました。理由はjava.io.StreamCorruptedException: invalid stream header
	at org.seasar.framework.util.SerializeUtil.fromBinaryToObject(SerializeUtil.java:86)
	at org.seasar.extension.httpsession.SessionState.getAttribute(SessionState.java:71)
	at org.seasar.extension.httpsession.impl.DbSessionStateManagerImplTest.testUpdateState_updateTx(DbSessionStateManagerImplTest.java:74)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at junit.framework.TestCase.runTest(TestCase.java:164)
	at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.java:324)
	at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:92)
	at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:188)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:120)
	at junit.framework.TestSuite.runTest(TestSuite.java:230)
	at junit.framework.TestSuite.run(TestSuite.java:225)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.io.StreamCorruptedException: invalid stream header
	at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764)
	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277)
	at org.seasar.framework.util.SerializeUtil.fromBinaryToObject(SerializeUtil.java:83)
	... 22 more

以上、よろしくお願い致します。

On Fri, 18 May 2007 16:40:53 +0900
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:

> 中村(taedium)です。
> 
> 松崎さん
> 
> > > 松崎です。返信ありがとうございます。
> > > 
> > > 早速試してみたところ、例外の内容が変わりました。
> 
> 9iで試してみたのですがまだ再現できていません。
> 
> 4つ質問があります。
> 1.使用されているJDBCドライバーのバージョンはいくつでしょうか
> 2.JDBCドライバーのタイプはType2でしょうかType4でしょうか
> 3.シリアライズしようとしているオブジェクトのサイズはどれくらいでしょうか
> 4.エラーはかならず起きますか(成功することもありますか)
> 
> あと、S2Containerに含まれるテストケースを1つ実行して
> 成功するかどうか結果を教えていただけないでしょうか
> 
> jdbc.diconの設定をお使いのDBにつなぐように設定し、
> 以下のテストクラスのテストを実行してみてください。
> org.seasar.extension.httpsession.impl.DbSessionStateManagerImplTest
> 
> よろしくお願いします。
> -- 
> Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

========================================
 株式会社キャム
 福岡市中央区大名2-4-30 西鉄赤坂ビル10F
 TEL: 092-716-2131  FAX: 092-726-4402
 URL: http://www.cam-net.co.jp

 松崎 学 <[E-MAIL ADDRESS DELETED]>
========================================





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