FTL Server GUI: Configuration

For an introduction to the following concepts, see FTL Configuration Overview.

You can define and configure the realm using the FTL server's graphical web interface. See The Deploy Transaction for background information.

To begin making changes to the FTL realm, you must click the Edit Mode button () in the upper-right corner of the FTL server GUI.

Clicking the Edit Mode button again discards all uncommitted changes.

To commit changes to the FTL realm, you must click the Deploy Config button () in the upper right corner of the FTL server GUI.

After entering edit mode, to make changes, navigate to the “Configuration” section of the left panel and make use of the following screens.

GUI Grids

A grid summarizes information about a category of objects in the realm. Rows present objects as rectangles. Columns present details of an object.

Levels

A row of the grid can contain a series of nested rectangles, called levels. Horizontally, levels visually group a set of details across several columns. Vertically, levels visually group a set of related items within an object.

For example, the Applications grid shows application definitions at level 1, their endpoints at level 2, and the transport definitions that implement those endpoints at level 3 (along with details about the parameters of those transports).

You can vertically collapse and expand a level by clicking the triangle icon in the upper left corner of its rectangle.

Columns

Clicking on a column's sort-order icon sorts the grid according to the contents of that column.

Menu

To open a menu of commands you can apply to an object, click the ... icon at the upper left of an object rectangle. (Edit Mode must be On.) The menu can contain commands like the following:

  • View the details of the object.
  • Add a sub-object at the next level.
  • Delete the object.
  • Remove the object from its enclosing object so it becomes an independent object.
The menu contains only those commands that actually apply to the object.

Adding Objects

In edit mode, you can add new objects to a grid.

To add an object at level 1, click the plus icon at the upper left corner of the grid.

To add a child object, select the Add command in the menu of the enclosing rectangle.

Deleting Objects

In edit mode, you can delete objects from the grid. Select the Delete command in the menu of the object's rectangle.

Pagination

When a grid contains many object rows at level 1, it automatically divides them into pages. Page selector buttons at the bottom of the grid indicate the current page. To view another page, click the corresponding button or type the page number of the page to which you want to navigate.

When a deeper level contains many object rows, the grid automatically paginates the deeper level as well. Page selector buttons at the bottom of the level indicate the current page. To view another page, click the corresponding button or type the page number to which you want to navigate.

When the number of object rows in a level fills more than two groups, you can search for objects using the item name in the level's search bar, and you can sort the rows in that level by object name.

Grid Search

You can search for objects in a GUI grid, or in any column of a grid. You can search using simple strings or regular expressions.

Understanding a grid can be difficult when a grid presents a large number of objects. Similarly, finding a specific object can be difficult when a grid contains many objects. You can use the grid search feature to reduce the number of objects that are visible in a grid.

The grid search box is at the upper right corner of a grid.

You can apply the search criterion to all columns of the grid, or to a specific column. Use the dropdown menu to select the column scope of the search, or to toggle between string search and regular expression search.

Note: Typing regular expression syntax characters is not sufficient to indicate regular expression search. You must explicitly enable regular expression search using the dropdown menu.

You can type a search string or a regular expression in the search box. To submit a search, either type the Enter key, click the magnifier icon, or pause during typing. The search box changes color to indicate that you have applied the search criterion and the grid displays a filtered set of objects.

Destinations Grid

The destinations grid presents configured destinations in the FTL realm. In edit mode, you can create new destinations or modify existing destinations. For background see Destination Concepts.

The destinations grid has only one level.

Note: To modify the access control list for a configured destination, create the destination in the Destinations Grid, then use the Users or Roles screen to configure permissions.

Destinations Level

The JSON attribute defines how each parameter appears in the FTL Server Web API.

Column JSON Attribute Description
Destination name

The name of the configured destination.

Enter a name. For topics, do not use a prefix. For queues, use Q: as a prefix. For maps, use M: as a prefix.

If desired, use special wildcard characters * and > as the last element.

See Destination Name Syntax for complete details.

Store store_name

Select a store. All destinations must be associated with a persistence store.

Select a persistence store based on desired storage properties, such as a replicated store (“persistent”) or a non-replicated store (“non-persistent”).

Cluster/Zone cluster_name

This column displays the persistence cluster or zone associated with the persistence store.

You do not have to make a selection. When you select a persistence store, this column updates automatically.

This column is hidden by default.

Destination Details Panel

In the Destination field on the Destinations Grid, click ..., and then click View Details. The destination details panel presents the subscription properties for a configured destination. In edit mode, you can modify the parameter values.

The JSON attribute defines how each parameter appears in the FTL Server Web API.

Note: To modify the access control list for a configured destination, create the destination in the Destinations Grid, then use the Users or Roles screen to configure permissions.
GUI Parameter JSON Attribute Allowed For Description
Prefetch Count prefetch Topics Queues Maps

Required. This value must be a positive integer.

For topics and queues, this is the number of messages delivered to a subscriber as one batch. Delivery of additional messages will wait until the subscriber’s dispatch callback returns.

Increasing this number may improve single subscriber throughput. For shared topic durables and queues, decreasing this number would allow more subscribers to process messages concurrently, rather than allocating all messages to one subscriber.

Client programs may override this value when creating subscribers on topics or queues. However, applications may not exceed the configured value.

For maps, this is the number of messages delivered to the application when the application issues the next call on a map iterator.

Message Time To Live message_ttl Topics Queues Maps

Optional.

This parameter limits the time (in seconds) that a message (for topics and queues) or key-value pair (for maps) will be stored by the persistence cluster. The persistence cluster can delete the message or key-value pair at any time after the interval elapses. The time is counted from when the message or key-value pair first arrives at the persistence cluster.

Zero is a special value, indicating no time limit on messages or key-value pairs.

The default value is 0.

Durable Time To Live durable_ttl Topics

Optional.

This parameter limits the time (in seconds) that a durable subscription on a topic without any subscribers can remain in the persistence cluster.

When a durable no longer has any connected subscribers, a timer counts this interval. The persistence service can delete the durable at any time after the interval elapses. During the interval, the presence of any subscriber stops the timer and prevents deletion.

Note: Using this feature weakens the quality of service of the durable. The durable no longer assures delivery to clients that disconnect without closing subscribers.

Zero is a special value, indicating no time limit on durables without subscribers.

The default value is 0.

Message Retention Time retention_time Topics Queues

Optional.

Acknowledged messages may be retained for this amount of time (in seconds), as measured from the time when the message was published.

Zero is a special value indicating that message retention is disabled, meaning that messages will be deleted once acknowledged by all subscribers.

This parameter has no effect on lastvalue topic subscriptions.

The default value is 0.

For more information, see Retention Time.

Byte Limit bytelimit Topics Queues Maps

Optional.

This parameter limits the number of bytes consumed by messages in a topic durable, queue, or map. When a message arrives, and the new message would cause the total message size to exceed the limit, the persistence cluster discards a message (see discard policy) and logs a warning.

A value of 0 indicates no limit on the number of bytes.

The default value is 0.

Message Limit message_limit Topics Queues Maps

Optional.

This parameter limits the number of messages in a topic durable, queue, or map. When a message arrives, the persistence cluster checks the number of messages. If the new message would exceed the limit, the persistence cluster discards a message (see discard policy).

A value of 0 indicates no limit on the number of messages.

The default value is 0.

Swap Byte Limit swap_bytelimit Topics Queues Maps

Optional.

If message swapping is enabled, sets a threshold above which messages are swapped to disk to keep persistence cluster memory use limited.

A value of 0 indicates that all messages or key-value pairs are swapped to disk.

A value of -1 indicates that all messages or key-value pairs may be retained in memory.

Otherwise, when the total size of all messages in a topic durable, queue, or map exceeds the limit, additional messages are swapped to disk.

If disk_swap is set to false for the persistence cluster, this parameter is ignored.

The default value is 0.

Discard Policy discard Topics Queues Maps

Set to old or new.

When bytelimit or message_limit is exceeded for a topic durable, queue, or map, the persistence cluster discards the oldest or the newest message, depending on the value of this parameter.

Ack Mode ack_settings.mode Topics Queues

Acknowledgement mode. Set to async or sync.

  • Sync acks: Acknowledgement calls are synchronous. The call does not return until the persistence cluster confirms that it has received the acknowledgment. This type of acknowledgment minimizes duplicates.

  • Async acks: Acknowledgment calls are asynchronous. FTL sends the acknowledgment in the background on a timer. Duplicates can occur if the application program fails before the acknowledgment is sent.

Client programs may override this value when creating subscribers on topics or queues.

This parameter has no effect on lastvalue topic subscriptions.

Batch Size ack_settings.batch_count Topics Queues

Do not specify if acknowledgment mode is sync.

You must specify a positive integer if the acknowledgment mode is async.

When acknowledgment mode is async, each subscriber immediately sends accumulated acknowledgments when the number of waiting acknowledgments exceeds this number, even if the batch time interval has not elapsed.

Client programs might override this value when creating subscribers on topics or queues.

This parameter has no effect on lastvalue topic subscriptions.

Batch Time ack_settings.batch_time Topics Queues

Do not specify if acknowledgment mode is sync.

You must specify a positive floating point number if the acknowledgment mode is async.

When acknowledgment mode is async, each subscriber immediately sends accumulated acknowledgments when the oldest acknowledgment has waited for this interval, in seconds, even before exceeding the batch count.

Very small values might hurt application performance.

Client programs might override this value when creating subscribers on topics or queues.

This parameter has no effect on lastvalue topic subscriptions.

Max Delivery max_delivery Topics Queues

Optional.

This parameter limits the number of times that a persistence cluster attempts to deliver each message in a topic durable or queue.

Zero is a special value, indicating no limit on delivery attempts.

Administrators can set this parameter to 0 or any positive integer strictly greater than 1. (The value 1 is invalid.)

The default value is 0.

Note: Robust message callback methods verify field data types before operating on field data content.

Nonetheless, sometimes a message with unexpected data content can cause a subscribing application to abruptly exit. When the persistence cluster repeatedly delivers such a message to the subscribers of a topic durable or queue, it could potentially cause all the subscribing applications to exit. To limit the damage that such messages can cause, set this parameter to a non-zero value that is less than the expected number of subscribed applications.

This parameter has no effect on lastvalue topic subscriptions.