You seem to be using Orion. If I remember this correctly, you should be
using the ejb-location to take advantage of the Container Managed
Transactions in Orion.

I haven't used it myself, but I seem to recall that the xa datasource is
used for Bean Managed Transactions.

/Fredrik Lindgren


Robert Hargreaves wrote:

> I get the DataSource handle using
>
> ds = (DataSource) initialContext.lookup("jdbc/DefaultPooledDS");
>
> which is defined in data-sources.xml as:
>
> <data-source
>                 name="SQL Server"
>                 class="com.evermind.sql.ConnectionDataSource"
>                 location="jdbc/DefaultDS"
>                 pooled-location="jdbc/DefaultPooledDS"
>                 ejb-location="jdbc/DefaultEJBDS"
>                 xa-location="jdbc/xa/DefaultXADS"
>                 url="jdbc:inetdae7:RH:1433?database=damanEnt"
>                 connection-driver="com.inet.tds.TdsDriver"
>                 username="sa"
>                 max-connections="20"
>                 schema = "\database-schemas\sqlserver.xml"
>                 password="password"
>         />
>
> Should a be using "jdbc/xa/DefaultXADS" ?
>
>
>>-----Original Message-----
>>From: Chandra kumar [mailto:[EMAIL PROTECTED]]
>>Sent: 04 January 2002 14:02
>>To: [EMAIL PROTECTED]
>>Subject: Re: Basic transaction misunderstanding
>>
>>
>>
>>>con = ds.getConnection();
>>>
>>As you haven't mentioned about the data source, I'd check to
>>make sure the data source obtained is defined in admin server
>>as transactional. That means the server should provide ds
>>object from the connection pool that uses xa driver.
>>
>>
>>Robert Hargreaves wrote:
>>
>>I have a remote method X defined in a stateless session bean
>>as being TX_REQUIRES_NEW. In the implementation class for
>>method X I call three non-remote private methods A, B & C.
>>Methods A and C create CMP Entity beans using their
>>respective create() methods, but method B creates database
>>records using hard-coded SQL like this:
>>
>>public void B(int compNum, long oid) throws RemoteException {
>>        Connection con = null;
>>        try {
>>            con = ds.getConnection();
>>
>>            Statement stmt = con.createStatement();
>>            stmt.executeUpdate(("INSERT INTO companyMap
>>(compNum, oid) "
>>+
>>                    "VALUES (" + compNum + "," + oid + ")"));
>>            stmt.close();
>>        } catch (Exception e) {
>>            throw new RemoteException(e.toString());
>>        } finally {
>>            if (con != null) {
>>                try {
>>                    con.close();
>>                } catch (Exception e) {
>>                }
>>            }
>>        }
>>    }
>>
>>
>>Trouble is, if there is a problem in with any of the three
>>methods, I catch the appropriate exception in method X and
>>throw an EJBException which causes a rollback - but it only
>>rolls back data created in methods A & C (CMP entity bean
>>records) and not data written to the database in method B. I
>>want the INSERT statement above to be included in the
>>transaction started when method X is called.
>>
>>Any suggestions?
>>
>>Rob.
>>
>>==============================================================
>>=============
>>To unsubscribe, send email to [EMAIL PROTECTED] and
>>include in the body of the message "signoff EJB-INTEREST".
>>For general help, send email to [EMAIL PROTECTED] and
>>include in the body of the message "help".
>>
>>
>>
>
> =========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff EJB-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>
>
>

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to