Нет, простым методом не получится, т.к. серверная часть (тело операции) и клиентская часть (Навигатор) выполняются асинхронно.
Как вариант, можно организовать какой-нибудь "семафор". Типа, bat-файл выставляет флаг (напр, создает файл на сервере с определенным именем, или делает запись в табличку Oracle), а операция ждет появления этого флага. Правда здесь можно нарваться на вечный цикл, если поломается выполнение bat-файла.
нормальный проверенный метод, чтобы избежать бесконечных циклов, необходимо вставить счетчик итераций...конечно если время выполнения BAT - можно спрогнозировать с некоторой погрешностью.... _________________ Маслов Дмитрий
я бы сделал так:
- первая операция оканчивается shell_command и call 2 операции
- вызов второй операции происходит после выполнения shell_command
- вторая операция делает то что нужно и затем может продолжить действия (если очень хочется вызвать первую операцию с неким параметром успешности)
я бы сделал так:
- первая операция оканчивается shell_command и call 2 операции
- вызов второй операции происходит после выполнения shell_command
- вторая операция делает то что нужно и затем может продолжить действия (если очень хочется вызвать первую операцию с неким параметром успешности)
Не будет работать, т.к. Навигатор делает вызов shell_command и не ждет окончания выполнения команды, а идет дальше.
В конце bat-файла (через sqlplus и крохотное приседание) свистнуть в оракловый pipe.
А процедура на сервере вычитывает pipe в "трепетном" ожидании. _________________ IT-Команда предлагает свои услуги:
http://www.cftclub.ru/viewtopic.php?t=909
Всёж с файлом-семафором было б проще...
а тут придется извращаться с именем пайпы и тыды и тыпы...
то бишь маленькое приседание, может вылится в очень извращенный секс
Мой богатый опыт написания всевозможных автономных роботов говорит мне, что "файлы-семафоры" - это самый последний и отчаянный шаг! Файлы имеют привычку "залипать" по различным причинам. Опять же, права на создание (через FIO планируется его создавать, не так ли?).
Да и в чем проблема с именованием канала? Назовите его: ВАШБАНК$ИМЯОПЕРАЦИИ.
Повезет отчасти тем, у кого ORACLE вертится на Win32, где каталог можно предоставить во всеобщий доступ средствами Билла Гейтса. Тогда мой Вам совет - используйте замечательную конструкцию:
Файл \\server\share\semaphore.bsy создается и лочится(!) до тех пор, пока выполняется batchfile.bat. Оракловой процедуре остается периодически проверять наличие этого файла, удалять его(!), если залип, ну и продолжать потом свое выполнение.
Мой богатый опыт написания всевозможных автономных роботов говорит мне, что "файлы-семафоры" - это самый последний и отчаянный шаг! Файлы имеют привычку "залипать" по различным причинам. Опять же, права на создание (через FIO планируется его создавать, не так ли?).
Да и в чем проблема с именованием канала? Назовите его: ВАШБАНК$ИМЯОПЕРАЦИИ.
Повезет отчасти тем, у кого ORACLE вертится на Win32, где каталог можно предоставить во всеобщий доступ средствами Билла Гейтса. Тогда мой Вам совет - используйте замечательную конструкцию:
Файл \\server\share\semaphore.bsy создается и лочится(!) до тех пор, пока выполняется batchfile.bat. Оракловой процедуре остается периодически проверять наличие этого файла, удалять его(!), если залип, ну и продолжать потом свое выполнение.
Правда, кто из модных пацанов пользует ORACLE на этой платформе?
ВАШБАНК$ИМЯОПЕРАЦИИ. -подходит только при монопольном запуске операции...
а ежели эта операция может быть запущена одновременно?
То бишь, я не отрицаю вашего варианта, но!
И, кстати, за 5 лет общения с ЦФТ я ни разу не сталкивался с залипанием файла... можете мне не верить - в уралсибе долгое время (как минимум до прошлого года) работало несколько файловых шлюзов с разными системами и имено с семафорами, кстати, может быть проблем не возникало, потому что всё операции совершались с файлами на сервере под *nix? (через самбу)
...
Правда, кто из модных пацанов пользует ORACLE на этой платформе?
У нас Oracle как раз и крутится на Win32 (ибо не можем позволить себе квалифицированного юниксоида и справляемся в основном своими силами).... время от времени файло залипает... благо только в папках децентрализованных филиалов... и лечится это тока перезапуском сервера... _________________ всегда есть как минимум 2 выхода
...
Правда, кто из модных пацанов пользует ORACLE на этой платформе?
У нас Oracle как раз и крутится на Win32 (ибо не можем позволить себе квалифицированного юниксоида и справляемся в основном своими силами).... время от времени файло залипает... благо только в папках децентрализованных филиалов... и лечится это тока перезапуском сервера...
что такое не везёт и как с ним бороться...
По поводу квалифицированного юниксоида... - он стоит куда меньше чем квалифицированный ораклоид...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Домен cftclub.ru не связан с ЗАО "Центр Финансовых Технологий" и ни в коей мере не нарушает авторских и иных прав
Владелец может не разделять мнения Участников и не несет ответственности за их публикации
Powered by phpBB