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