Вывод ASE ISQL в файл, иногда пустой или пустой

Дайте этот 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 protected] < $TEMP_DIR/sample_report.mail_1

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

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

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

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


person Carlos Jaime C. De Leon    schedule 13.02.2012    source источник


Ответы (1)


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

rm -f $TEMP_DIR/*

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

person Carlos Jaime C. De Leon    schedule 14.02.2012