[email protected] wrote:
> Author: hansbak
> Date: Thu Mar 25 02:28:25 2010
> New Revision: 927256
> 
> URL: http://svn.apache.org/viewvc?rev=927256&view=rev
> Log:
> when exporting all data, an error message in the log advices to put the the 
> function in a transaction. also added extra commits to try to solve the 
> permgen problem. it is better now, but not solved completely
> 
> Modified:
>     
> ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java
> 
> Modified: 
> ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java?rev=927256&r1=927255&r2=927256&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java 
> (original)
> +++ 
> ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java 
> Thu Mar 25 02:28:25 2010
> @@ -77,6 +77,7 @@ import org.ofbiz.entity.util.EntityDataL
>  import org.ofbiz.entity.util.EntityListIterator;
>  import org.ofbiz.entity.util.EntitySaxReader;
>  import org.ofbiz.entityext.EntityGroupUtil;
> +import org.ofbiz.entity.transaction.TransactionUtil;
>  import org.ofbiz.security.Security;
>  import org.ofbiz.service.DispatchContext;
>  import org.ofbiz.service.LocalDispatcher;
> @@ -508,6 +509,7 @@ public class WebToolsServices {
>                              continue;
>                          }
>  
> +                        TransactionUtil.begin();
>                          // some databases don't support cursors, or other 
> problems may happen, so if there is an error here log it and move on to get 
> as much as possible
>                          try {
>                              values = delegator.find(curEntityName, null, 
> null, null, me.getPkFieldNames(), null);
> @@ -527,6 +529,10 @@ public class WebToolsServices {
>                              do {
>                                  value.writeXmlText(writer, "");
>                                  numberWritten++;
> +                                if (numberWritten % 500 == 0) {
> +                                    TransactionUtil.commit();
> +                                    TransactionUtil.begin();
> +                                }
>                              } while ((value = (GenericValue) values.next()) 
> != null);
>                              writer.println("</entity-engine-xml>");
>                              writer.close();
> @@ -535,6 +541,7 @@ public class WebToolsServices {
>                              results.add("["+fileNumber +"] [---] " + 
> curEntityName + " has no records, not writing file");
>                          }
>                          values.close();
> +                        TransactionUtil.commit();
>                      } catch (Exception ex) {
>                          if (values != null) {
>                              try {
> 

Bad transaction pattern.  boolean beganTx = TransactionUtil.begin();

Reply via email to