---
title: Timeouts for Long-Running Queries
---

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<a id="topic_long-running-queries"></a>

<%=vars.product_name%> can monitor and throw an exception when
a query runs longer than a configured amount of time.
This feature is enabled by setting the `critical-heap-percentage` attribute 
which detects that the JVM has too little heap memory.

The default query timeout is five hours.
Set a different amount of time, in milliseconds,
by specifying the system variable `gemfire.Cache.MAX_QUERY_EXECUTION_TIME`.
A value of -1 explicitly disables the timeout.

When enabled, a query that runs longer than the configured timeout
will be cancelled such that it does not finish,
and <%=vars.product_name%> throws a `QueryExecutionTimeoutException`.
