"Bhattacharyya, Ana" wrote:
>
> Richard talked of that ObjectNotFoundException --- what is that?? which
> method throws that?

It's a subclass of javax.ejb.FinderException, which you are supposed
to throw if the object no longer exists in the persistent store.

> TIA
> Ana
>
> -----Original Message-----
> From: Robert Nicholson [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, May 25, 2000 11:35 AM
> To: [EMAIL PROTECTED]
> Subject: Re: ejbFindByPrimaryKey & Database lookup
>
> I think before people go breaking the contracts laid out by the
> specification they should quantify the performance gains from doing so.
>
> > -----Original Message-----
> > From: A mailing list for Enterprise JavaBeans development
> > [mailto:[EMAIL PROTECTED]]On Behalf Of Richard Monson-Haefel
> > Sent: Thursday, May 25, 2000 5:20 AM
> > To: [EMAIL PROTECTED]
> > Subject: Re: ejbFindByPrimaryKey & Database lookup
> >
> >
> > While I agree that simply returning the primary key is more
> > efficient then checking
> > for the entity in the database, there are drawbacks to this strategy.
> >
> > Here is the problem: If the entity doesn't exist in the database
> > then the activated
> > instance will throw an exception in its ejbLoad method which will
> > result in a
> > transaction rollback.
> >
> > This rollback is avoided with the ejbFind method that checks for
> > the entity, because
> > it  throws an application exception (ObjectNotFoundException),
> > which doesn't cause a
> > transaction rollback.  Generally we don't expect the ejbFind
> > method to cause a
> > transaction rollback if there is no entity is found.  In
> > addition, the contract of
> > the find operation is broken. Instead of throwing an
> > ObjectNotFoundException, as
> > expected, the find method will throw a RemoteException.
> >
> > As long as the bean developer and application developer are aware of these
> > differences the change in behavior (which does not conform with
> > the specification)
> > is perhaps tolerable.
> >
> > Richard
> > --
> > Richard Monson-Haefel
> > Author of Enterprise JavaBeans, 2nd Edition
> > Published by O'Reilly & Associates
> > http://www.EjbNow.com
> >
> > David Pinnington - Sun UK - Consultant wrote:
> >
> > > I personally do exactly this.
> > >
> > > If you image the finder method actually doing a database lookup
> > then you will be
> > > doing the following:
> > >
> > > ejbFindByPrimaryKey() - does database lookup (SELECT)
> > > if Entity Bean not loaded into server then
> > >         create new EJB inmemory and populate using ejbLoad - (SELECT)
> > >
> > > So in this case you have done 2 database lookups which i think
> > is much more
> > > expensive. The EJB clinet will still get the FinderException
> > whichever way you
> > > do it so I always go with the finder simply returning the PK
> > without doing a
> > > lookup.
> > >
> > > In fact I would go one step further - if ever I have a finder
> > method (primary
> > > key or not) where I can get / calculate the primary key withough doing a
> > > database lookup I will (e.g. composite key etc).
> > >
> > > davep
> > >
> > > >
> > > > Hi,
> > > >
> > > > I just saw a bea slide which recommends to implement
> > ejbFindByPrimaryKey by
> > > > just returning the parameter:
> > > >
> > > > String ejbFindByPrimaryKey(String pk)
> > > > {
> > > >      return pk;
> > > > }
> > > >
> > > > This code does not perfom a database lookup.
> > > >
> > > > The above coding has consequences:
> > > > 1. if a bean with the specified pk does not exist,
> > ejbFindByPrimaryKey will
> > > > not throw a FinderException. Instead, ejbLoad will fail (in
> > which case a
> > > > FinderException can be thrown).
> > > > 2. No database lock is set to the tuple with the pk.
> > > >
> > > > Has someone out there experiences with the optimized code?
> > > >
> > > > Thanks,
> > > > Marc Volz
> > > > TLC, Germany
> > > >
> > > >
> > ==================================================================
> > =========
> > > > 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".
> > > >
> > >
> > > ----------------------------------
> > > Dave Pinnington - Sun Microsystems
> > > [EMAIL PROTECTED]
> > > tel: +44 (0)1223 418868
> > > fax: +44 (0)1223 420257
> > >
> > >
> > ==================================================================
> > =========
> > > 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".
>
> STATEMENT OF CONFIDENTIALITY.   The information contained in this electronic
> message and any attachments to this message are intended for the exclusive
> use of the addressee(s) and may contain confidential or privileged
> information. If you are not the intended recipient, please notify
> USPowerSolutions Corporation immediately at (617) 547-3800, or at
> [EMAIL PROTECTED], and destroy all copies of this message and any
> attachments.
>
> ===========================================================================
> 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".

--
________________________________________________________________________________

Evan Ireland              Sybase EAServer Engineering        [EMAIL PROTECTED]
                            Wellington, New Zealand               +64 4 934-5856

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