Мы поддерживаем приложение, которое делает именно то, что вы пытаетесь выполнить.Да, каждый session.refresh () будет попадать в базу данных, но, поскольку все сеансы обновляют одну и ту же строку в одно и то же время, сервер БД будет отвечать на все эти запросы из памяти.
Единственное, что вывсе еще нужно решить, как распространять информацию о том, что что-то изменилось и нуждается в перезагрузке для всех других сеансов, возможно, даже для сеансов на другом хосте.
Для нашего приложения у нас около 30 пользователей на RCP и10-100 пользователей на экземплярах RAP, которые все подключаются к одному и тому же бэкэнду БД (хотя и через pgpool).Мы используем небольшую сетевую службу, к которой подключается каждая среда выполнения;когда транзакция фиксируется, приложение сообщает этой службе изменений, что «идентификатор строки X таблицы T» изменился, и затем он распространяется на все другие «изменения подписчиков», даже через JVM.
Но:убедитесь, что session.refresh () вызывается в потоке, принадлежащем этому сеансу, возможно, в потоке RAP-Display.Не вызывайте refresh () из Jobs или других не связанных между собой потоков.
Пока у вас мало пользователей, которые обновляют большое количество строк за короткое время, думаю, вам не придется беспокоиться опроизводительность.