We would also be interested in a solution to this problem as we have
encountered the same thing.  We are using 1.5.2 and Oracle 8.1.6 for our
situation.
We have also run into an issue where if you start a transaction and
inside hit a lot of different data/ejbs the Orion server maxes out it's
CURSOR allocation to oracle.  It creates a new connection and continues
on, but the error is thrown to the logs and can cause some code to skip
steps (due to catching the exception). We were assuming that since the
transaction was still open Orion was not closing any cursors to wait for
a commit, but we don't really know what is going on in the background.

Any ideas?

Greg


-----Original Message-----
From: Christian Bagnoli [mailto:[EMAIL PROTECTED]]
Sent: Friday, July 13, 2001 6:00 AM
To: Orion-Interest
Subject: Transaction problems


Hi,

we're implementing an entity bean with transactional (container managed)
methods. This bean is accessed by
a session statefull bean. We have transactional problem when a method
fails
(that is throws an EJBException) because orion doesn't rollback the
transaction.
Does anybody figure out how to make orion rollback the transaction?
We have also tried with a session stateless/stateful having the same
problem
.
Also implementing the SessionSycronization interface doesn't trap the
transaction
boundaries.

Our data-source.xml is:

<data-source
  class="com.evermind.sql.DriverManagerDataSource"
  name="SetmoveDS"
  location="jdbc/SetmoveDS"
  xa-location="jdbc/xa/MySetmoveDS"
  ejb-location="jdbc/myEJBDS"
  connection-driver="oracle.jdbc.OracleDriver"
  username="test"
  password="test"
  url="jdbc:oracle:thin:test/test@testsun:1521:test"
  inactivity-timeout="30"
 />

we use orion 1.5.2.

the ejb-jar.xml is:
.....
 <session>
   <display-name>LogEntJAR</display-name>
   <description>LogEntJAR</description>
   <ejb-name>MyLogEnt</ejb-name>
   <home>setmove.beans.logica.LogEntHome</home>
   <remote>setmove.beans.logica.LogEnt</remote>
   <ejb-class>setmove.beans.logica.LogEntEJB</ejb-class>
   <session-type>Stateful</session-type>
   <transaction-type>Container</transaction-type>
   <ejb-ref>
    <ejb-ref-name>MyEntUtente</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>setmove.beans.logica.EntUtenteHome</home>
    <remote>setmove.beans.logica.EntUtente</remote>
   </ejb-ref>
  </session>
.....
  <entity>
   <display-name>EntUtenteJAR</display-name>
   <description>EntUtenteJAR</description>
   <ejb-name>MyEntUtente</ejb-name>
   <home>setmove.beans.logica.EntUtenteHome</home>
   <remote>setmove.beans.logica.EntUtente</remote>
   <ejb-class>setmove.beans.logica.EntUtenteEJB</ejb-class>
   <persistence-type>Bean</persistence-type>
   <prim-key-class>java.lang.String</prim-key-class>
   <reentrant>false</reentrant>
   <resource-ref>
    <description>description</description>
    <res-ref-name>jdbc/SetmoveDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
   </resource-ref>
  </entity>
.....
<container-transaction>
<method>
    <ejb-name>LogEntEJB</ejb-name>
    <method-name>*</method-name>
   </method>
   <method>
    <ejb-name>EntUtenteEJB</ejb-name>
    <method-name>*</method-name>
   </method>
  </container-transaction>

thanks a lot.

Christian





Reply via email to