First of all you should call rollback in each catch (from the code snippet
 you have showed us), in case there is any problem, the transaction should
 roll back.
 In the case you have described, you said that "when the session bean
 commits, the container executes ejbLoad - wich fails when the version is
 incorrect." If there is no exception thrown and the transaction is not
 rolled back than you should do something before the commit in order for the
 container to try and load the bean. In this way if the version is different
 that an exception will be thrown before the commit happens and in the
 corresponding catch you can rollback the transaction.

 Best regards,
 Sergiu Truta.

----- Original Message -----
From: "Pablo Schor" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 16, 2004 4:59 PM
Subject: Re: BMP/T, optimistic locking and trying to revert a commit


> I can't, Evan, since I've already commited the transaction. The code in
the
> session bean goes like this:
>
> UserTransaction ut = null;
> try {
>         BMPDataBean dataBean = getHome().findByPrimaryKey( pk );
>         ut = m_context.getUserTransaction();
>         ut.begin();
>         dataBean.setXXX ( xxx );
>         dataBean.setYYY ( yyy );
>         ut.commit();
> }
>     catch (EJBException e) {
>             e.printStackTrace();
> }
>     catch (NamingException e) {
>             e.printStackTrace();
> }
>     catch (Exception e) {
>             e.printStackTrace();
> }
>
>
>
> The thing is when the session bean commits, the container executes
ejbLoad -
> wich fails when the version is incorrect.
>
> Throwing EJBException doesn't prevent the commit. I need the commit to
fail
> under some circumstances, I jus't don't find the way to make it fail.
>
> PS
>
>
>
> ----- Original Message -----
> From: "Evan Ireland" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, January 14, 2004 8:00 PM
> Subject: Re: BMP/T, optimistic locking and trying to revert a commit
>
>
> > Throw an EJBException from EJBStore. Catch the exception in the SB
> > and call rollback, then retry.
> >
> > > -----Original Message-----
> > > From: A mailing list for Enterprise JavaBeans development
> > > [mailto:[EMAIL PROTECTED] Behalf Of Pablo Schor
> > > Sent: Thursday, 15 January 2004 11:35 a.m.
> > > To: [EMAIL PROTECTED]
> > > Subject: BMP/T, optimistic locking and trying to revert a commit
> > >
> > >
> > > I have the following situation: Jboss 3.2.1,  one statless
> > > session bean, one BMP entity beans. The session bean updates the
> > > table through _BMT_, but the ejbStore has a "version=v" in the
> > > where clause and if it fails (no rows updated), it has to throw
> > > an exception to the session bean.
> > >
> > >
> > > The container executes the ejbStore() method when the session
> > > bean issues a commit, but if the version is incorrect, the BMP
> > > throws an exception - trying to rollback since the update clause
> > > didn't update the required row.
> > >
> > >
> > > Questions:
> > >
> > > 1. What Exception should the BMP throw? Can a BMP throw an
> > > application specific exception? if not, how can the BMP notify
> > > the session bean the fact no rows were updated?
> > > 2. In any case, can the commit be reverted?
> > >
> > >
> > > Thanks for any info,
> > > PS
> > >
> > >
> > > ==================================================================
> > > =========
> > > 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".

===========================================================================
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