Time in queue
Hi!
I need to know how long time a message has been in a possible queue before our business service starts handling the message. Is it possible to read with objectscript or another way?
The business service is an EnsLib.SOAP.Service
Grateful for answers
Greetings Michael
Product version: IRIS 2020.1
$ZV: 2020.1 (Build 215U)
Messages for a Business Service would be queued in an external system if the service is unable to process them faster than they're being generated.
Are you referring to the time-in-queue for messages received by the service before they're acted upon by a Business Process or Operation?
Hi and thanks for your reply.
It is not possible to queue up the requests from the external systems themselves, but they will be sent to our HC- integration regardless of how many we already have in our queue. The answer (response) may take a maximum of 15 seconds, otherwise the response must be saved in the database and delivered at a later request.
The problem is knowing how long a message has waited (in a queue) before it is sent to the business process, if the queue exceeds what our business service can process at the time. Our allowed time to process the request will then be 15 seconds minus the waiting time in the queue.
I hope I am clear enough with what I mean.
Regards Michael
This might get you closer to what you want, perhaps called from OnProcessMessage() in the service:
It returns the time created of the oldest entry in the queue, or the empty string if the queue is empty or doesn't exist.
You could create a variant that would accept a duration argument and return true/false if the duration between the current time and the time of the oldest entry exceeds that.
Thanks for your reply! It can be very helpful and we will try your suggestion and hope we can get something done.
Regards Michael