I think Vasily was refering to the max allowed/configured connections
to Derby. The same DB setting we talked before. Did you checked the
Oracle settings?
-Mario
Santosh Koti wrote:
Vasily,
DB max setting depends on the load u want to test on the application
Say , if u r load is 100, then the DB max (connection pool) setting should be
atleast 100 or more. The same no of processs/sessions (or whatever is
equivalent in derby) should be set.
PS1: Geronimo default starts with 50 threads. Atleast have 50.
Thanks,
Santosh.
"Don't talk about yourself; it will be done when you leave. "
-----Original Message-----
From: Zakharov, Vasily M [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 01, 2006 8:44 PM
To: [email protected]
Subject: RE: Transaction timeout exception ?!
By the way, what is the DB max setting for Derby?
Vasily
-----Original Message-----
From: Mario Rubsam [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 01, 2006 7:06 PM
To: [email protected]
Subject: Re: Transaction timeout exception ?!
Santosh,
I can tell you the situation with MaxDB.
If max Geronimo is set to 51 and 50 is the setting for MAXUSERTASKS
in MaxDB then you got a lock when 50 is reached until someone will
free a connection/session on the server. The reaction depends on the
db server. For MaxDB you have to wait for a timeout ;-) So my suggestion
is always DB max settings > Geronimo settings +5 sessions for the
admin tools.
-Mario
Santosh Koti wrote:
Mario,
It is Oracle DB.
U mean if 'x' no of connection pools are set on the Geronimo server, similar no
of sessions have to be there on the DB server side ?
U got it resolved ?
PS: This happens under load conditions.
Thanks,
Santosh.
"Don't talk about yourself; it will be done when you leave. "
-----Original Message-----
From: Mario Rübsam [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 01, 2006 8:03 PM
To: [email protected]
Subject: Re: Transaction timeout exception ?!
Santosh,
first of all my question is now: which database?
I had this under load conditions when not enough database
connections/sessions available on the db server. Or when
the max connections on Geronimo set higher than max connections
on the server.
-Mario
Santosh Koti wrote:
Hi all,
I am getting transaction timeout exception , may I know the
reasons/workaround for it?
I guess this the container is try ing to commit, but is waiting for the
DB to accept the request ?
Here is the following code snippet from Geronimo
TransactionImpl.java(commit ()) :
-------------Begin-----------------
| //Transaction method, does 2pc|
|221 ||*public*|| *void* commit() *throws* HeuristicMixedException
<http://www.kickjava.com/3071.htm>, HeuristicRollbackException
<http://www.kickjava.com/3072.htm>, RollbackException
<http://www.kickjava.com/3072.htm>, SecurityException
<http://www.kickjava.com/1840.htm>, SystemException
<http://www.kickjava.com/2975.htm> {|
|222 beforePrepare();|
|223 |
|224 *try* {|
|225 *boolean* timedout = *false*;|
|226 *if* (TransactionTimer.getCurrentTime() >
timeout)|
|227 {|
|228 status = Status.STATUS_MARKED_ROLLBACK;|
|229 timedout = *true*;|
|230 }|
|231 |
|232 *if* (status == Status.STATUS_MARKED_ROLLBACK) {|
|233 rollbackResources(resourceManagers);|
|234 *if*(timedout)|
|235 {|
|236 *throw* *new* RollbackException
<http://www.kickjava.com/3072.htm>("Transaction timout");|
|237 }|
|238 *else*|
|239 {|
|240 *throw* *new* RollbackException
<http://www.kickjava.com/3072.htm>("Unable to commit");|
|241 }|
|242 }|
|243 *synchronized* (*this*) {|
|244 *if* (status == Status.STATUS_ACTIVE) {|
|245 *if* (*this*.resourceManagers.size() == 0) {|
|246 // nothing to commit|
|247 status = Status.STATUS_COMMITTED;|
|248 } *else* *if* (*this*.resourceManagers.size()
== 1) {|
|249 // one-phase commit decision|
|250 status = Status.STATUS_COMMITTING;|
|251 } *else* {|
|252 // start prepare part of two-phase|
-------------End--------------------
Thanks,
Santosh.
"Don't talk about yourself; it will be done when you leave. "
**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended
solely for the use of the addressee(s). If you are not the intended
recipient, please notify the sender by e-mail and delete the original
message. Further, you are not to copy, disclose, or distribute this
e-mail or its contents to any other person and any such actions are
unlawful. This e-mail may contain viruses. Infosys has taken every
reasonable precaution to minimize this risk, but is not liable for any
damage you may sustain as a result of any virus in this e-mail. You
should carry out your own virus checks before opening the e-mail or
attachment. Infosys reserves the right to monitor and review the content
of all messages sent to or from this e-mail address. Messages sent to or
from this e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***