3.1.8.6 Services Tab

In the Services tab you have two predefined services, Supervision Service and Order Service. You can also add and configure different workflow services that have been developed using the Development Toolkit.

Note!

The Services tab is only valid for real-time workflows.


Preferences dialog - Services tab

ItemDescription

Add Workflow Service

Click the Add icon to select a service to be used by the Workflow. In the Add Workflow Service dialog, select a service from the list and click Apply after each selected service. Click OK when finished.

Remove Workflow Service

Select a service from the Services list and click the Remove icon to remove the service from the workflow.


Supervision Service

This section describes the Supervision Service. With this service you can create decision tables for triggering different actions to be executed based on current MIM values. This may, for example, be useful for overload protection purposes.

Overview

The Supervision Service uses decision tables, where you can define different actions to be taken depending on which conditions that are met; log in System Log, use an overload protection configuration, or generate an event. You can use any MIMs available in the workflow for configuration of conditions, e g throughput, queue size, etc.

Supervision Service concept

The Supervision Service is available for real-time workflows, and can be configured in the Services tab in the Workflow Properties dialog. The supervision service with action overload can also be manually triggered with mzsh commands, in case it is needed for maintenance or other purposes. If the service is manually triggered, it has to be reverted to automatic mode for the settings in the Services tab to take effect once again.

Configuration of the Ordered Service

The Ordered Service is required by the Ordered Routing Queue Strategy. A function defined in APL code will extract values from any routed UDR or bytearray to decide which partition queue to add it to.

Ordered Routing allows you to utilize multicore cpus, but still have deterministic order. If we have session updates from a collection point that are encoded to a user defined UDR type Ordered.Subscriber.Update with the field 'id' containing a session id, the following example shows how the values are read and added to the ordered.SessionIdentifier that the queue strategy will use to hash and select a partition based on.

Example - Ordered Routing Queue Strategy

import ultra.Ordered.Subscriber;
void route(ordered.SessionIdentifier si, any input) {
     if(instanceOf(input, Update)) {
         Update u = (Update)input;
         ordered.addInteger(si, u.id);
     }
}


Multiple values can be added to the SessionIdentifier, it will calculate the hash based on them all after the route function returns. If there is more than one type routed into the workflow, there needs to be a longer if-else chain, with a clause for each type.

FunctionDescription
ordered.addInteger(ordered.SessionIdentifier si, int i)Add the value of integer i to the SessionIdentifier
ordered.addString(ordered.SessionIdentifier si, string s)Add the value of string s to the SessionIdentifier
ordered.addByte(ordered.SessionIdentifier si, byte b)Add the value of byte b to the SessionIdentifier
ordered.addBytes(ordered.SessionIdentifier si, bytearray ba)Add the value of bytearray ba to the SessionIdentifier
ordered.addByteRange(ordered.SessionIdentifier si, bytearray bs, int offset, int len)Add the values of bytearray ba from offset and the next len bytes to the SessionIdentifier
ordered.setPartition(ordered.SessionIdentifier si, int partition)Alternatively, if more control over partition selection is wanted one can set the partition id explicitly, this will override any values added to the SessionIdentifier.

If no values are added to the SessionIdentifier it will fall back to send the UDR to the first partition (partition zero).

Configuration of the Supervision Service

To open the configuration for the Supervision Service, open the Workflow Properties dialog in a real-time workflow configuration, click on the Services tab, click on the Add button, select the Supervision option and click OK.

The configuration for the Supervision service will now appear on the right side of the Services tab.

Configuration for Supervision Workflow Service

ItemDescription

Execution Interval (ms)

Enter the time interval, in milliseconds, with which current MIM values should be checked against the conditions in the decision tables. This configuration will be valid for all decision tables.

Decision Tables

All the decision tables you have configured are listed in this section. Click the Add button to add a new decision table. It may be a good idea to have different decision tables for different purposes.

Note!

Even though you can change the order of your decision tables, this does not affect the functionality. All decision tables will be applied.

Creating a Decision Table

When you select to add a new decision table, the Add Decision Tables dialog opens.


Creating a Decision Table

In this dialog you configure your decision table. In a decision table, you determine which action to take depending on which conditions are met. These conditions and actions are configured in separate lists and will then be available for selection in the decision table configuration.

ItemDescription

Decision Table

Enter a name for your decision table in the Name field.

Table Parameters

Click the buttons Action Lists and Conditions Lists to configure the different conditions and actions for this table.

DecisionsEach configured condition list will be displayed in the Conditions column. Each of these conditions can be set to either TrueFalse or -. If you want to add more columns to set up different combinations of conditions, you can right-click the Action column heading and select to add more columns. For each column with a condition combination, you can then select which action to take in the drop-down list containing all configured actions.


You configure your decision tables by following these steps:

  1. Configure conditions. The conditions you configure are based on different MIM parameters having defined values.
     

  2. Configure actions. When configuring the actions, you can select to have a Supervision event generated, to reject messages, or to log an entry in the System Log. Rejection can be made on all messages or on a certain percentage; 0, 25, 50, or 100 %.

    Hint!

    If you are using Diameter or Radius agents in your workflow, you can also select from a range of Diameter and Radius specific overload protection strategies in order to only reject specific types of messages. See 9.17 Diameter Agents and 9.60 Radius Agents for further information about these strategies. 

     

  3. Create the decision table, i e set the conditions to either True , False or - (which means ignore) and select which action to take.
     

  4. Set a name.
     

  5. Click Add and repeat steps 1 to 4 for all the decision tables you want to create.

    Note!

    When a condition is evaluated to true, the corresponding action will be performed only once, until any other condition is also evaluated to true. Generally, this means that a minimum of two conditions is required in the decision table.

     

Configure conditions

To configure conditions:


Add Condition

ItemDescription

Left Operand

Select a MIM parameter that you want to use for you condition in this section.

Operator list

This is the drop-down list located between the two operands. Select either > (larger than),< (smaller than), == (equals), or != (not equal).

Right OperandSelect what the selected MIM parameter and operator should match; either another MIM parameter, or a constant.


  1. In the Add Decision Tables dialog, click the Condition Lists button.
     

  2. Click the Add button to open the Add Conditions dialog.
     

  3. Click the Add button to add conditions.
     

  4. In this dialog, select a MIM value for the left operand.
     

  5. Select an operator.
     

  6. Enter a constant, or select a MIM value, for the right operand.
     

  7. Click Add to add the condition to the condition list.
     

  8. Repeat steps 4 to 7 until you have added all the conditions you want to have in the condition list and then click Close when you are finished.

    You will return to the Add Conditions dialog.


    Add Conditions

    ItemDescription

    List

    Enter a name for the condition list in the Name field.

    Match

    Select if you want all the conditions in the list to be matched or, if only one condition is required to match by selecting either of the buttons Any of the Following or All of the Following.

    ConditionsThis section contains all the different conditions you have added to the list.


  9. Select if you want to match all conditions in the list, or if you want to match one of the conditions in the list.

  10. Give the list a name and click the Add button to add the condition list in the Create Decision Tables dialog.
     
  11. Repeat steps 3 to 10 until you have created all the condition lists you want to have and then click Close when you are finished.

    You will return to the Create Decision Tables dialog.

Configure actions

To configure actions:

  1. In the Add Decision Tables dialog, click the Action Lists button.
     

  2. Click the Add button to open the Add Actions dialog.
     

  3. Click the Add button to add actions.

     

    Add Action

    ItemDescription
    Action

    In this drop-down-list, you select if you want an entry to be logged in the System Log, or if you want an  Overload Protection configuration to be configured, or if you want to generate a  Supervision Event that can be sent to various targets depending on how you configure your Event Notifications.

    Note!

    The Overload Protection option is only available if you have Diameter or Radius agents in your workflow. 

    Description

    Enter a description for this action.

    RejectThis option is only available when you have selected to configure an Overload Protection action and determines the percentage of requests that should be rejected; 0, 25, 50, or 100 %.
    Strategy

    This option is only available when you have selected to configure an Overload Protection action and determines if you want to apply this action on all types of requests or if you only want to apply them to the requests following a selected Diameter or Radius overload protection strategy.

    ContentThis option is only available when you have selected to configure a Supervision Event action and determines the content of the event. See 4.3. Event Types for further information about event notification configuration.
    SeverityThis option is only available when you have selected to configure a System Log action and determines the severity of the log entry; Information, Warning, Error, or Disaster.
    MessageThis option is only available when you have selected to configure a System Log action and allows you to enter a message that will be visible in the System Log.
  4. In this dialog, select which type of action you want to use; System LogOverload Protection or Supervision Event. Depending on what you choose, the options in the dialog differ.
     

  5. If you have selected an Overload Protection action:
    • Enter a description in the Description field.
    • Select the percentage of messages you want to reject; 0, 25, 50 or 100 % in the Reject drop-down list.

    • In the Strategy drop-down list, you select if you want the action to be applied for all requests, or only for requests following any of the Diameter overload protection strategies.
       

  6. If you have selected a Supervision Event action:
    • Enter a description in the Description field.

    • Enter the event content in the Content field. This content can then be used when configuring Event Notifications for this event.
       

  7. If you have selected a System Log action:
    • Enter a description in the Description field.

    • Select a severity in the Severity drop-down-list.

    • Enter an optional message in the Message field.
       

  8. Click Add to add the action to the action list.
     
  9. Repeat step 4 to 8 until you have added all the actions you want to have in the action list and then click  Close  when you are  finished.

    You will return to the Add Actions dialog.


    Add actions


    ItemDescription

    List

    Enter a name for the action list in the Name field.

    Action

    This section contains all the actions you have added in this list.

  10. Give the list a name and click the Add button to add the action list in the Create Decision Tables dialog.
     

  11. Repeat steps 3 to 10 until you have created all the action lists you want to have and then click Close when you are finished.

    You will return to the Create Decision Tables dialog.


Configuring a Decision Table

In the Decision Table tab you will now have two columns; Conditions and Actions.


Creating a Decision Table

The Conditions column contains all the condition lists you have created, and in the Actions column you can set a condition to either True (true), False (false), or - (Ignore), and then select which action you want to trigger when the settings in the decision table match.

Depending on how many conditions you have configured, there may be many different combinations that you may want to configure different actions for. To add another column, right-click the Action column heading and select the option Add Column.... A new column will then be added. This can be repeated for all the different combinations you want to have.

Note!

Only one action can be selected for each set of combinations.

Example - Decision Table


Decision table example

The following actions will be taken during the following conditions:

Case 1 
If the Incoming messages exceeds 50, a Supervision Event will be triggered.

Case 2 
If the Incoming messages exceeds 100, 25 % of the incoming Diameter Credit-Control Initial requests will be rejected.

Case 3 
If the Incoming messages exceeds 150, 100 % of the incoming Diameter Credit-Control Initial requests will be rejected.


MZSH Commands

If you need to manually trigger or clear the supervision service with action overload, e g for maintenance or other purposes, you can use the mzsh wfcommand. See the Commandline Tool user's guide for further information about this.

Next subsection: