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>
<attribute name="MinSize">5</attribute>
</mbean>
jboss.conf
<MLET CODE="org.jboss.jdbc.XADataSourceLoader" ARCHIVE="jboss.jar,classes12.zip" CODEBASE="../lib/ext/">
<ARG TYPE="java.lang.String" VALUE="StaffingDB">
<ARG TYPE="java.lang.String" VALUE="oracle.jdbc.xa.client.OracleXADataSource">
</MLET>
jboss.properties
jboss.xa.xidclass=oracle.jdbc.xa.OracleXid
jdbc.drivers=org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,oracle.jdbc.driver.OracleDriver
I'm using all of the above, on NT with JDK 1.3
Dave Bolt
There is always bandwidth, just none for you.
