У меня проблема с прерывистым веб-приложением, который часто должен открыть файл, расположенный на сервере базы данных, как часть регулярных операций. В большинстве случаев эти функции без проблем, однако, кажутся случайными, соответствующие запросы начинают возвращать ошибки HTTP 400. Отскок сервера apache часто устраняет проблему, но он неизменно возвращается через день или максимум неделю.
Я добавил некоторые записи в соответствующий код pl/sql (нет, не убегайте! возвращайтесь!), который я привел ниже для справки:
declare
bl_blob blob;
bf_file bfile := bfilename(<directory that totally exists>, <file that totally exists>);
begin
dbms_lob.createTemporary(bl_blob, true);
dbms_lob.open(bf_file, dbms_lob.lob_readonly);
dbms_lob.open(bl_blob, dbms_lob.lob_readwrite);
dbms_lob.loadfromfile(bl_blob, bf_file, dbms_lob.getLength(bf_file));
dbms_lob.close(bf_file);
return bl_blob;
end;
Оказывается, 400 ошибок соответствуют следующей ошибке ORA-22288:
file or LOB operation FILEOPEN failed
The program issued a command but the command length is incorrect
Мой вопрос: почему операция внезапно и неоднократно начиналась с ошибок, когда ранее один и тот же файл можно было открыть без проблем? Основной файл никогда не изменяется и только когда-либо открывается программно с разрешениями только для чтения.
Все форумы копания, которые я сделал до сих пор, дали в основном множество решений "отключайте и выключайте", которые... да.
Любая помощь очень ценится.