SystemLink Enterprise Data Frame Service Refuses to Create New Data Tables

Updated Sep 25, 2023

Reported In

Software

  • SystemLink Enterprise

Issue Details

The Data Frame service of SystemLink Enterprise is performing very slowly when trying to append data to a Data Table, or in extreme cases the Data Frame service refuses to create any new Data Tables at all.

Solution

There is a limit to the number of Data Tables that can be in the Incomplete/Open state at the same time.  You should always be careful to set any Data Table to the Complete/Closed state as soon as you are done appending data to it.  However, once closed the Data Table can not be re-opened, so you do need to sure you are completely done appending data before setting the Data Table to the Complete/Closed state.

When Data Tables are created, their "SupportsAppend" boolean flag defaults to "True". To mark a Data Table complete/closed, use the route:
     POST /nidataframe/v1/tables/{id}/data
with that table's {id} and  endOfData: true  in the JSON body of the request.  This will trigger the Data Frame service to set that Data Table's "SupportsAppend" field to "False", officially setting the Data Table to the Complete/Closed state.

Additional Information

Calling the DataFrame Service to append data to a data table does not cause the data to immediately appear in the data table. This is because data is routed to the data table asynchronously. Each data table not in a read-only state has resources associated with it. Stacking up too many of these resources can cause performance lags when appending to data tables, and in extreme cases, the DataFrame Service will refuse to create new data tables. When you set a data table to read-only status using endOfData: true, you release its associated resources.