Search code examples
azureiso8601

What is the value of "Default message time to live" for Azure Service Bus Queues?


In the Azure Console I can see the property "Default message time to live":

enter image description here

But what the heck is: P10675199DT2H48M5.4775807S ?

When I hover over the info button next to the text "Default message time to live" it says: "ISO 8601 default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself."

But this doesn't really help. I know what the property means, but what is the default value, 7 days, a month, ...?


Solution

  • It's an ISO 8610 Duration, exposed in the .NET library as a TimeSpan, and that particular value is, per the docs

    The default time-to-live value for a brokered message is the largest possible value for a signed 64-bit integer if not otherwise specified.

    IE, it's the biggetst .NET TimeSpan, which you get from this code:

       TimeSpan.FromTicks(Int64.MaxValue);
    

    or

       TimeSpan.MaxValue;
    

    https://learn.microsoft.com/en-us/azure/service-bus-messaging/message-expiration#entity-level-expiration

    or

    10,675,199 days
    2 hours 
    48 minutes 
    5.4775807 seconds