I have a requirement where i need to figure out the queuing mechanism in Broker.
There is an interface which runs everyday, it publishes a broker documents on broker and there are 10 subscribers to it.
Now, the thing is that 5 of them can subscribe whenever the document is available on broker. But the remaining 5 do not want until a certain time period.( like they want it at 8pm everyday).
How can we queue up the documents for these clients and release them at 8pm everyday? can we achieve this? Please reply. Thanks a lot!
What is the runtime environment of the 5 that want to do things at specific times? If it is Integration Server then you can use scheduled tasks to suspend and enable the triggers at the desired times.
While this is doable it can be error prone so you need to make sure the scheduled task runs appropriately so that the trigger isn’t enabled during the times you don’t want.
Keep in mind that Broker doesn’t “push” anything to any Broker client. Clients poll the queue. So if you can manage the client and when it checks its queues then you’re set.
Another approach is to leave the trigger on all the time and stage the events somewhere else. Perhaps a DB staging table. Then the batch-oriented integrations can query the table at their leisure.
Yet another approach is to not use Broker for batch interfaces.
Thanks for your reply.
All of the subscribers are already existing in PROD environment and they are using pub-sub model. The only option would be suspending the triggers for the subscribers which are not ready to accept the documents at that time and enable them at a certain time.
I would like to know how to suspend the triggers and re-enable them at certain time by scheduled tasks. I have gone through the built-in Services guide and see that there are few services where we can “suspend” or “resume”
Please let me know how to disable or enable triggers. I appreciate your inputs.
As you may know, IS retrieves documents from the Broker and then dispatches them to services for processing.
suspendRetrieval stops IS from retrieving messages from the Broker.
suspendProcessing stops IS from processing retrieved messages.
Generally, you want to stop retrieval and leave processing alone.j
You do not want to disable the triggers. That will destroy the subscription and the targets will miss any events published while the trigger is disabled. You only want to suspend.