I had the same problem.
Currently i using Oracle 8.1.6 , BMP, BLOBs and everything is fine.
I was having these problems when i was using "thin" oracle driver.
try instead of your:
<attribute name="URL">jdbc:oracle:thin:@server:1521:instance</attribute>
try to use oci driver:
<attribute name="URL">jdbc:oracle:oci8:@<TNS_NAME_OF_ORACLE></attribute>
the previous post about classes12.zip has sence to. In my case i added %ORA_PATH%\jdbc\lib\classes12.zip into JBoss CLASSPATH instead of copying into JBoss/lib/ext directory.
D&D
--Original Message Text---
From: Bolt, Dave
Date: Tue, 23 Jan 2001 11:34:50 -0500
JBOSS and Oracle
I've noticed the recent threads on Oracle, XA Datasources, BMP, and CLOBs related problems. Particularly the threads on cursors being left open and threads timing out.
I've heard that Oracle 8i's 8.1.7 release works better. Is that true?
Some of the problems I've been having are:
1) BMP beans that are participating in a transaction are given connections that are isolated from one another. A dependent EJB fails to create because the work of the parent EJB is not visible to it.
2) If I have multiple users hit the site simultaneously and the users are doing basically read-only stuff I get the following Oracle errors.
[ddc/DocumentPartMedia] java.sql.SQLException: ORA-02089: COMMIT is not allowed in a subordinate session
[ddc/DocumentPartMedia] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
[ddc/DocumentPartMedia] at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
[ddc/DocumentPartMedia] at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542)
[ddc/DocumentPartMedia] at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1311)
[ddc/DocumentPartMedia] at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:738)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1353)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1805)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:320)
[ddc/DocumentPartMedia] at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:364)
[ddc/DocumentPartMedia] at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:102)
[ddc/DocumentPartMedia] at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1020)
[ddc/DocumentPartMedia] at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:593)
[ddc/DocumentPartMedia] at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:114)
[ddc/DocumentPartMedia] at org.jboss.minerva.factories.XAConnectionFactory.prepareObject(XAConnectionFactory.java:254)
[ddc/DocumentPartMedia] at org.jboss.minerva.pools.ObjectPool.getObject(ObjectPool.java:539)
[ddc/DocumentPartMedia] at org.jboss.minerva.datasource.XAPoolDataSource.getConnection(XAPoolDataSource.java:169)
[ddc/DocumentPartMedia] at mil.army.atsc.atia.ddc.utils.ConnectionUtils.getConnection(ConnectionUtils.java:36)
[ddc/DocumentPartMedia] at mil.army.atsc.atia.ddc.ejb.DocumentPartMediaEJB.ejbLoad(DocumentPartMediaEJB.java:338)
[ddc/DocumentPartMedia] at java.lang.reflect.Method.invoke(Native Method)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.BMPPersistenceManager.loadEntity(BMPPersistenceManager.java:275)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:192)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:204)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:144)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
[ddc/DocumentPartMedia] at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:323)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:163)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:228)
[ddc/DocumentPartMedia] at org.jboss.ejb.plugins.jrmp.interfaces.EntityProxy.invoke(EntityProxy.java:146)
This code exception happens when my logic is calling one of the business methods on the DocumentPartMediaEJB bean, which is a BMP entity bean.
I'm thinking that the problems I've been having with my BMP beans (which use both BLOBs and CLOBS) are related to the problems others are having.
I'm currently using Oracle 8i 8.1.6 with the following configuration items. If I migrate to 8.1.7 will they go away???? In essence, are these problems with Oracle 8.1.6 or with my code/configuration.
Here's the config stuff.
jboss.jcml (Note: I have changed the user, password, and URL properties to protect the innocent)
<mbean name="DefaultDomain:service=XADataSource,name=StaffingDB">
<attribute name="Properties"></attribute>
<attribute name="URL">jdbc:oracle:thin:@server:1521:instance</attribute>
<attribute name="GCMinIdleTime">1200000</attribute>
<attribute name="JDBCUser">dbuser</attribute>
<attribute name="MaxSize">50</attribute>
<attribute name="Password">dbpassword</attribute>
<attribute name="GCEnabled">false</attribute>
<attribute name="InvalidateOnError">false</attribute>
<attribute name="TimestampUsed">false</attribute>
<attribute name="Blocking">true</attribute>
<attribute name="GCInterval">120000</attribute>
<attribute name="IdleTimeout">1800000</attribute>
<attribute name="IdleTimeoutEnabled">false</attribute>
<attribute name="LoggingEnabled">false</attribute>
<attribute name="MaxIdleTimeoutPercent">1.0</attribute>