E Use Cases for Allow Duplicate Subscriptions

This section describes the behavior of allowDuplicateSubscriptions parameter for different use cases. For more information, about configuring allowDuplicateSubscriptions parameter, see "NF Management Options" section in Oracle Communications Cloud Native Core, Network Repository Function REST API Guide.

Use Case 1: If the value of allowDuplicateSubscriptions is set as false and same subscription request than existing ones

NRF checks for duplicate subscription by matching the current subscription request with every subscription present in NRF except the validityTime attribute.

Existing subscription with NRF:

Subscription-1


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"subscriptionId":"54d05ee9d3c042b0bf1499463cf53fe0",
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "UDM"},
"validityTime":"2025-01-18T08:56:23.382Z"
}

New NFStatusSubscribe Request:

Subscription-2


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType":"UDM"},
"validityTime":"2025-06-12T08:56:23.382Z"
}

As per the above example, Subscription-2 matches exactly with Subscription-1 except with the validityTime, the subscription response contains the same subscriptionId and validityTime of Subscription-1.

Use Case 2: If the value of allowDuplicateSubscriptions value is set to false and different subscription request than existing ones.

NRF checks for duplicate subscription by matching the current subscription request with every subscription present in NRF except the validityTime attribute.

Existing Subscription with NRF:

Subscription-1


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"subscriptionId":"54d05ee9d3c042b0bf1499463cf53fe0",
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "UDM"},
"validityTime":"2025-01-18T08:56:23.382Z"
}

New NFStatusSubscribe Request:

Subscription-3


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification-new,
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "UDM"},
"validityTime":"2025-06-12T08:56:23.382Z"
}

As per the above example, Subscription-3 does not match with Subscription-1 as nfStatusNotificationUri is different. In this case, NRF creates a new subscription. Hence, subscription response returns the new subscriptionId.

Use Case 3:- If the value of allowDuplicateSubscriptions is set to false and different subscription request than existing ones

NRF checks for duplicate subscription by matching the current subscription request with every subscription present in NRF except the validityTime attribute.

Existing Subscription with NRF:

Subscription-1


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"subscriptionId":"54d05ee9d3c042b0bf1499463cf53fe0",
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "UDM"},
"validityTime":"2025-01-18T08:56:23.382Z"
}

New NFStatusSubscribe Request:

Subscription-3


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "AMF"},
"validityTime":"2025-06-12T08:56:23.382Z"
}

Subscription-3 does not match with Subscription-1 as the value of subscrCond is different. NRF creates a new subscription. Hence, subscription response returns the new subscriptionId.

Use Case-4:- When the value of allowDuplicateSubscriptions value is set to true and same subscription request than existing ones

NRF does not check for duplicate subscription and creates a new subscription.

Existing Subscription with NRF:

Subscription-1


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"subscriptionId":"54d05ee9d3c042b0bf1499463cf53fe0",
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "UDM"},
"validityTime":"2025-01-18T08:56:23.382Z"
}

New NFStatusSubscribe Request:-

Subscription-2


{
"nfStatusNotificationUri":http://notification-url.oracle.com/subscribe/notification,
"subscriptionId":"54d05ee9d3c042b0bf1499463cf53fe0",
"reqNotifEvents":["NF_REGISTERED","NF_PROFILE_CHANGED"],
"subscrCond":{"nfType" : "UDM"},
"validityTime":"2025-06-12T08:56:23.382Z"
}

Subscription-2 matches exactly with Subscription-1 except validityTime, NRF creates a new subscription. Hence, subscription response returns the new subscriptionId.