You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by "Leonardo K. Shikida" <sh...@gmail.com> on 2015/01/27 18:41:23 UTC

oracle single transaction

Hi

I am running a simple Java EE application in tomee+. This application uses
JPA and it's backed by an oracle XE server.

I've noticed that it uses many oracle sessions and processes (which kind of
represent the connections), but just a single transaction, tops.

Of course, I try to keep transactions short, but I was expecting more under
stress tests.

Is that expected or should I investigate my code for potential bottlenecks?

SQL> select * from v$resource_limit;

RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
INITIAL_ALLOCATION                LIMIT_VALUE
------------------------------ ------------------- ---------------
----------------------------------------
----------------------------------------
processes                    56           119      340
   340
sessions                    59           142      532
532
enqueue_locks                    52           114     6220
      6220
enqueue_resources                17        17     1299
UNLIMITED
ges_procs                     0         0        0                         0
ges_ress                     0         0        0
UNLIMITED
ges_locks                     0         0        0
UNLIMITED
ges_cache_ress                     0         0        0
UNLIMITED
ges_reg_msgs                     0         0        0
UNLIMITED
ges_big_msgs                     0         0        0
UNLIMITED
ges_rsv_msgs                     0         0        0
     0

RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
INITIAL_ALLOCATION                LIMIT_VALUE
------------------------------ ------------------- ---------------
----------------------------------------
----------------------------------------
gcs_resources                     0         0        0
     0
gcs_shadows                     0         0        0
     0
dml_locks                     1         1      660
UNLIMITED
temporary_table_locks                 0         1  UNLIMITED
     UNLIMITED
*transactions                     1         1      585
UNLIMITED*
branches                     0         0      585
UNLIMITED
cmtcallbk                     0        30      585
UNLIMITED
max_rollback_segments                48        48      585
     65535
sort_segment_locks                 0         1  UNLIMITED
     UNLIMITED
k2q_locks                     0         0     1064
UNLIMITED
max_shared_servers                 0         0  UNLIMITED
     UNLIMITED

RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
INITIAL_ALLOCATION                LIMIT_VALUE
------------------------------ ------------------- ---------------
----------------------------------------
----------------------------------------
parallel_max_servers                 0         0        0
      3600

[]

Leo

Re: oracle single transaction

Posted by Romain Manni-Bucau <rm...@gmail.com>.
yes, server vision vs database one, can really be different in
particular with oracle


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2015-01-27 19:03 GMT+01:00 Leonardo K. Shikida <sh...@gmail.com>:
> TransactionManager says 70 are active, 600 commits, etc.
>
> Really weird :-)
>
> thx
>
> []
>
> Leo
>
> On Tue, Jan 27, 2015 at 3:47 PM, Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
>> You can check as well through JMX geronimo transaction manager
>> transaction count (in openejb jmx mbeans, under the name
>> TransactionManager IIRC).
>>
>> looks weird yes but can depend oracle driver config AFAIK
>>
>>
>> Romain Manni-Bucau
>> @rmannibucau
>> http://www.tomitribe.com
>> http://rmannibucau.wordpress.com
>> https://github.com/rmannibucau
>>
>>
>> 2015-01-27 18:41 GMT+01:00 Leonardo K. Shikida <sh...@gmail.com>:
>> > Hi
>> >
>> > I am running a simple Java EE application in tomee+. This application
>> uses
>> > JPA and it's backed by an oracle XE server.
>> >
>> > I've noticed that it uses many oracle sessions and processes (which kind
>> of
>> > represent the connections), but just a single transaction, tops.
>> >
>> > Of course, I try to keep transactions short, but I was expecting more
>> under
>> > stress tests.
>> >
>> > Is that expected or should I investigate my code for potential
>> bottlenecks?
>> >
>> > SQL> select * from v$resource_limit;
>> >
>> > RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
>> > INITIAL_ALLOCATION                LIMIT_VALUE
>> > ------------------------------ ------------------- ---------------
>> > ----------------------------------------
>> > ----------------------------------------
>> > processes                    56           119      340
>> >    340
>> > sessions                    59           142      532
>> > 532
>> > enqueue_locks                    52           114     6220
>> >       6220
>> > enqueue_resources                17        17     1299
>> > UNLIMITED
>> > ges_procs                     0         0        0
>>    0
>> > ges_ress                     0         0        0
>> > UNLIMITED
>> > ges_locks                     0         0        0
>> > UNLIMITED
>> > ges_cache_ress                     0         0        0
>> > UNLIMITED
>> > ges_reg_msgs                     0         0        0
>> > UNLIMITED
>> > ges_big_msgs                     0         0        0
>> > UNLIMITED
>> > ges_rsv_msgs                     0         0        0
>> >      0
>> >
>> > RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
>> > INITIAL_ALLOCATION                LIMIT_VALUE
>> > ------------------------------ ------------------- ---------------
>> > ----------------------------------------
>> > ----------------------------------------
>> > gcs_resources                     0         0        0
>> >      0
>> > gcs_shadows                     0         0        0
>> >      0
>> > dml_locks                     1         1      660
>> > UNLIMITED
>> > temporary_table_locks                 0         1  UNLIMITED
>> >      UNLIMITED
>> > *transactions                     1         1      585
>> > UNLIMITED*
>> > branches                     0         0      585
>> > UNLIMITED
>> > cmtcallbk                     0        30      585
>> > UNLIMITED
>> > max_rollback_segments                48        48      585
>> >      65535
>> > sort_segment_locks                 0         1  UNLIMITED
>> >      UNLIMITED
>> > k2q_locks                     0         0     1064
>> > UNLIMITED
>> > max_shared_servers                 0         0  UNLIMITED
>> >      UNLIMITED
>> >
>> > RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
>> > INITIAL_ALLOCATION                LIMIT_VALUE
>> > ------------------------------ ------------------- ---------------
>> > ----------------------------------------
>> > ----------------------------------------
>> > parallel_max_servers                 0         0        0
>> >       3600
>> >
>> > []
>> >
>> > Leo
>>

Re: oracle single transaction

Posted by "Leonardo K. Shikida" <sh...@gmail.com>.
TransactionManager says 70 are active, 600 commits, etc.

Really weird :-)

thx

[]

Leo

On Tue, Jan 27, 2015 at 3:47 PM, Romain Manni-Bucau <rm...@gmail.com>
wrote:

> You can check as well through JMX geronimo transaction manager
> transaction count (in openejb jmx mbeans, under the name
> TransactionManager IIRC).
>
> looks weird yes but can depend oracle driver config AFAIK
>
>
> Romain Manni-Bucau
> @rmannibucau
> http://www.tomitribe.com
> http://rmannibucau.wordpress.com
> https://github.com/rmannibucau
>
>
> 2015-01-27 18:41 GMT+01:00 Leonardo K. Shikida <sh...@gmail.com>:
> > Hi
> >
> > I am running a simple Java EE application in tomee+. This application
> uses
> > JPA and it's backed by an oracle XE server.
> >
> > I've noticed that it uses many oracle sessions and processes (which kind
> of
> > represent the connections), but just a single transaction, tops.
> >
> > Of course, I try to keep transactions short, but I was expecting more
> under
> > stress tests.
> >
> > Is that expected or should I investigate my code for potential
> bottlenecks?
> >
> > SQL> select * from v$resource_limit;
> >
> > RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
> > INITIAL_ALLOCATION                LIMIT_VALUE
> > ------------------------------ ------------------- ---------------
> > ----------------------------------------
> > ----------------------------------------
> > processes                    56           119      340
> >    340
> > sessions                    59           142      532
> > 532
> > enqueue_locks                    52           114     6220
> >       6220
> > enqueue_resources                17        17     1299
> > UNLIMITED
> > ges_procs                     0         0        0
>    0
> > ges_ress                     0         0        0
> > UNLIMITED
> > ges_locks                     0         0        0
> > UNLIMITED
> > ges_cache_ress                     0         0        0
> > UNLIMITED
> > ges_reg_msgs                     0         0        0
> > UNLIMITED
> > ges_big_msgs                     0         0        0
> > UNLIMITED
> > ges_rsv_msgs                     0         0        0
> >      0
> >
> > RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
> > INITIAL_ALLOCATION                LIMIT_VALUE
> > ------------------------------ ------------------- ---------------
> > ----------------------------------------
> > ----------------------------------------
> > gcs_resources                     0         0        0
> >      0
> > gcs_shadows                     0         0        0
> >      0
> > dml_locks                     1         1      660
> > UNLIMITED
> > temporary_table_locks                 0         1  UNLIMITED
> >      UNLIMITED
> > *transactions                     1         1      585
> > UNLIMITED*
> > branches                     0         0      585
> > UNLIMITED
> > cmtcallbk                     0        30      585
> > UNLIMITED
> > max_rollback_segments                48        48      585
> >      65535
> > sort_segment_locks                 0         1  UNLIMITED
> >      UNLIMITED
> > k2q_locks                     0         0     1064
> > UNLIMITED
> > max_shared_servers                 0         0  UNLIMITED
> >      UNLIMITED
> >
> > RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
> > INITIAL_ALLOCATION                LIMIT_VALUE
> > ------------------------------ ------------------- ---------------
> > ----------------------------------------
> > ----------------------------------------
> > parallel_max_servers                 0         0        0
> >       3600
> >
> > []
> >
> > Leo
>

Re: oracle single transaction

Posted by Romain Manni-Bucau <rm...@gmail.com>.
You can check as well through JMX geronimo transaction manager
transaction count (in openejb jmx mbeans, under the name
TransactionManager IIRC).

looks weird yes but can depend oracle driver config AFAIK


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2015-01-27 18:41 GMT+01:00 Leonardo K. Shikida <sh...@gmail.com>:
> Hi
>
> I am running a simple Java EE application in tomee+. This application uses
> JPA and it's backed by an oracle XE server.
>
> I've noticed that it uses many oracle sessions and processes (which kind of
> represent the connections), but just a single transaction, tops.
>
> Of course, I try to keep transactions short, but I was expecting more under
> stress tests.
>
> Is that expected or should I investigate my code for potential bottlenecks?
>
> SQL> select * from v$resource_limit;
>
> RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
> INITIAL_ALLOCATION                LIMIT_VALUE
> ------------------------------ ------------------- ---------------
> ----------------------------------------
> ----------------------------------------
> processes                    56           119      340
>    340
> sessions                    59           142      532
> 532
> enqueue_locks                    52           114     6220
>       6220
> enqueue_resources                17        17     1299
> UNLIMITED
> ges_procs                     0         0        0                         0
> ges_ress                     0         0        0
> UNLIMITED
> ges_locks                     0         0        0
> UNLIMITED
> ges_cache_ress                     0         0        0
> UNLIMITED
> ges_reg_msgs                     0         0        0
> UNLIMITED
> ges_big_msgs                     0         0        0
> UNLIMITED
> ges_rsv_msgs                     0         0        0
>      0
>
> RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
> INITIAL_ALLOCATION                LIMIT_VALUE
> ------------------------------ ------------------- ---------------
> ----------------------------------------
> ----------------------------------------
> gcs_resources                     0         0        0
>      0
> gcs_shadows                     0         0        0
>      0
> dml_locks                     1         1      660
> UNLIMITED
> temporary_table_locks                 0         1  UNLIMITED
>      UNLIMITED
> *transactions                     1         1      585
> UNLIMITED*
> branches                     0         0      585
> UNLIMITED
> cmtcallbk                     0        30      585
> UNLIMITED
> max_rollback_segments                48        48      585
>      65535
> sort_segment_locks                 0         1  UNLIMITED
>      UNLIMITED
> k2q_locks                     0         0     1064
> UNLIMITED
> max_shared_servers                 0         0  UNLIMITED
>      UNLIMITED
>
> RESOURCE_NAME               CURRENT_UTILIZATION MAX_UTILIZATION
> INITIAL_ALLOCATION                LIMIT_VALUE
> ------------------------------ ------------------- ---------------
> ----------------------------------------
> ----------------------------------------
> parallel_max_servers                 0         0        0
>       3600
>
> []
>
> Leo