Howdy!

I'm new to this list and want to start off saying that digging into
jBoss has been fun stuff! Thanks to all involved for bringing this
product along!!

I have a container managed transaction (CMT) session bean that does a
little money transfer demo. In the transfer method I'd like to roll back
if the "from" account will be < 0.00. I think I should be able to do
this by calling context.setRollbackOnly() but when I use that I get an
error:
   [BankBean] javax.transaction.RollbackException: Already rolled back.

If I take the context.setRollbackOnly() call out
InsufficientBalanceException gets thrown but no rollback happens and the
account gets a negative balance.

Could someone please give me a clue?

TIA,
Boz

Here's the whole method:..........................

    public void transferToSaving(double amount) 
        throws InsufficientBalanceException  // extends Exception
    {
        
        checkingBalance -= amount;
        savingBalance   += amount;
        
        try {
            updateChecking(checkingBalance);
            if (checkingBalance < 0.00) {
                context.setRollbackOnly();
                throw new InsufficientBalanceException();
            }
            updateSaving(savingBalance);
        } catch (SQLException ex) {
            throw new EJBException 
                ("Transaction failed due to SQLException: " 
                 + ex.getMessage());
        }
    }



Here's a snip of the ejb-jar.xml:...........................

        ...
      <transaction-type>Container</transaction-type>
        ...
    <container-transaction>
      <method>
        <ejb-name>BankBean</ejb-name>
        <method-intf>Remote</method-intf>
        <method-name>transferToSaving</method-name>
        <method-params>
          <method-param>double</method-param>
        </method-params>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
        ...


--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]

Reply via email to