Hello JOnAS users,

I have some trouble with performance, maybe you can give me some tips. I did the 
following:

Standalone Client Software that uses implicit transaction control (no user 
transactions).
Stateful Session Bean that has a method doSomething. This method is marked as 
"RequiresNew". This method does a findByPrimaryKey on an EntityBean, then does
four different getXXX calls against the found instance, each delivering simple types 
as double, int, or a small String (50 characters). Then it packs this
data together in a flat object (Value Object) to return this data as the method's 
result.

This should perform very fast, as we have no direct communication between client and 
entity bean, and transaction is controlled by server to start TX when
method is called, and to commit TX when method is through.

But it ain't performing well. With client and servers (JOnAS, Sybase SQL Anywhere 7) 
on the same machine, running RMI, we only get a throughput of 34 method
calls per second. The database table only holds three records and the primary key 
class is correctly set to match the table's PK, and there is an index on
that table's PK.

When we comment out the findByPrimaryKey and getXXX, so that the method is a dummy 
only, we get about 600 method calls per second (including TX begin and
commit).

When we only do the findByPrimaryKey, and comment out the getXXX methods, we have only 
45 method calls per second. So it seems that the finder needs lot of
time, even if the data is not changed and JOnAS should be able to find the bean in 
memory.

Can anyone give us some hint what we can improve? It's really a simple, small, tiny 
example that we run, no heavy load, no big data, no lots of data. It
cannot be true that on a P-III 450 we only can get 31 method calls per second...?!

Thank you for every tip!

Markus

Reply via email to