none
Temporal sets RRS feed

  • Question

  • Hi,

    I have a question about the behaviour of temporal sets. Some background:

    In our environment we have a large number of contractors with the contract expiry date captured in the AD.  I use temporal sets to send the manager as well as the contractor an email on 7, 5, 3, 1 days before the contract expire, about the eminent expiry of the contract and the following disabling of the account. We automatically disable the account if the contract date was not extended

    I noticed that although the affected user is in a particular set the workflow on the set is not fired by the MPR.  I also noticed that for some reason the expiry time in the FIM portal is about 2 hours later than when the FIM_temporaleventsjob is scheduled to run i.e 01h00.  When I manually run this job, the mail is dispatched to the recipients.  In theory it means that if the job had run its course, the mail would in this case only be sent about 24hours after the event, but by then the user would have moved to the next set.  This can also be different for contractors, depending on the time their details are captured in AD.

    1. Is this behaviour correct?

    2. Will workflows on temporal sets only fire when the FIM_temporaleventsjob is run?

    3. Can I change the schedule on the FIM_temporaleventsjob to run more often, say 2 or 3 times a day without negatively impacting on performance.  I noticed in my environment the job takes about 13min to finish

    Any help is appreciated

    Thanks

    Johan Marais


    JkM6228

    Thursday, February 7, 2013 9:42 AM

Answers

  • "But on the other hand, considering what you explained about the tick above, would it not be more wise to change the schedule of this job to run only once at 00h00 which is better definition for "today" than at 01h00?"

    You can set it to 00h00 if that is more suitable and it doesn't really matter if you don't play with the hours (all your datetimes are 2013-01-01T00:00:00.000).

    AFAIK workflows based on temporal Sets are only activated when the job runs.


    • Marked as answer by Johan Marais Thursday, February 14, 2013 8:56 AM
    Wednesday, February 13, 2013 2:21 PM

All replies

  • From the article Managing SQL Server Agent Jobs in FIM 2010

    Managing FIM_TemporalEventsJob

    You can use the FIM_TemporalEvents agent job to check all sets and groups that are associated with a timed event and ensure that all affected objects are marked for processing. This job includes FIM_Maintain_GroupsStep and FIM_Maintain_SetsStep, which run to correct processing errors that may occur on rare occasions.

    Although changes are committed immediately each time that a request is processed, it is possible for parallel execution of requests operating against the same data to cause errors in final memberships of groups or sets. These steps serve as audit and correction tasks to ensure that the memberships are reviewed and corrected daily, if necessary.

    The job is scheduled to run once a day. We recommend that you keep this job enabled to ensure consistency of groups and sets.

    The time that this job is scheduled for represents the “tick” event that the entire system uses to evaluate time-based requests until the next time that this job runs. For example, assume that the job is scheduled for 1:00 a.m. If a Set Filter uses Today() in its logic, “Today” will resolve to 1:00 a.m. If you change the schedule, you also change the “tick”. Therefore, if you create a request at 8:00 a.m. and enter “add to set if this time is < Today()”, this would not be added to the set until the job runs. However, if it was “add to set if this time > Today()”, it will be added immediately because 8:00 a.m. is greater than 1:00 a.m.

    ---

    3. Start with 2 times and see how it goes. Probably that doesn't make a difference, but without seeing your environment, it's hard to say.

    Thursday, February 7, 2013 10:31 AM
  • Gaston,

    Thanks for your advice.  I have changed the schedule of the FIM_TemporalEventsJob to run three times during a 24 hour cycle without any noticeable impact in my environment currently - will keep on monitoring it. 

    But on the other hand, considering what you explained about the tick above, would it not be more wise to change the schedule of this job to run only once at 00h00 which is better definition for "today" than at 01h00?

    Are workflows based on temporal Sets only activated when this Job runs?

    Thanks

    Johan Marais


    JkM6228

    Wednesday, February 13, 2013 6:51 AM
  • "But on the other hand, considering what you explained about the tick above, would it not be more wise to change the schedule of this job to run only once at 00h00 which is better definition for "today" than at 01h00?"

    You can set it to 00h00 if that is more suitable and it doesn't really matter if you don't play with the hours (all your datetimes are 2013-01-01T00:00:00.000).

    AFAIK workflows based on temporal Sets are only activated when the job runs.


    • Marked as answer by Johan Marais Thursday, February 14, 2013 8:56 AM
    Wednesday, February 13, 2013 2:21 PM