<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Relationship between alf_transaction and index recovery in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249602#M202732</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Well as per my opinion you should not touch the transaction table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You should go for the full recovery only.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Because once your transaction table is messed up you will never be able to create the indexes again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Whenever you set recovery mode as Full indexing it will create all the indexes again so that would be better.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 01 Jun 2012 11:21:51 GMT</pubDate>
    <dc:creator>mitpatoliya</dc:creator>
    <dc:date>2012-06-01T11:21:51Z</dc:date>
    <item>
      <title>Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249601#M202731</link>
      <description>I've a repository with around 25000 documents, we have just uploaded all of them and executed some actions that set some metadata on them. "alf_node" table is around 145000 rows long and alf_transaction around 275000. In our setup we hace 2 Alfresco Community 4.0.d machines in cluster, using ehcache</description>
      <pubDate>Thu, 31 May 2012 16:15:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249601#M202731</guid>
      <dc:creator>iblanco</dc:creator>
      <dc:date>2012-05-31T16:15:02Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249602#M202732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Well as per my opinion you should not touch the transaction table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You should go for the full recovery only.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Because once your transaction table is messed up you will never be able to create the indexes again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Whenever you set recovery mode as Full indexing it will create all the indexes again so that would be better.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2012 11:21:51 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249602#M202732</guid>
      <dc:creator>mitpatoliya</dc:creator>
      <dc:date>2012-06-01T11:21:51Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249603#M202733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The problem is the full reindexing does not solve the problem. One of the transactions touches around 118000 nodes and after reindexing it for over and hour a Mysql exception fires:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at sun.reflect.GeneratedConstructorAccessor447.newInstance(Unknown Source)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.lang.reflect.Constructor.newInstance(Constructor.java:513)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.Util.getInstance(Util.java:384)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1663)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:472)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:410)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.node.index.AbstractReindexComponent$ReindexWorkerRunnable.run(AbstractReindexComponent.java:1008)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;I suspect this is related to the commit excedding the 50 seconds set in "innodb_lock_wait_timeout" but in our Mysql 5.1 server this parameter can only be applied as a server wide configuration and I don't feel very comfortable increasing this value in such a wide way. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We are developing a process that will execute as an Action in the repository and&amp;nbsp; will generate new transactions that will touch the nodes in batches of 50 nodes. That way the older transaction will no longer be related to the 110000 nodes, instead we will have many smaller transactions. It will be something like going file by file "changing something" but without changin anything that the user can see (applying a hidden aspect or something like that). I think this is something Alfresco manages so I guess that way the transaction table is not destroyed in any way. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this works. I'll let you know about it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2012 12:00:15 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249603#M202733</guid>
      <dc:creator>iblanco</dc:creator>
      <dc:date>2012-06-01T12:00:15Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249604#M202734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It did work as expected, many new transactions were created and the huge one dissapeared. After that the index rebuilding worked right.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Jun 2012 17:56:14 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249604#M202734</guid>
      <dc:creator>iblanco</dc:creator>
      <dc:date>2012-06-04T17:56:14Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249605#M202735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello iblanco&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We also have problems indexing big transactions on a 3.1 alfresco. Are you willing to share your code?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;kind regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jun 2012 09:09:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249605#M202735</guid>
      <dc:creator>thijslemmens</dc:creator>
      <dc:date>2012-06-05T09:09:04Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249606#M202736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We configure this class as an action:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;public class ForceReindexNodes extends ActionExecuterAbstractBase {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static final Logger LOG = Logger.getLogger(ForceReindexNodes.class); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static final String NAME = "reindex-node";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private ServiceRegistry serviceRegistry;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private BehaviourFilter behaviourFilter;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private int totalBatchNodes = 50;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private boolean removeAspect = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void setServiceRegistry(ServiceRegistry serviceRegistry) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.serviceRegistry = serviceRegistry;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void setBehaviourFilter(BehaviourFilter behaviourFilter) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.behaviourFilter = behaviourFilter;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void setTotalBatchNodes(int totalBatchNodes) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.totalBatchNodes = totalBatchNodes;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void setRemoveAspect(boolean removeAspect) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.removeAspect = removeAspect;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iterateChildren(actionedUponNodeRef);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected void iterateChildren(NodeRef nodeRef){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeService nodeService = serviceRegistry.getNodeService();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DictionaryService dictionaryService = serviceRegistry.getDictionaryService();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//We launch transactions not bigger than X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;ChildAssociationRef&amp;gt; childAssoc = nodeService.getChildAssocs(nodeRef);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;NodeRef&amp;gt; batch = new ArrayList&amp;lt;NodeRef&amp;gt;();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeRef node = null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QName type = null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int count = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Iterator&amp;lt;ChildAssociationRef&amp;gt; iter = childAssoc.iterator();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(iter.hasNext()){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count ++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(count == totalBatchNodes){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addAspect(batch);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;batch = new ArrayList&amp;lt;NodeRef&amp;gt;();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node = iter.next().getChildRef();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type = nodeService.getType(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(dictionaryService.isSubClass(type, ContentModel.TYPE_FOLDER)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iterateChildren(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;batch.add(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch (Throwable e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LOG.debug("Problem while trying to assign aspects to the nodes", e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;batch.add(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch (Throwable e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LOG.debug("Problem assigning aspect", e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private void addAspect(final List&amp;lt;NodeRef&amp;gt; list){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RetryingTransactionCallback&amp;lt;Void&amp;gt; txnFile = new RetryingTransactionCallback&amp;lt;Void&amp;gt;() {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Void execute() throws Throwable {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;behaviourFilter.disableBehaviour(ContentModel.ASPECT_AUDITABLE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeService nodeService = serviceRegistry.getNodeService();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Iterator&amp;lt;NodeRef&amp;gt; iter = list.iterator();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeRef nodeRef = null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LOG.info("Ejecutando el proceso a " + list.size() + " nodos");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(iter.hasNext()){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeRef = iter.next();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeService.addAspect(nodeRef, MyModel.ASPECT_REINDEX_NODE, null);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(removeAspect) nodeService.removeAspect(nodeRef, MyModel.ASPECT_REINDEX_NODE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TransactionService transactionService = serviceRegistry.getTransactionService();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transactionService.getRetryingTransactionHelper().doInTransaction(txnFile, false, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected void addParameterDefinitions(List&amp;lt;ParameterDefinition&amp;gt; paramList) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// No parameters needed.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Just start the repository setting index recoverty to "NONE" and execute this action against the folder that contains the problematic content. It will basically add an remove an empty aspect for each node under the folder but batching then in transactions no bigger than 50 nodes. We disable AUDITABLE aspect to avoid creation and modification date changes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;USE UNDER YOUR OWN RISK!!!! If an Alfresco Engineer sees this he/she might cry!!!! For us this solved the problem but it definitively looks as an horribly awful hack.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jun 2012 16:23:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249606#M202736</guid>
      <dc:creator>iblanco</dc:creator>
      <dc:date>2012-06-05T16:23:41Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249607#M202737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you. I have an issue on a system I'm trying to upgrade. It is a test system that is a clone of production. It is 3.1, so it is old. I probably need to change your code. We have 6000 000 nodes in the system and our biggest transaction contains 179 000 nodes. I wonder if it works on this scale. I'll let you know.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However, thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 12:58:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249607#M202737</guid>
      <dc:creator>thijslemmens</dc:creator>
      <dc:date>2012-06-06T12:58:42Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249608#M202738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;For us touching just a folder and letting it group in little transactions all the nodes under it worked well, and solved a transaction of 118000 nodes (after a couple of hours working), if you just touch the related nodes ( around 170000) it should work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If your nodes are not all under a certain path you should consider adapting the code so that instead of traversing the nodes it just takes the list of nodes from a text file in the repository (one nodeRef per line). You can generate the TXT file with a SQL query, upload it to the repo and execute the action against it…. much cleaner, it won't affect nodes that are not related.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you try this approach please share the code, it might be quite useful for us too. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 13:26:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249608#M202738</guid>
      <dc:creator>iblanco</dc:creator>
      <dc:date>2012-06-06T13:26:18Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249609#M202739</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I adapted the code and put it in our git repository. It needs the dummyModel.xml in the config folder and you can find an example configuration of the action there too.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can run the action on a node in the repository. The node should have on nodeRef per line.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can use the action in a script and supply the batch size and/or the list of NodeRefs objects. I have not tested this option yet, I use it&amp;nbsp; on a node in the repository. On 3.1, the disableBehaviour did not seem to work, but it is not important for me there. On 4.0 community it did work, so I suppose it was a bug in that version.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the git repository:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="https://bitbucket.org/xenit/transactionsplitter" rel="nofollow noopener noreferrer"&gt;https://bitbucket.org/xenit/transactionsplitter&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;all the best.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2012 09:19:40 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249609#M202739</guid>
      <dc:creator>thijslemmens</dc:creator>
      <dc:date>2012-06-21T09:19:40Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249610#M202740</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;thijslemmens great contribution! That's the kind of collaboration that makes open source rule!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much, I don't need it right now but I'll keep a copy in case we need it back again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All the best.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2012 11:39:32 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249610#M202740</guid>
      <dc:creator>iblanco</dc:creator>
      <dc:date>2012-06-21T11:39:32Z</dc:date>
    </item>
    <item>
      <title>Re: Relationship between alf_transaction and index recovery</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249611#M202741</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I had webscript to split the big transaction by borrowing partial codes. It did split transaction (with 240000 nodes) into small grouped transaction with 50 nodes. But It still takes long time to do full indexing with high CPU utilization and eating 82% memory, eventually got OutOfMemory error. (physical memory 8G, JVM maximum heap size 6G with more than 6 million contents). Would you let me know how many contents you have and what is the maximum heap size you set and your available physical memory. Thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Feb 2014 22:22:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/relationship-between-alf-transaction-and-index-recovery/m-p/249611#M202741</guid>
      <dc:creator>qsdmv</dc:creator>
      <dc:date>2014-02-18T22:22:18Z</dc:date>
    </item>
  </channel>
</rss>

