geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Santosh Koti" <Santosh_K...@infosys.com>
Subject RE: Transaction timeout exception ?!
Date Thu, 01 Jun 2006 15:06:54 GMT

Thanks, Mario, I will chk the same in the Oracle DB & let u know.

Thanks,
Santosh.
"Don't talk about yourself; it will be done when you leave. "
 

-----Original Message-----
From: Mario Rübsam [mailto:mr@coderesearch.com] 
Sent: Thursday, June 01, 2006 8:36 PM
To: user@geronimo.apache.org
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:mr@coderesearch.com] 
> Sent: Thursday, June 01, 2006 8:03 PM
> To: user@geronimo.apache.org
> 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***
>>
> 


Mime
View raw message