ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "K. Arnold" <akarn...@comcast.net>
Subject ResultHandler - OutOfMemory Exception
Date Mon, 14 Sep 2009 19:47:43 GMT

I am trying to iterate over a result set of 2million records, for a large
bulk load and transformation into a new ODS.  It appears that I am getting
an OutOfMemoryException because the DefaultResultSetHandler is caching the
object in the nestedResultObjects property.  Is there some property I should
set or statement/ method call I should be using that will allow me to
process one line at a time and not have the nestedResultObjects store each

My goal:
* Grab a row
* Send it to be processed
* Once processed, move on to the next row.
Note: Once a row is processed I no longer need a tie back to the object.

I have included the custom ResultHandler, the unit test and the
configuration file.  Please let me know if you need other information.

package com.primetherapeutics.benplanmgr.entity.rxclaim;

import org.apache.ibatis.executor.result.ResultContext;
import org.apache.ibatis.executor.result.ResultHandler;
import org.apache.log4j.Logger;

 * @author kjarnold
public class GroupEligibilityResultHandler implements ResultHandler {
	Logger logger = Logger.getLogger(GroupEligibilityResultHandler.class);
	int count = 0;
	public void handleResult(ResultContext context) {
		if(context.getResultObject() != null) {
	public int getCount() {
		return count;


	public void getGroupElibibilitiesByResultHandler() {
		Map<String, String> parameterMap = new HashMap<String, String>();
		parameterMap.put("gelThruDate", "1090101");
		parameterMap.put("addDate", "1090911");
		parameterMap.put("chgDate", "1090911");
		parameterMap.put("planDate", "1090101");
		try {
			GroupEligibilityResultHandler handler = new

					parameterMap, handler);
		} finally {

Here are my mapping files:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" 
	<setting name="multipleResultSetsEnabled" value="false"/>
	<setting name="defaultExecutorType" value="BATCH"/>

View this message in context: http://www.nabble.com/ResultHandler---OutOfMemory-Exception-tp25442025p25442025.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.

To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org

View raw message