<?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 Problem with secondary parent associations in cluster in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139585#M97810</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a problem with parent associations in my clustered setup (Alfresco 2.1 Community on a JBoss 4.0.5 2-node cluster): newly created nodes and their (primary) parent associations are replicated correctly. Secondary parent assocs are not.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;HibernateNodeDaoServiceImpl.java look like this in 2.1 Community Final (line s from 990 to 1003):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&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; for (Long parentAssocId : parentAssocIds)&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; {&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; ChildAssoc parentAssoc = (ChildAssoc) getSession().get(ChildAssocImpl.class, parentAssocId);&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 (parentAssoc == 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; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The cache is out of date, so just repopulate it&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parentAssoc = 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&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; }&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; else&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; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parentAssocs.add(parentAssoc);&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; }&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; }&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;I suppose the assigment "parentAssoc = null" should be "parentAssocs = null" and, if I'm right, that typo prevents assocs that are no longer in the DB from being expired from cache. What I can't figure out is whether this bug also influences correct propagation of new secondary child associations to other cluster nodes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also found a JIRA issue related to this part of the code: &lt;/SPAN&gt;&lt;A href="http://issues.alfresco.com/browse/AR-1743" rel="nofollow noopener noreferrer"&gt;http://issues.alfresco.com/browse/AR-1743&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any ideas?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(Please note that after a fresh restart of the cluster I can see all the associations from all of the nodes.)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 21 Sep 2007 12:06:31 GMT</pubDate>
    <dc:creator>francescof</dc:creator>
    <dc:date>2007-09-21T12:06:31Z</dc:date>
    <item>
      <title>Problem with secondary parent associations in cluster</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139585#M97810</link>
      <description>Hi,I have a problem with parent associations in my clustered setup (Alfresco 2.1 Community on a JBoss 4.0.5 2-node cluster): newly created nodes and their (primary) parent associations are replicated correctly. Secondary parent assocs are not.HibernateNodeDaoServiceImpl.java look like this in 2.1 Co</description>
      <pubDate>Fri, 21 Sep 2007 12:06:31 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139585#M97810</guid>
      <dc:creator>francescof</dc:creator>
      <dc:date>2007-09-21T12:06:31Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with secondary parent associations in cluster</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139586#M97811</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;After deeper investigations I think I have identified the cause of the problem. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I noticed that, after a secondary child assoc creation no transaction is recorded on alf_transaction because newChildAssoc() and deleteChildAssocInternal() in HibernateNodeDaoServiceImpl don't update NodeStatus for the modified node. This way the remote node of the cluster doesn't know anything about the new child association and thus it doesn't update its lucene indexes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A quick hack that seems to do the job is to add (&lt;/SPAN&gt;&lt;STRONG&gt;with a check to execute this code ONLY on non-primary child-assocs&lt;/STRONG&gt;&lt;SPAN&gt;) to newChildAssoc() and deleteChildAssocInternal():&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;NodeStatus nodeStatus = getNodeStatus(nodeRef, true);&lt;BR /&gt;&lt;BR /&gt;nodeStatus.getTransaction().setChangeTxnId(AlfrescoTransactionSupport.getTransactionId());&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;This way alf_transaction and alf_node_status tables get updated, the remote node updates its lucene indexes and the secondary association is correctly viewable on the remote node web client.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My concern is: &lt;/SPAN&gt;&lt;STRONG&gt;is it possible that this change carries dangerous side effects?&lt;/STRONG&gt;&lt;SPAN&gt; I'm thinking about possible index corruption. I'm also aware that the hack described is not the best and cleanest solution for the problem. Have you any suggestions for improvements?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Bye.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2007 16:30:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139586#M97811</guid>
      <dc:creator>francescof</dc:creator>
      <dc:date>2007-09-25T16:30:02Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with secondary parent associations in cluster</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139587#M97812</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You are correct on all counts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The node status updates are all in the NodeService implementation and should really be at that level i.e. &lt;/SPAN&gt;&lt;STRONG&gt;nodeDaoService.recordChangeId(nodeRef);&lt;/STRONG&gt;&lt;SPAN&gt;.&amp;nbsp; I'll have to play with it a bit to check if there are any further issues.&amp;nbsp; &lt;/SPAN&gt;&lt;A href="http://issues.alfresco.com/browse/AR-1777" rel="nofollow noopener noreferrer"&gt;http://issues.alfresco.com/browse/AR-1777&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2007 13:08:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/problem-with-secondary-parent-associations-in-cluster/m-p/139587#M97812</guid>
      <dc:creator>derek</dc:creator>
      <dc:date>2007-09-27T13:08:13Z</dc:date>
    </item>
  </channel>
</rss>

