Hi,

 

We are seeing a weird memory issue while using IBATIS for JAVA.

We call an Oracle 10g stored proc via IBatis. The proc returns a single
cursor with 10 columns.

Out of the 10 columns, 3 column has been hardcoded to NULL (for business
functionality reasons) in the SELET Statement of the CURSOR. 

 

When we set a column explicitly NULL we see that IBATIS seems to take a
huge amount of memory and this leads to FULL GCs - which block our
application - hence degrading its performance.

But, if we set the column to a hardcoded string value (say 'xyz'), we
don't see this high memory usage and hence no FULL GCs and hence does
not degrade our performance.

 

To give an idea, when the sproc is with explicit NULL, the java service
that calls this proc (via ibatis) takes 10 seconds (on a 60 concurrent
user load). This 10 seconds is because of multiple FULL GCs.

But, when we change to a hardcoded string 'xyz', we see the same service
return in less 500 ms (for the same load)

 

Is this a bug or are we configuring ibatis the incorrect way? Any help
is much appreciated.

 

Please note, we are a Spring 3.0 based java web app, running on Weblogic
9.2 MP3.We are using IBATIS for JAVA version 2.3.0

 

We have checked and ensured that our JVM settings are appropriate
(around 712MB) and the amount of data returned is very little ( 2
records per call, each with 10 string columns).

 

Here is an example sproc and the ibatis mapping xml to illustrate our
setting:

OPEN cursor FOR 

SELECT 

First_name as FIRSTNAME,

Last_name as LASTNAME,

            NULL as DESIGNATION

FROM

            EMPLOYEE

 

Now the resultMap would look like this:

<resultMap id="getEmployees" class="employeesDTO" >

                                    <result property="firstName"
column="FIRSTNAME" />

                                    <result property="lastName"
column="LASTNAME" />                              

                                    <result property="desig"
column="DESIGNATION" />

</resultMap>

All the three java properties are of java String type.

 

Thanks,

Raga

 


---------------------------------------------------------------------------------------------

This message, including any attachments, contains confidential information 
intended for a specific individual and purpose, and is intended for the 
addressee only. Any unauthorized disclosure, use, dissemination, copying, or 
distribution of this message or any of its attachments or the information 
contained in this e-mail, or the taking of any action based on it, is strictly 
prohibited. If you are not the intended recipient, please notify the sender 
immediately by return e-mail and delete this message.

---------------------------------------------------------------------------------------------

Reply via email to