読者です 読者をやめる 読者になる 読者になる

続ConnectionPoolImpl

風邪で1日ダウンしてましたorz

詳細情報が得られない状況ですが、気になったのでまずはTestを試そうと思い
以下の件について、Testを試してみました。

http://d.hatena.ne.jp/yone098/20061124/1164354484

まず、org.seasar.extension.dbcp.impl.ConnectionPoolImplTest において
connection.diconのxadsをコメントアウトされているOracle用に変更。

<components>
	<component name="tm" class="org.seasar.extension.jta.TransactionManagerImpl"/>
	<component name="xads" class="oracle.jdbc.xa.client.OracleXADataSource">
		<property name="URL">"jdbc:oracle:thin:@xxxxxx:1521:xxx"</property>
		<property name="user">"xxx"</property>
		<property name="password">"xxx"</property>
	</component>
	<!--
	<component name="xads"
		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
		<property name="driverClassName">
			"org.hsqldb.jdbcDriver"
		</property>
		<property name="URL">
			"jdbc:hsqldb:file:"
				+ @org.seasar.framework.util.ResourceUtil@getBuildDir(@org.seasar.extension.dbcp.impl.ConnectionPoolImplTest@class).getCanonicalPath()
				+ "/data/demo"
		</property>
		<property name="user">"sa"</property>
		<property name="password">""</property>
	</component>
	-->

これでTestを実行すると2つfailします。
追記、再度試したのですがfailは2つ目の方だけのようですm(_ _)m
設定等をconnection.dicon以外に変更してTestしたのかもしれないです...

java.sql.SQLException: READ_COMMITTEDおよびSERIALIZABLEのみが有効なトランザクション・レベルです。
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
	at oracle.jdbc.driver.OracleConnection.setTransactionIsolation(OracleConnection.java:1727)
	at org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.setTransactionIsolation(ConnectionWrapperImpl.java:235)
	at org.seasar.extension.dbcp.impl.ConnectionPoolImpl.checkOut(ConnectionPoolImpl.java:175)
	at org.seasar.extension.dbcp.impl.ConnectionPoolImplTest.testConnectionStatus(ConnectionPoolImplTest.java:251)
	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:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.java:235)
	at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:89)
	at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:150)
	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:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

hsqldbだとTestが通るのでこの辺の違いがエラーが発生した原因と関係しているのかもしれません。
OracleでTestが通らないようなのでOracleJDBC側かOracle自体の設定の問題なのかもしれないですね。
時間が取れず深く追えないのですが、詳細情報としては今日はここまでですm(_ _)m < id:koichikさん