Robert,
20 seconds for read-only access of a list of employees within some
organization structure seems very, very slow. Is the employee entity bean
using bean managed persistence? With a good cmp engine and running on a
production box you would be in the tens of thousands to have this
performance characteristic. A good cmp engine would load the state of the
whole collection of entity beans in one SQL call i.e. the
findByOrganiationStructure(), and not perform any expensive SQL UPDATES at
the end of the transaction. The iteration over the collection would result
in some collection of JavaBean objects representing your report lines. By
the way this is still transactional work though read-only - maybe not in the
business sense.
William Louth
Borland/Inprise
www.inprise.com/appserver
-----Original Message-----
From: A mailing list for Enterprise JavaBeans development
[mailto:[EMAIL PROTECTED]]On Behalf Of Robert Hargreaves
Sent: Wednesday, November 22, 2000 3:33 AM
To: [EMAIL PROTECTED]
Subject: Re: Alternative to EJB Callbacks
William,
> -----Original Message-----
> Having said all of this I think a transaction taking 20 seconds is not
> typical of the usage of Enterprise JavaBeans could you tell
> us more about
> this. There might be other ways to solve this problem than the above
> mentioned and at the same time reduce the turnaround. With 20
> seconds you
> will increase the likelihood of collisions with other
> transactions. The
> holding onto the database resource can limit your scalability
> and increase
> the work load for your database server since it will need to use large
> amounts of memory storage to support the transaction requirements.
Actually the task being performed is a (kind of) departmental tax report for
a payroll and so doesn't really need to be transactional at all (I think).
It basically reads entity beans and prints a couple of lines of a data per
employee for all employees in the department.
We could actually iterate over a collection of employees from the client and
call printTaxReport(Employee fred) on each iteration and then we could
update the progress bar on each iteration, but we need to maintain a large
number of running totals and then print those out at the end of the of each
department.
The task itself must scale from a single department report upto a department
within companies within divisions report and so on. We dont really want to
maintain the running totals on the client so thats why we've gone for a
single method call of printTaxReport(Department sales) that lasts 20
seconds.
Regards,
Robert Hargreaves
===========================================================================
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".