Google App Script JDBC / MySql: вы не являетесь владельцем ошибки потока - PullRequest
0 голосов
/ 28 ноября 2018

У меня длинный запрос, который я пытаюсь вызвать из скрипта Google App.Длина запроса велика, и для ее выполнения требуется ~ 20 секунд.

Раньше он работал хорошо, но внезапно я начал получать: `оператор отменен из-за тайм-аута или запроса клиента.

ПосколькуОшибка тайм-аута пришла сразу после вызова executeQuery(). Я подумал, что проблема в длине запроса, поэтому я добавил ее в хранимую процедуру.

Новый запрос - это только вызов этой процедуры.Теперь я получаю ошибку you are not owner of thread, которая по какой-то причине выглядит как команда KILL, отправленная Google App Script.

Это моя функция для выполнения запроса:

function runQuery(query, params, isUpdate) {
  var conn = Jdbc.getConnection(dbUrl, username, password);

  var statement = conn.prepareStatement(query);
  if (params)
  {
    for (var i=0; i<params.length; i++)
    {
      var value = params[i];
      var index = i+1;    
      if (!isNaN(value))
        statement.setInt(index, parseInt(value));
      else
        statement.setString(index, value);
    }
  }
  var results = !isUpdate ? statement.executeQuery() : statement.executeUpdate();
  if (isUpdate)
    return results;
  var numCols = results.getMetaData().getColumnCount();       
  var resultsArray = processResults(results);
  results.close();
  statement.close();
  return resultsArray;
}

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Очевидно, есть проблема с SqlStatment, как описано здесь

0 голосов
/ 28 ноября 2018

Похоже, что Google изменил queryTimeout на 0. Вы можете установить это, используя setQueryTimeout в своем выражении, и это решит ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...