ASE ISQL вывод в файл, иногда пустой или пустой - PullRequest
0 голосов
/ 13 февраля 2012

Дайте этот сценарий Unix, который запланирован для пакетного запуска:

isql -U$USR -S$SRVR -P$PWD -w2000 < $SCRIPTS/sample_report.sql > $TEMP_DIR/sample_report.tmp_1
sed 's/-\{3,\}//g' $TEMP_DIR/sample_report.tmp_1 > $TEMP_DIR/sample_report.htm_1
uuencode $TEMP_DIR/sample_report.htm_1 sample_report.xls > $TEMP_DIR/sample_report.mail_1

mailx -s "Daily Sample Report" email@example.com < $TEMP_DIR/sample_report.mail_1

Бывают случаи, когда sample_report.xls, прикрепленный к почте, пуст, ноль строк.

Я исключил следующее:

  1. не тайм-аут обработки команды - добавив -t30 к isql, я получаю xls, и он содержит ошибку, а не пустую
  2. не ошибка sql - принудительно вызывая ошибку в sql, я получаю xls, и она содержит ошибку, а не пустую
  3. не уверен в тайм-ауте входа в систему - при добавлении -l1 он не истекает, но я не могу указать число меньше 1 секунды, поэтому не могу сказать

Я не могу воспроизвести это, поскольку я не знаю причину. Кто-нибудь еще испытал это или есть способ решить эту проблему? Любые предложения, как найти причину? Это Unix или Sybase isql?

1 Ответ

0 голосов
/ 14 февраля 2012

Я нашел причину.Поскольку это запланировано, и этот конкретный отчет занимает много времени для создания.Другие запланированные сценарии, которые я обнаружил, имеют следующую строку кода:

rm -f $TEMP_DIR/*

Если этот долгосрочный отчет перекрывается одним из запланированных сценариев со строкой выше, то .tmp_1 может быть удален, поэтому может быть пустымк тому времени, когда оно отправлено по почте.Я повторил это, вручную удалив .tmp_1, пока в отчете все еще записывался sql.

...