"Halas, Miroslav" wrote:
>
> Hi,
>
> I would like to ask you about your opinion. We are still using Jonas 2.0 and
> not planning to move to 2.1.x before most of the bugs are resolved and we
> are able to modify our code to be fully EJB 1.1 compliant. In between to
> speed up our application and get around the connection-underflow problem we
> see sometimes in Jonas we modified all our read-only methods to have
> TX_SUPPORTS instead of TX_REQUIRED attribute. In the first case the first
> call to our app server created one transaction and all subsequent calls were
> within this transaction. After the modification no transaction is created at
> all (which is what we wanted) but the whole processing takes about 3 times
> longer. Using trace levels 4,5,6,12,14,15,16,17,31 I can see in the first
> case creation of the single transaction and all the context synchronization.
> In the second case no transaction is created but I see calls to
> Current.addConnection() and Current.removeConnection() being executed
> extrememly frequently. I assume this is the problem of our slow down
> (because in first case it looks like much more code gets executed). So my
> question is, is this normal behaviour to call
> addConnection()/removeConnection() so often or is it a problem in our
> configuration? Coan this cause this problem? Is there some workaround
> available to speed this up (I assume that the connections are cached).
>
> Our configuration: Jonas 2.0. Jeremie, Windows 2000, JDK. 1.2.2.006 ,
> Interbase 6.0.1, Interclient 1.6.1
Hi Miroslav,
I'm not sure to understand what you do. You have replaced REQUIRED by
SUPPORTS for those methods that are read-only: Ok. You never start
transaction by yourself with UserTransaction interface, correct ?
If this is correct, with JOnAS 2.0, you should get about the same
effects:
FOr each REQUIRED method, the container will create a transaction and
commit it after the request. For each "read-only" method, no transaction
will be created if the SUPPORTS attribute is chosen, but the bean state
is read before the request, and written after, so this should not
be optimized. This has been changed in jonas 2.1: now the bean state is
kept in memory if the bean instance is not implied in a transaction
(entity beans only).
Concerning addConnection and removeConnection, they are called only when
you are outside a transaction, but I don't think it takes a long time.
(???)
The reason for that is to keep track of the connections open outside
transactions
to be able to enlist them later when a transaction is started.
A good way to speed up your application with jonas 2.0 (and also 2.1)
is to use the isModify() facility in your entity beans: for each
read-only
method, the bean state will not be written in the database any more.
You can also speed up by creating transaction yourself and committing it
after many requests (long transactions instead of 1 transaction per
request)
If you want to upgrade jonas, you can also take jonas 2.0.2 or 2.0.4
in the CVS tree (no binary versions have been released). Use the cvs
tags
jonas-2-0-2 or jonas-2-0-4 respectively. These versions improve jonas
2.0
by adding new functionalities or correcting minor bugs. (details on
release notes)
But we hope to fix the few bugs discovered by jonas users (thanks to
them!)
on jonas 2.1.1 as soon as possible!
Regards,
--
Philippe Durieux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bull - 1 rue de Provence - 38432 Echirolles Cedex France
[EMAIL PROTECTED]
-> Download our EJBServer at http://www.evidian.com/ejb <-
----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".