|
![]() |
#1 |
Участник
|
RunBaseBatch with Odbc
Добрый день.
Задача состоит в правильном запуске пакетного задания. В пакетном задании необходимо периодически запускать класс который загружает данные из Access. Для устновки соединения использую ODBC connection(x32). При запуске класса вручную все срабатывает в рабочем порядке. При использовании покаетного задания выдает следующую ошибку: "Операция ODBC прервана из-за ошибки. Не удается пройти авторизацию при подключении к базе данных." Может у кого-нибудь возникала такая ситуация и есть ли решения? Извиняюсь если данная тему была уже поднята ранее. |
|
![]() |
#2 |
Участник
|
попробуйте в начале метода добавить:
X++: new ExecutePermission().assert(); |
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Administrator
|
Решение в этой теме пробовали? Или не подошло? (Если у Вас х64 сервер)
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#5 |
Участник
|
Цитата:
Сообщение от sukhanchik
![]() Решение в этой теме пробовали? Или не подошло? (Если у Вас х64 сервер)
|
|
![]() |
#6 |
Участник
|
batch job исполняется на сервере из под аккаунта, под кототорым AOS работает
Последний раз редактировалось lvan; 18.10.2012 в 11:39. |
|
|
За это сообщение автора поблагодарили: sparco (0). |
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
Цитата:
Так вот, когда Вы запускаете класс "вручную", то Ваш класс, скорее всего, запускается "на клиенте". Точнее надо смотреть свойтство RunOn класса. Но поскольку по умолчанию это свойство имеет значение "Called From", то, думаю, все-таки на клиенте. При запуске на клиенте Вы устанавливаете ODBC-соединение между клиетским компьютером и компьютером, на котором установлен Access. При запуске через пакетное задание запуск выполняется "на сервере". В данном случае, это означает на том компьютере, где физически расположен AOS. Это значит, что используется DNS уже не клиентского компьютера, на котором у Вас "все в порядке", а DNS, того компьютера, на котором расположен AOS. Физически другой компьютер. Соответственно, Вам надо проверять соединение со стороны AOS. Вполне возможно, что на AOS по другому настроено DNS. Может быть, вообще к другой базе Access.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#9 |
Участник
|
Владимир Максимов, Спасибо.
Дело в том что к нас все запускается на одной машине. |
|
![]() |
#10 |
Участник
|
Запускается или находится? С точки зрения любого клиента Axapta все "запускается" именно на его компьютере, но физически это может быть не так.
У Вас AOS физически расположен (инсталирован) на том же компьютере на котором Вы запускали класс "вручную"?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#11 |
Участник
|
Кстати, а как настроена аутентификация в DNS? Там логин и пароль указаны или Windows-аутентификация? Я, правда, не в курсе, возможно ли такое в соединении с Access.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#12 |
Участник
|
работаем не через windows-аутентификацию, пароль и логин вводим уже непосредственно в аксапте в коде.
AOS физически расположен на том же компьютере на котором и запускал класс вручную. |
|
![]() |
#13 |
Сенбернар
|
Цитата:
Сообщение от sparco
![]() Добрый день.
Задача состоит в правильном запуске пакетного задания. В пакетном задании необходимо периодически запускать класс который загружает данные из Access. Для устновки соединения использую ODBC connection(x32). При запуске класса вручную все срабатывает в рабочем порядке. При использовании покаетного задания выдает следующую ошибку: "Операция ODBC прервана из-за ошибки. Не удается пройти авторизацию при подключении к базе данных." Может у кого-нибудь возникала такая ситуация и есть ли решения? Извиняюсь если данная тему была уже поднята ранее. Зайдите на этот комп под тем же пользователем, под которым AOS запускается. Запустите задачу не в пакете. Получите ту же ошибку. Далее - отладчик вам в помощь.
__________________
Best Regards, Roman |
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#14 |
Участник
|
Axapta 2009.
Спасибо за совет, но зашел, запустил. ошибку не выдает. Дело в том что ошибка возникает когда пытаюсь создать объект класс OdbcConnection. В частности при пакетном залании выдает вот такую ошибку Операция ODBC прервана из-за ошибки. Не удается пройти авторизацию при подключении к базе данных. [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию Объект "OdbcConnection" не может быть создан Последний раз редактировалось sparco; 19.10.2012 в 22:10. |
|
![]() |
#15 |
Сенбернар
|
Точно под тем пользователем зашли, от имени которого AOS запущен (Services - AOS - Properties - Logon - пользователь или Local system) ?
__________________
Best Regards, Roman |
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#16 |
Участник
|
RVS, Может быть я зашел не так. хотел бы вас попросить как именно необходимо произвести это действие "Services - AOS - Properties - Logon - пользователь или Local system".
|
|
![]() |
#17 |
Участник
|
Судя по тому что у вас есть SysWOW64, у вас x64 OS
Я бы начал с того что прописал DNS и тут %windir%\system32\odbcad32.exe и тут %windir%\SysWOW64\odbcad32.exe Вы написали что используете SysWOW64\odbcad32.exe - это для 32-битного приложения. Тогда при запуске вручную, если ваш код выполняется на клиенте в 32-битном приложение все должно работать, но при пакетном режиме на сервере в 64-битном приложение по логике работать не должно. |
|
![]() |
#18 |
Программатор
|
Может, на машине, где рождается ODBCConnection настроить его в винде?
|
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#19 |
Administrator
|
Вообще-то особенность подключения через ODBC как раз и состоит в том, чтобы сама запись была сделана в винде. Так что (обращаюсь к топикстартеру) - если у Вас не настроена ODBC в винде - ничего не выйдет
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: sparco (1). |
![]() |
#20 |
Участник
|
Столкнулся с такой же ошибкой в 1С.
Хотелось создать универсальную обработку которая управляет внешними обработками. Для этого нужно было сохранить внешнюю обработку во временный файл на сервере и запустить её на исполнение. В результате обработка не смотря на то что сервер 1с 64 разрядный и винда тоже запускался в 32 разрядном режиме. В 64 разрядной винде два odbc 64 и 32 разрядный. Не помню команды, но список баз прописанных и там и там можно просмотреть. Это номер один проблема. Различными манипуляциями пришёл ко второй проблеме. Запросы не исполнялись к присоединённым таблицам аксеса со старой версией 3.0. В результате забил щас всё запускается на клиентской машине. Проблема осталась на стороне MS. Связь между своими продукты не может поддерживать. Попробуйте настроить оба odbc посмотрите конект пройдёт ли. Если пройдёт, поймёте какой именно odbc аксе был нужен. Не прокатит, забейте. Это ж MS. Буржуи криворукии.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
|
За это сообщение автора поблагодарили: sparco (1). |