Управление кэшом приложения

Все процедуры и функции доступные схеме сканируются при запуске приложения и помещаются в кэш. При изменении сигнатуры процедур или создании новых функций они не будут доступны для вызова через API. Для этого необходимо перезагрузить приложение, для того чтобы кэш обновился.

Для автоматизации перезагрузки кэша приложения, XDAC предоставляет возможность перезагрузить кэш с помощью механизма уведомлений NOTIFY.

Пользователь может отправить уведомление в канал xdac с уведомлением о перезагрузке кэша:

NOTIFY xdac, 'reload';

Автоматизация уведомлений

Следующий способ автоматизировать перезагрузку кэша - создание event trigger на операции ddl. Пользователь с правами SUPERUSER может создать следующий триггер:

CREATE OR REPLACE FUNCTION public.xdac_watch() RETURNS event_trigger
LANGUAGE plpgsql
AS $$
 BEGIN
   NOTIFY xdac, 'reload';
 END;
$$;

CREATE EVENT TRIGGER xdac_watch  ON ddl_command_end  EXECUTE PROCEDURE public.xdac_watch();

При создании нового объекта базы данных, приложение автоматически получит уведомление о необходимости перезагрузить кэш.