geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mario Rübsam ...@coderesearch.com>
Subject Re: Transaction timeout exception ?!
Date Thu, 01 Jun 2006 17:14:06 GMT
Hmm, try to enable CONNECTION_STATISTICS and SHOW_CONNECTIONS
in the Oracle Connection Manager Parameters. Look at the connections
while on load. Are they released correctly?

Looking on the db stats is what I did when looking for my commit
problem. They telling a lot in such situations.

-Mario

Santosh Koti wrote:
> Mario,
> 
> I have set the following in oracle:
>         Processes : 1000 (earlier it was 500)
>         Sessions: 1000 
> 
>          For a load of 250.
> 
> The result was bit fine, but still I get some timeout exceptions , any other tuning parameters
I need to look at ..?
> 
> 
> 
> 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 10:23 PM
> To: user@geronimo.apache.org
> Subject: Re: Transaction timeout exception ?!
> 
> 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:vasily.m.zakharov@intel.com] 
>> Sent: Thursday, June 01, 2006 8:44 PM
>> To: user@geronimo.apache.org
>> Subject: RE: Transaction timeout exception ?!
>>
>>
>> By the way, what is the DB max setting for Derby?
>>
>>  Vasily
>>
>>
>> -----Original Message-----
>> From: Mario Rubsam [mailto:mr@coderesearch.com] 
>> Sent: Thursday, June 01, 2006 7:06 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