Author |
Message
|
DirtyHowi |
Posted: Mon Feb 24, 2014 7:15 am Post subject: TimeoutNotification node fire at a particular time |
|
|
Novice
Joined: 17 Feb 2014 Posts: 22
|
Rather than on an interval.
I dont see in the properties where i can set a "time" for the timeout notification node to fire, i see an interval.
Do i need to set up a transaction start monitor event to get it to fire at a particular time during the day? i have the need to update a full catalog from a vendor but only want to do so at night at say 2030 hours, takes about 15 minutes to load the DB from there with the information.
I've been reading the IBM MB help to no avail.
TIA |
|
Back to top |
|
 |
Vitor |
Posted: Mon Feb 24, 2014 7:32 am Post subject: Re: TimeoutNotification node fire at a particular time |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
DirtyHowi wrote: |
I dont see in the properties where i can set a "time" for the timeout notification node to fire, i see an interval. |
This is because a "timeout" is typically expressed as an interval, i.e. the period after which somthing is to happen.
DirtyHowi wrote: |
Do i need to set up a transaction start monitor event to get it to fire at a particular time during the day? |
Interesting; how would you propose to wire that? The monitor event is fired by the trasnaction actually starting, so how would you get the production of the event to fire the transaction? Do you propose some kind of cascade where the flow is triggered by the event from the previous transaction & checks the time?
DirtyHowi wrote: |
i have the need to update a full catalog from a vendor but only want to do so at night at say 2030 hours, takes about 15 minutes to load the DB from there with the information. |
As I see it, you have these main options:
- use the OS (cron or equivalent) to start your flow at the relevant time and stop it once it's done
- use the OS (cron or equivalent) to drop a message onto a queue and use that to trigger your flow
- on WMBv8 or below use the IA9Z support pack to schedule the flow
- on IIBv9 use WFM to schedule the flow
Other and possibly better solutions are undoubtably possible _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
smdavies99 |
Posted: Mon Feb 24, 2014 9:45 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
You CAN make this happen but it takes some work, ie, some coding.
You fire the Timer to get the flow going and then reset the paramters to start at the desired time and with the desired interval.
I use this to 'fix' the flow that generates all the timed events in my systems. IT does not matter when the flow starts the repeat events all start every minute on the minute. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Feb 24, 2014 9:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
smdavies99 wrote: |
You CAN make this happen but it takes some work, ie, some coding.
You fire the Timer to get the flow going and then reset the paramters to start at the desired time and with the desired interval.
I use this to 'fix' the flow that generates all the timed events in my systems. IT does not matter when the flow starts the repeat events all start every minute on the minute. |
If you're trying it (as the OP is) to generate an interval not of 60 seconds syncronized to the minute, but an interval of 24 hours syncronized to the minute, what would happen if someone (or something) restarted the broker / EG / server during the 24 hour wait? Wouldn't the interval restart with 24 hours from whenever the restart happened to be? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Gralgrathor |
Posted: Mon Feb 24, 2014 10:46 am Post subject: |
|
|
Master
Joined: 23 Jul 2009 Posts: 297
|
I like a cron4j-like solution for this. Basically a database of timing rules interpreted by a flow at regular intervals to see whether there's an upcoming event. The database can contain repeating or one-time rules. _________________ A measure of wheat for a penny, and three measures of barley for a penny; and see thou hurt not the oil and the wine. |
|
Back to top |
|
 |
smdavies99 |
Posted: Mon Feb 24, 2014 12:21 pm Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Vitor wrote: |
If you're trying it (as the OP is) to generate an interval not of 60 seconds syncronized to the minute, but an interval of 24 hours syncronized to the minute, what would happen if someone (or something) restarted the broker / EG / server during the 24 hour wait? Wouldn't the interval restart with 24 hours from whenever the restart happened to be? |
Good point. One system I support has a timer that runs every 10 minutes. The only time you may miss the times event is if there is a restart less than 10 minutes before the due time.
So with a 1 minute repeat, I have a DB Table listing the times of the events that are not bound to the 1 minute cycle. The table is read at startup and held in a shared row. An example of one of these is to send a message to be sent to a flow at 00:01:00 and only that time of the day.
As I said, properly designed it all works.
IT does rely on the initial timer to fire at the time the flow is started to allow the re-sync of the time to the minute on the clock.
A solution can be found to the OP question. It just takes a bit of thought and trying a few things out. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
|