<?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: Synchronized Access to ServiceTask in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132571#M93126</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is this for a single JVM? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Even so, it won't work. The execution is an object that is created on the fly, and thus you will have multiple similar objects for the same database row.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You will need a shared object instance to make it work that you share among the invocations.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 30 Aug 2014 17:39:08 GMT</pubDate>
    <dc:creator>jbarrez</dc:creator>
    <dc:date>2014-08-30T17:39:08Z</dc:date>
    <item>
      <title>Synchronized Access to ServiceTask</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132566#M93121</link>
      <description>If I have a serviceTask that is always kicked off by various different nodes in the workflow (see the "Find Unfinished" task in the attachment) … but I don't want multiple threads to run the service task at exactly the same time (because they wouldn't want to make two copies for the same unfinished</description>
      <pubDate>Wed, 24 Jul 2013 01:13:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132566#M93121</guid>
      <dc:creator>yangyang_qian</dc:creator>
      <dc:date>2013-07-24T01:13:00Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronized Access to ServiceTask</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132567#M93122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;There is no BPMN construct for this. Java based synchronized (probably within the execute()) method would be a solution&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Jul 2013 09:51:37 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132567#M93122</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2013-07-24T09:51:37Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronized Access to ServiceTask</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132568#M93123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ok thanks, I guess something like the following would work then? (assuming that we can get our hands on a singleton ToyDb object and that the workflow engine only needs to run on one jvm)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import java.util.List;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import org.activiti.engine.delegate.DelegateExecution;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import org.activiti.engine.delegate.JavaDelegate;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;public class ToyMaker implements JavaDelegate {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; private static final ToyDb toys = ToyDb.getSingeltonInstance(); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; @Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; public void execute(DelegateExecution delegExec) throws Exception {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; synchronized(toys) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; // gets list of unfinished toys from somewhere …&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; List&amp;lt;Toy&amp;gt; needFinishing = toys.getUnfinished();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; // … then do more stuff with the toys&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for (Toy toy : needFinishing) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; toy.applyVarnish();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;… but this particular solution wouldn't work properly if the activiti engine was deployed across multiple jvms right? (i.e. if we eventually need two engine deployments pointed to one db)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Jul 2013 14:16:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132568#M93123</guid>
      <dc:creator>yangyang_qian</dc:creator>
      <dc:date>2013-07-24T14:16:13Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronized Access to ServiceTask</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132569#M93124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That's correct, this only works within one jvm.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Jul 2013 11:34:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132569#M93124</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2013-07-25T11:34:30Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronized Access to ServiceTask</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132570#M93125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I try to use process variable, instead of DB-based mutex, to implement the same thing but it did not work during a concurrency test. The biz logic always sneaks through and executed more than once&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//////////////////////////////////&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public void execute(DelegateExecution execution) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; synchronized (execution) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Boolean done = (Boolean) execution.getVariable("ConclusionDone");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if ( done) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; execution.setVariable("ConclusionDone", true);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; // do biz logic&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does that mean the variable attached to the execution/process committed in an asynchronized approach. Can someone confirm it? &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Aug 2014 00:49:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132570#M93125</guid>
      <dc:creator>gordonko</dc:creator>
      <dc:date>2014-08-26T00:49:33Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronized Access to ServiceTask</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132571#M93126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is this for a single JVM? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Even so, it won't work. The execution is an object that is created on the fly, and thus you will have multiple similar objects for the same database row.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You will need a shared object instance to make it work that you share among the invocations.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 30 Aug 2014 17:39:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/synchronized-access-to-servicetask/m-p/132571#M93126</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2014-08-30T17:39:08Z</dc:date>
    </item>
  </channel>
</rss>

