Ошибка Oracle в планировщике задач - PullRequest
6 голосов
/ 28 декабря 2011

У нас есть программа на C #, запланированная для запуска в планировщике заданий на Windows Server 2003, предназначенная для удаления устаревших файлов в папке на основе информации, полученной из нескольких баз данных Oracle. Я могу запустить приложение вручную, и все работает нормально - вошел в систему как сам с правами администратора или вошел как назначенный пользователь задачи с правами пользователя.

Однако, когда пользователь задачи вышел из системы, в каждой базе данных происходит сбой приложения с одной из двух ошибок: либо

ORA-12504: TNS: слушателю не присвоено имя SERVICE_NAME в CONNECT_DATA

или

ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения.

Все эти базы данных используют строку подключения (полученную из другой базы данных, SQL Server, базы данных), которая, как я уже говорил, подключается и работает очень хорошо при работе вручную. Я был в Интернете в поисках советов, которые могут относиться к этому обстоятельству, и не нашел окончательного ответа.

Кто-нибудь читает это сообщение, кто может знать ответ на эту проблему? Любые предложения приветствуются.

Ответы [ 2 ]

3 голосов
/ 28 декабря 2011

Какому пользователю задано запланированное задание?Один из тех же пользователей, которых вы тестировали, или другая учетная запись?

В любом случае, это не похоже на проблему с разрешениями, поскольку переменная окружения ORACLE_HOME не установлена.(Похоже, что ваша программа, вероятно, пытается подключиться через файл tnsnames.ora, который не может быть найден.) Может потребоваться, чтобы запланированное задание сначала запустило пакетный файл, задающий среду, затемпродолжает вызывать вашу C # программу.

2 голосов
/ 28 декабря 2011

У меня были похожие проблемы, но с некоторым Java-приложением. Произошло то же самое - ручное выполнение задачи было в порядке, но автоматическое выполнение всегда не удавалось (одна и та же учетная запись!).

Проверьте с вашим администратором (или, возможно, вы можете сделать это самостоятельно) и настройте приложение C # на выполнение учетной записи администратора (только для тестирования!) Или посмотрите, есть ли другие запланированные задачи, и опросите их, чтобы узнать, какая учетная запись Windows они используют и как это настроено. Я помню, что нам (я + администратор) пришлось немного поэкспериментировать, но в конце концов он создал новую привилегированную учетную запись (копию какой-то другой существующей) для выполнения запланированного задания.

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