Hi

We have an application that is used by portfolio managers to manage money.
They manage one or more portfolios, where a portfolio consists of one or
more positions.  Each position corresponds to an asset (a given asset can be
associated with multiple positions), and the asset is associated with
pricing information.  So, it's like:

Portfolio----<Position>-------Asset-------Valuation

A given portfolio might contain anywhere from 50 to 500 positions.  In
addition, a position is represented by data scattered across several tables.
Same for asset and valuation.  When we go to the app server to grab the data
today, we make 3 separate calls for each portfolio performing bulk data
loads directly against the database (not loading entity beans, but directly
from the session beans), to load first all positions for a portfolio, then
all assets for each portfolio, then all valuations for each portfolio.  Each
query could join against several tables.

Since we're going directly against the database, we have a couple of
problems.  One, we're not taking advantage of cacheing of beans on the app
server.  Two, if we are in the middle of updating a position through a bean,
by going directly against the database we're not ensured consistency until
the change to the position bean is comitted.  We'd much rather make use of
the ejb container for everything.  We haven't historically because trying to
load 500 positions using a finder method was extremely slow.  What I would
like to do is find a portfolio bean and have the portfolio bean return a
collection of cached positions.  I'm about to investigate using CMP and was
wondering if anyone could tell me if I should even bother or if I should
stick with my bulk data loads.  Are there any kind of performance
benchmarks, etc.  I'd like to take advantage of what the container has to
offer if possible, and it seems as if great strides have been made with cmp-
for example, i understand that doing a finder method will in fact load the
data at the same time instead of just the primary keys to avoid selecting
one entity at a time (in fact i'd imagine this as a great differentiating
factor between app servers - and besides, i know dain is a smart guy :)).

Regards

Eric Kaplan
Armanta, Inc.
55 Madison Ave.
Morristown, NJ  07960
Phone: (973) 326-9600

<<attachment: winmail.dat>>

Reply via email to