Open topic with navigation

TIBCO BusinessEvents® Enterprise Edition 6.3.1

# Time to Live and Expiry Actions

Events have a time to live (TTL) setting. Events cannot be modified after they are initially asserted, but they can continue to trigger rules during their time to live.

Global Variables are supported for Simple Event, TTL and Timer Event, Repeat every Values.

When Cache object management is used, events with a sufficiently long time to live (TTL) setting are cached.

With Cache OM types, the TTL period is re-evaluated when an event is reloaded from cache. For example, if the TTL is 60 minutes and the event is reloaded 30 minutes after it is asserted, then its remaining TTL is 30 minutes.

Set the event’s time to live so that it can trigger the rules you intend. If a rule correlates different events, you must ensure that those event instances are all in the Rete network concurrently. Time to live options are as follows:

- Zero (0): the event expires after the completion of the first RTC cycle. Do not set to 0 if you want to correlate the event with a future event or other future occurrences of this event, as explained below.
- One or higher (>0): the event expires after the specified time period has elapsed. The TTL timer starts at the end of the action block of the rule or preprocessor function in which the event is first asserted.
- A negative integer (<0): the event does not expire, and must be explicitly consumed.

Note: Cache OM and Event Deletion with Cache OM, events are locally consumed when Event.consumeEvent() is called, but the event is not removed from cache until the post RTC phase.

## Example

Consider the following example:

- A process sends eventA, eventB, and eventC.
- The TTL for all three simple events is 0.
- Rule 1 has the condition: `eventA.id == eventB.id`.
- Rule 2 has the condition: `eventC.id != null`.

At runtime, TIBCO BusinessEvents behaves as follows:

- TIBCO BusinessEvents receives `eventA`. Because there is no `eventB` in the Rete network, `eventA` doesn’t trigger any rules. TIBCO BusinessEvents consumes `eventA`.
- TIBCO BusinessEvents receives `eventB`, but `eventA` has been consumed — there is no `eventA` in the Rete network. So `eventB` does not trigger any rules. TIBCO BusinessEvents consumes `eventB`.
- TIBCO BusinessEvents receives `eventC`, which triggers Rule 2 because Rule 2 depends only on `eventC`.

To trigger Rule 1, you must configure the time to live for `eventA` and `eventB` to ensure that both events will be in the Rete network concurrently. You can trigger Rule 1 in these ways:

- If you know that `eventA` is sent before eventB, set the TTL for `eventA` to a time greater than the maximum period that can elapse between sending eventA and sending `eventB`.
- If you do not know the order in which `eventA` and `eventB` are sent, set the TTL for both simple events to a time greater than the maximum time between the occurrence of the two simple events.

Subtopics

Did you find this helpful?

YesNo
Great!
Thanks for taking the time to give us some feedback.
Sorry about that

Why wasn't this helpful? (check all that apply)

Could not find what I was looking for
Instructions confusing or unclear
Instructions did not work

Want to tell us more?

Please select at least one option or provide details about the issue!!

Error occurred while submitting feedback.

Error2 occurred while submitting feedback.

TIBCO BusinessEvents® Enterprise Edition

Copyright © 2004-2024. Cloud Software Group, Inc. All Rights Reserved.