2017-02-19 19 views
0

У меня есть экземпляр Redshift on AWS. Мое приложение работает как служба Windows на EC2 в том же регионе, что и кластер Redshift. У меня есть запрос, который занимает в среднем ~ 45 секунд, а красное смещение, по-видимому, имеет тайм-аут по умолчанию 30 секунд. Таким образом, после ~ 30 секунд этого хода запроса я получаю:Тайм-аут запроса Redshift в C#

ERROR: Query (SOME_NUMBER) cancelled on user's request; Error while executing the query

Те же пробегов запроса и заканчивается штрафом в SQL Workbench/J, поэтому кластер настроен правильно. Я попробовал без везения:

  • добавить «CommandTimeout = 9000; ConnectionTimeout = 9000;» к строке подключения
  • установить параметр timeout programmaticaly через OdbcConnection -> ConnectionTimeout
  • для запуска «set statement_timeout = 900000;» перед тем параметры запроса
  • настроить кластер

Кто знает, как удалить или изменить время ожидания по умолчанию?

ответ

0

Вам необходимо установить параметр keep alive. Для драйвера JDBC это tcpKeepAlive. Не уверен, что он имеет то же имя для ODBC.