I have an application built in Spring Integration which has lots of Store procedure calls (Using int-jdbc:stored-proc-outbound-gateway) and Prepared-statement calls (Using int-jdbc:outbound-gateway).
I am experiencing heap-size issue couple of times. Instead of increasing the heap size, I have taken heap dump and trying to analyze them using memory-analysis plugging in Eclipse. The report is showing me following two possible leakage,
382 instances of "oracle.jdbc.driver.T4CCallableStatement", loaded by "org.jboss.modules.ModuleClassLoader @ 0xb0bee3c8" occupy 225,949,088 (50.00%) bytes. These instances are referenced from one instance of "java.lang.Object[]", loaded by "" Keywords oracle.jdbc.driver.T4CCallableStatement java.lang.Object[]
org.jboss.modules.ModuleClassLoader @ 0xb0bee3c8
295 instances of "oracle.jdbc.driver.T4CPreparedStatement", loaded by "org.jboss.modules.ModuleClassLoader @ 0xb0bee3c8" occupy 49,342,360 (10.92%) bytes. These instances are referenced from one instance of "java.lang.Object[]", loaded by "" Keywords java.lang.Object[] oracle.jdbc.driver.T4CPreparedStatement
org.jboss.modules.ModuleClassLoader @ 0xb0bee3c8
Can anyone please help me? What can cause these problems? Configuration for int-jdbc:outbound-gateway is
<int-jdbc:outbound-gateway id="test1"
data-source="dataSource" request-channel="testchannel1"
reply-channel="testchannel2" query="select * from EMP"
row-mapper="testMapper" max-rows-per-poll="0"
requires-reply="false">
<int-jdbc:request-handler-advice-chain>
<bean class="com..service.NullReplyAdvice" />
</int-jdbc:request-handler-advice-chain>
</int-jdbc:outbound-gateway>
Configuration for int-jdbc:outbound-gateway
<int-jdbc:sql-parameter-definition
name="P_LIST" direction="OUT" type="#{T(oracle.jdbc.OracleTypes).ARRAY}"
type-name="T_LIST" return-type="sqlReturnArray" />
<int-jdbc:sql-parameter-definition
name="RESPONSE_CODE" direction="OUT" type="VARCHAR" />
<int-jdbc:sql-parameter-definition
name="RESPONSE_DESC" direction="OUT" type="VARCHAR" />
<int-jdbc:parameter name="USER_NUMIN" expression="payload.userId" />
<int-jdbc:parameter name="STORE_NUMIN" expression="payload.storeId" />
<int-jdbc:parameter name="ZONE_NUMIN" expression="payload.zoneId" />
<int-jdbc:parameter name="SLOT_NUMIN" expression="payload.slotTodelete" />
<int-jdbc:parameter name="RANGE_COUNTIN" value="0" />
<int-jdbc:parameter name="APP_PARAMIN" value="DELETE" />
<int-jdbc:request-handler-advice-chain>
<bean class="com.test.HttpRequestInterceptor"></bean>
</int-jdbc:request-handler-advice-chain>
</int-jdbc:stored-proc-outbound-gateway>