<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    jBPM5 timers and persistence
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/st_patriick">Vlastimil Menčík</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/597936#597936">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>The timers in the current implementation (jBPM 5.0.0) cannot outlive the knowledge session they were started in. Correct me if I'm wrong, but this is because the TimerService, that is used to schedule timer events, is bound to the knowledge session and is destroyed when the session is disposed.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This makes the timers IMHO basically incompatible with process persistence.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Trivial example is a process with a delay timer (from Esteban's JBPM-Samples):</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/2-597936-16097/delayTimer.PNG"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/2-597936-16097/450-51/delayTimer.PNG </span></a></p><ol><li>Knowledge session is created.</li><li>The process is started, waits on the timer and its state is persisted.</li><li>The session is immediately disposed (before the timer event was triggered).</li></ol><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In this case, the timer is never triggered and the process stays in the waiting state forever.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>A more practical example would be time-based escalations in long-lived processes. See Esteban's example:&#160; <a class="jive-link-message-small" href="http://community.jboss.org/message/595104#595104">http://community.jboss.org/message/595104#595104</a>.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Imagine a process where a task must be completed within a week, if not, an escalation is triggered. Naturally we would use process persistence in this scenario. The problem is that the knowledge sessions are short-lived (relatively to the process) and are disposed immediately after process instances are started. Certainly before the escalation timer would expire.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Is there a way how to combine timers with persistence at this time? And if not, are there plans to support this scenario in some future release?</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/597936#597936">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>