<?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: Running workflows asynchronously in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206791#M159921</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Now I'm convinced that I have to forget the async parameter, so I am studying another solution based on what I read on &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/content/java-service-task-passivate-wout-receive-task" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/content/java-service-task-passivate-wout-receive-task&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First of all, my services do not implement JavaDelegate but ActivityBehavior (in fact they extend AbstractBpmnActivityBehavior)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In the "void execute(ActivityExecution execution)" method, two possibilities:&lt;/SPAN&gt;&lt;BR /&gt;&lt;OL style="list-style-type:upper-roman;"&gt;&lt;LI&gt;The service is not a long running task&lt;/LI&gt;[java]&lt;BR /&gt;public void execute(ActivityExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doShortProcessing();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.leave(execution);&lt;BR /&gt;}&lt;BR /&gt;[/java]&lt;BR /&gt;&lt;LI&gt;The service is a long running task&lt;/LI&gt;[java]&lt;BR /&gt;public void execute(ActivityExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Runnable r = new Runnable() {&lt;BR /&gt;&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; public void run() {&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; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp; doLongProcessing();&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; processEngine.getRuntimeService().signal(execution.getId());&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; } catch (Exception 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;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&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; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Thread(r).start();&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; leave(execution);&lt;BR /&gt;}&lt;BR /&gt;[/java]&lt;/OL&gt;&lt;SPAN&gt;This solution seems to work fine. What do you think of it? Do you find any cons? Is it safer in a transnational point of view?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Philippe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 24 Jun 2015 09:14:44 GMT</pubDate>
    <dc:creator>pmesmeur</dc:creator>
    <dc:date>2015-06-24T09:14:44Z</dc:date>
    <item>
      <title>Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206784#M159914</link>
      <description>Hello,I would like to use Activiti to run workflows that possibly contain long service tasks (that may run for more than one minute). Such workflows would be called via&lt;IMG id="smileytongue" class="emoticon emoticon-smileytongue" src="https://migration33.stage.lithium.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;rocessEngine.getRuntimeService().startProcessInstanceByKey(…);‍‍‍However, the method startProcessInstanceByKey() will return/leave</description>
      <pubDate>Tue, 16 Jun 2015 11:49:17 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206784#M159914</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-16T11:49:17Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206785#M159915</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I my 3rd point, a null timer would certainly solve my problem as well as a "dummy" empty async service task&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Jun 2015 11:55:46 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206785#M159915</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-16T11:55:46Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206786#M159916</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Instead of adding a dummy async task, what you can do is to create a custom parser handler that forces all "long running tasks" to be asynchronous. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That leads to the problem of how would you inform the parser when a task is "long" or not. One option is to elect one of the activities types for this specific purpose. The script task or system task are good candidates, since they´re the ones that usually contain custom logic that can take longer to execute.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Be aware though that this kind of implicit behaviour must be fully understood by the person who is designing the BPMN process, since it changes the transaction contract associated with the execution of consecutive activities.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jun 2015 04:51:43 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206786#M159916</guid>
      <dc:creator>pmsevestre</dc:creator>
      <dc:date>2015-06-17T04:51:43Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206787#M159917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Philippe,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;to answer your questions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Is the a difference regarding the database between sync and async task?&lt;/BLOCKQUOTE&gt;&lt;SPAN&gt;Yes there is. (Async = create job and execute it)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;If yes, do you think it has a high impact on the performance?&lt;/BLOCKQUOTE&gt;&lt;SPAN&gt;The performance impact is minimal with AsyncExecutor. DefaultJobExecutor performance impact is not huge too. (it really depends on your requirements)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Possible issue of your proposal is that "long" service call is executed in transaction too. (transaction can timeout during the service call).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Another issue is that one thread is blocked for +/- one minute during the service call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would prefer another approach. &lt;/SPAN&gt;&lt;BR /&gt;&lt;OL style="list-style-type:decimal;"&gt;&lt;LI&gt;Just call the service and get response from the service that request was accepted. It should be fast.&lt;/LI&gt;&lt;LI&gt;When service finishes its work it could send the signal (message) to the activiti engine to continue in the process execution.&lt;/LI&gt;&lt;/OL&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jun 2015 06:23:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206787#M159917</guid>
      <dc:creator>martin_grofcik</dc:creator>
      <dc:date>2015-06-17T06:23:55Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206788#M159918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you Martin for this pertinent answer. I would like to clarify what you propose in order to be sure that I correctly get what you mean&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As I understand, you propose that, for processing a long running service, I create a dedicated thread and temporarily suspend the execution of my workflow. In the new thread I do the (long) work and once it is completed, I send a message to the activiti engine in order it restarts the execution of the workflow. So I don't rely on async property anymore. Am I right?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If yes, I would like to know the cleaner way to suspend the service task? Has my long-running-service to extend ActivityBehavior instead of JavaDelegate? If yes once again, I'll have to make the BlueprintELResolver able to work with ActivityBehavior (not only with JavaDelegate)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Philippe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jun 2015 07:11:52 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206788#M159918</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-17T07:11:52Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206789#M159919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you pmsevestre for your consideration.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;"That leads to the problem of how would you inform the parser when a task is long or not"&lt;/EM&gt;&lt;SPAN&gt;: this is a point I already considered and which is easily doable, at least in the context of my project. To be short, in the function executeParse() of my own ServiceTaskParseHandler, I have this information:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public class MyOwnServiceTaskParseHandler extends ServiceTaskParseHandler {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void executeParse(BpmnParse bpmnParse, ServiceTask serviceTask) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&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; boolean isAsync = hasTaskToBeAsync(serviceTask);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bpmnParse.getCurrentActivity().setAsync(isAsync);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&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; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Doing that, I can easily make my long running tasks being async so startProcessInstanceByKey() will now be async, i.e. it will not wait for the end of my long running task before returning&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now, my main question the impact of making workflows "&lt;/SPAN&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;SPAN&gt; having long running tasks" asynchronous too, in order they are treated consistently with workflows "having long running tasks"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;"Be aware though that this kind of implicit behaviour must be fully understood by the person who is designing the BPMN process, since it changes the transaction contract associated with the execution of consecutive activities"&lt;/EM&gt;&lt;SPAN&gt;: one of my objectives is that the BPMN process designer is not impacted at all with any implementation detail. Can you please tell me more about the changes regarding "transaction contract associated with the execution of consecutive activities"?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One again, thank you very much&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Philippe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jun 2015 07:12:50 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206789#M159919</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-17T07:12:50Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206790#M159920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Philippe,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When you make any service / script task asynchronous, this means a job will be created in the Activiti database and it will be execute asynchronously in a different transaction. So if the task fails it will not rollback to previous state in the process instance, but it will retry the job. &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>Wed, 17 Jun 2015 10:34:40 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206790#M159920</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2015-06-17T10:34:40Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206791#M159921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Now I'm convinced that I have to forget the async parameter, so I am studying another solution based on what I read on &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/content/java-service-task-passivate-wout-receive-task" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/content/java-service-task-passivate-wout-receive-task&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First of all, my services do not implement JavaDelegate but ActivityBehavior (in fact they extend AbstractBpmnActivityBehavior)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In the "void execute(ActivityExecution execution)" method, two possibilities:&lt;/SPAN&gt;&lt;BR /&gt;&lt;OL style="list-style-type:upper-roman;"&gt;&lt;LI&gt;The service is not a long running task&lt;/LI&gt;[java]&lt;BR /&gt;public void execute(ActivityExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doShortProcessing();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.leave(execution);&lt;BR /&gt;}&lt;BR /&gt;[/java]&lt;BR /&gt;&lt;LI&gt;The service is a long running task&lt;/LI&gt;[java]&lt;BR /&gt;public void execute(ActivityExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Runnable r = new Runnable() {&lt;BR /&gt;&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; public void run() {&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; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp; doLongProcessing();&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; processEngine.getRuntimeService().signal(execution.getId());&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; } catch (Exception 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;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&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; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Thread(r).start();&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; leave(execution);&lt;BR /&gt;}&lt;BR /&gt;[/java]&lt;/OL&gt;&lt;SPAN&gt;This solution seems to work fine. What do you think of it? Do you find any cons? Is it safer in a transnational point of view?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Philippe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Jun 2015 09:14:44 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206791#M159921</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-24T09:14:44Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206792#M159922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Philippe,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't see an issue with this approach. Should work fine if this is what you are looking for.&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>Wed, 24 Jun 2015 20:11:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206792#M159922</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2015-06-24T20:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206793#M159923</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;now that I have an acceptable solution to launch my long-running task asynchronously in a dedicated thread, I want - when an exception or a timeout occurs - to forward it to the activiti engine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;According to you, what is the best way a do this? I tried to do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[java]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;processEngine.getRuntimeService().signalEventReceived("timeout", execution.getId());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/java]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but unfortunately I did not succeed to subscribe pro grammatically to "timeout" signal&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your precious help&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Philippe&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Jun 2015 07:36:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206793#M159923</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-25T07:36:03Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206794#M159924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;"but unfortunately I did not succeed to subscribe pro grammatically to "timeout" signal"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What do you mean here? Of course, the signal needs to be modeled in the process, but is that a problem?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jun 2015 19:36:48 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206794#M159924</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2015-06-30T19:36:48Z</dc:date>
    </item>
    <item>
      <title>Re: Running workflows asynchronously</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206795#M159925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I was trying obscure things. I won't spent time to explain clearly what I wanted to do, because now that I have a deeper view, I realize that it was not clear at all &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My main need was to forward an exception from my Service running in a dedicated thread to the engine. After I wrote my last comment, I found &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/comment/30075#comment-30075" rel="nofollow noopener noreferrer"&gt;the following page&lt;/A&gt;&lt;SPAN&gt;… and it seems that you already know the rest of the story &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Philippe &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jun 2015 21:19:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/running-workflows-asynchronously/m-p/206795#M159925</guid>
      <dc:creator>pmesmeur</dc:creator>
      <dc:date>2015-06-30T21:19:00Z</dc:date>
    </item>
  </channel>
</rss>

