Options in case of inefficient queries

Last update: 4 August 2017

Options in case of inefficient queries

Fabasoft Folio and the Fabasoft eGov-Suite are both providing mechanisms to prevent long running queries from being executed. This mechanism will interrupt the execution of this query if specific query restrictions are met. Fabasoft Folio Backend services: During a query, the Fabasoft Server rejects all objects that do not match the query restrictions. There are two server options, COO_QUERY_ACLRESTRFACTOR (default=20) and COO_QUERY_ACLRESTRMIN (default=1000). These options can be used to abort long running queries based on ACL restrictions.

If the server checked more than COO_QUERY_ACLRESTRMIN objects and the * COO_QUERY_ACLRESTRFACTOR is less than the number of objects checked, the query is aborted and an error message is returned ("Inefficient query").

Possible values for COO_QUERY_ACLRESTRFACTOR are between 0 and 9999999, possible values for COO_QUERY_ACLRESTRMIN are between 250 and 9999999.

If the values for this query restrictions can be changed by adding the desired values as additional parameter for each COO-Service. (in the property COOSYSTEM@1.1:srvparameters; Please note that changing these parameters will need a “Synchronize Registry Entries” via Server Management)

Fabasoft Folio Kernel: There is also a query restriction limit in the Fabasoft Folio Kernel which is driven by the environment variables QUERYRESTRLEVEL (default=5000) and QUERYRESTRFACTOR (default=20). If the Fabasoft Server found more than objects, the user must have the right to find more than 1/ of the objects. In each case you can ease the restriction by increasing the value.

Be careful when changing these settings, because the default settings are designed to prevent high system load based on long running queries.

The description how to set the environment variables in general can be found in the whitepaper “Environment Variables in Fabasoft Folio.pdf”