The timeout in seconds applied only to JDBC database query execution during an ad hoc search. (For SQL Server only, this property also applies during fetching.)

You can set this property to the following values:

  • Null - No time limit is applied.
  • 0 (zero) - No time limit is applied.
  • N - An integer from 0 (zero) to Integer.Max_Value.

If this property is set, the effective time limit for each JDBC statement execution is the smaller of any remaining RPC time limit at the time the statement is executed and the QueryDatabaseTimeout value.

This property provides additional control over long-running searches that consume database resources for too long, such as LIKE %value% queries that cause table scans, or complex join queries.

To determine an effective setting for this property, you must take into consideration the time limit for the client-to-server RPC, as set on the DefaultQueryTimeLimit property. The total client-to-server RPC time is composed of the time to parse the Content Engine (CE) SQL into database (DB) SQL, execute the DB SQL, fetch the rows from the database, and check security for each row found. In addition, for a content-based retrieval (CBR) search, the time also includes the full-text search time. Finally, with a paged search, where a fixed amount of rows (typically twice the pagesize) is retrieved from the database at a time, the entire process of DB SQL execution and fetching is repeated if the initial rowset doesn't fill the client page. This can be due to either security filtering or when the initial set of CBR hits do not match the database property criteria.

So as an example, if you were to set the total RPC time limit to 10 minutes, all of the steps described above for the client-to-server search must complete within 10 minutes. At the same time, you could set the QueryDatabaseTimeout value to 30 seconds to specifically limit the DB SQL execution time, because database resource issues (such as blocking) can occur in a smaller time frame.

The typical use-cases of setting a large RPC timeout include long running CBR searches, or non-paged searches that return a large rowset. The typical use-cases for setting QueryDatabaseTimeout is to keep table scans or complex joins from running too long in the database.

The right choices for the RPC timeout and QueryDatabaseTimeout involve considerations from both the P8 Administrator and DBA.

For more information, see Server Query-Timeout Behavior.

Namespace:  FileNet.Api.Core
Assembly:  FileNet.Api (in FileNet.Api.dll)

ToggleSyntax

Visual Basic (Declaration)
Property QueryDatabaseTimeout As Nullable(Of Integer)
C#
Nullable<int> QueryDatabaseTimeout { get; set; }
Visual C++
property Nullable<int> QueryDatabaseTimeout {
	Nullable<int> get ();
	void set (Nullable<int> value);
}
JavaScript
function get_queryDatabaseTimeout();
function set_queryDatabaseTimeout(value);

ToggleRemarks

ToggleSee Also