ibatis-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raghavendran Chellappa" <raghavendr...@virtusa.com>
Subject Increased memory footprint while mapping explicit NULL columns of a cursor to java String property
Date Mon, 31 Aug 2009 15:32:21 GMT


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

OPEN cursor FOR 


First_name as FIRSTNAME,

Last_name as LASTNAME,

            NULL as DESIGNATION




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" />


All the three java properties are of java String type.






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.


View raw message