Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / синхронизация вызовов внешних java-функций из pl-sql / 11 сообщений из 11, страница 1 из 1
22.02.2018, 14:13
    #39606137
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
Добрый день.

На сервере Oracle есть джоб, в котором вызывается java-функция, которая работает с диском - копирует файл из первой папки во вторую. Затем вызывается другая java-функция, которая копирует этот файл из второй папки в третью. Код примерно такой:

Код: plsql
1.
2.
3.
4.
...
p_res := fcopyfileto(p_fileNameSrc,p_fileNameDst1);
p_res := fcopyfileto(p_fileNameDst1,p_fileNameDst2);
...



Как быть уверенным в том, что 2-й вызов функции сработает точно уже тогда когда отработает 1-й и файл будет гарантированно находиться в Dst1 ?
...
Рейтинг: 0 / 0
22.02.2018, 14:23
    #39606144
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
verter, что возвращает функция?
Если положительный результат после копирования - проверяй это перед вторым вызовом
Код: plsql
1.
2.
3.
4.
p_res := fcopyfileto(p_fileNameSrc,p_fileNameDst1);
if p_res = 1 then /*0 - функция выполнилась с ошибкой, 1 - выполнилась успешно*/
  p_res := fcopyfileto(p_fileNameDst1,p_fileNameDst2);
end if;
...
Рейтинг: 0 / 0
22.02.2018, 14:26
    #39606148
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
шК0ДЕРverter, что возвращает функция?
Если положительный результат после копирования - проверяй это перед вторым вызовом
Код: plsql
1.
2.
3.
4.
p_res := fcopyfileto(p_fileNameSrc,p_fileNameDst1);
if p_res = 1 then /*0 - функция выполнилась с ошибкой, 1 - выполнилась успешно*/
  p_res := fcopyfileto(p_fileNameDst1,p_fileNameDst2);
end if;


это понятно, но будет ли проверка 1-го p_res означать, что oracle подождёт прежде чем пытаться скопировать во 2-й раз?
...
Рейтинг: 0 / 0
22.02.2018, 14:28
    #39606149
синхронизация вызовов внешних java-функций из pl-sql
verter,

От повторного перекопирования диск не протрется.
...
Рейтинг: 0 / 0
22.02.2018, 14:37
    #39606159
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
verterэто понятно, но будет ли проверка 1-го p_res означать, что oracle подождёт прежде чем пытаться скопировать во 2-й раз?Оракл не будет ждать.
Оракл будет последовательно вызывать функции.(хотя мало ли что в них имеется, код ведь не представлен)
...
Рейтинг: 0 / 0
22.02.2018, 14:39
    #39606161
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
шК0ДЕРverterэто понятно, но будет ли проверка 1-го p_res означать, что oracle подождёт прежде чем пытаться скопировать во 2-й раз?Оракл не будет ждать.
Оракл будет последовательно вызывать функции.(хотя мало ли что в них имеется, код ведь не представлен)

вот в этом то и проблема.

оракле вызывает последовательно функции, а если в результате работы первой файл ещё не успел переписаться в Dst1, а Оракл уже вызвал 2-й раз этуфункцию ,которая попыталась скопировать файл из Dst1, не обнаружила его там и вывалилась с ошибкой?
...
Рейтинг: 0 / 0
22.02.2018, 14:40
    #39606162
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
как заставить оракл подождать?
...
Рейтинг: 0 / 0
22.02.2018, 14:44
    #39606165
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
verterкак заставить оракл подождать?
шК0ДЕРverter, что возвращает функция?
Если положительный результат после копирования - проверяй это перед вторым вызовом
...
Рейтинг: 0 / 0
22.02.2018, 15:22
    #39606197
копираст
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
verterкак заставить оракл подождать?
Если копирование асинхронное, то вариантов два:
1. Копировать в оба каталога назначения один и тот же исходных файл, а не копию.
2. Копирование можно проводить в файл со временным именем, по завершении - переименовывать в целевое - этот прием на 100% избавляет от попыток обработать недокопированный файл.
...
Рейтинг: 0 / 0
22.02.2018, 15:30
    #39606211
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
копирастverterкак заставить оракл подождать?
Если копирование асинхронное, то вариантов два:
1. Копировать в оба каталога назначения один и тот же исходных файл, а не копию.
2. Копирование можно проводить в файл со временным именем, по завершении - переименовывать в целевое - этот прием на 100% избавляет от попыток обработать недокопированный файл.

спасибо! попробую.
...
Рейтинг: 0 / 0
26.02.2018, 10:48
    #39607190
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация вызовов внешних java-функций из pl-sql
verterДобрый день.

На сервере Oracle есть джоб, в котором вызывается java-функция, которая работает с диском - копирует файл из первой папки во вторую. Затем вызывается другая java-функция, которая копирует этот файл из второй папки в третью. Код примерно такой:

Код: plsql
1.
2.
3.
4.
...
p_res := fcopyfileto(p_fileNameSrc,p_fileNameDst1);
p_res := fcopyfileto(p_fileNameDst1,p_fileNameDst2);
...



Как быть уверенным в том, что 2-й вызов функции сработает точно уже тогда когда отработает 1-й и файл будет гарантированно находиться в Dst1 ?

AQ
Propagation Features
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / синхронизация вызовов внешних java-функций из pl-sql / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]