4.2.8.3. Хранение свойств в базе данных

Параметры времени выполнения хранятся в таблице SYS_CONFIG базы данных.

Такие свойства имеют следующие особенности:

  • так как значение свойства хранится в базе данных, оно задается в одном месте, независимо от того, в каких блоках приложения оно используется

  • значение может быть изменено и сохранено во время работы приложения, как через конфигурационный интерфейс, содержащий это свойство, так и через ConfigStorageMBean.

  • значение свойства может быть переопределено для конкретного блока приложения в его файле app.properties. Поиск значения всегда происходит в два этапа - сначала в app.properties, если не найдено - то в базе данных. Поэтому изменять значение нужно в обоих местах хранения.

Хранящиеся в БД свойства кэшируются на уровне Middleware. Очистить кэш можно с помощью JMX-интерфейсов ConfigStorageMBean методом clearCache() или CachingFacadeMBean методом clearConfigStorageCache().

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