JdbcContext¶
- public final class JdbcContext extends CloseableObjAbst¶
Создаёт контекст, в рамках которого можно отслеживать, для какой формы, рабочей сессии, и gtk сессии выделяется jdbc соединение. Экземпляр класса регистрируется для потока. Содержит список PID (Process ID) sql-соединений, используемых в данном потоке. Необходим для мониторинга состояния сервера.
Constructors¶
JdbcContext¶
- public JdbcContext()¶
Methods¶
acquirePID¶
- public synchronized boolean acquirePID(String dbAlias, String pool, int pid)¶
Увеличивает счётчик блокировок PID’а, что блокирует закрытие соединения, которому сответсвует данный PID. Поток, владеющий этим соединением, будет ожидать уменьшения счётчика до “0”.
- Parameters:
dbAlias – Псевдоним решения/БД.
pool – Краткое имя пула соединений в контексте решения.
pid – Process ID соединения.
- Returns:
true, если увеличение счётчика завершилось успешно, иначе - false.
closeAndRemoveThreadJdbcContext¶
- public static void closeAndRemoveThreadJdbcContext()¶
Разрегистрирует JdbcContext текущего потока и закрывает его.
- Throws:
ApplicationException– Если что-то пошло не так.
forActiveSession¶
- public <R> R forActiveSession(CoreSession coreSession, AppFunction<R> func)¶
Выполняет добавление Core-сессии в стек JdbcContext’a, выполнение анонимного метода, изъятие Core-сессии из стека JdbcContext’a.
- Parameters:
coreSession – Core-сессия
func – Анонимный метод
<R> – Тип результата анонимного метода
- Throws:
ApplicationException– Если что-то пошло не так.
- Returns:
Результат анонимного метода
forActiveSession¶
- public void forActiveSession(CoreSession coreSession, AppProcedure proc)¶
Выполняет добавление Core-сессии в стек JdbcContext’a, выполнение анонимного метода, изъятие Core-сессии из стека JdbcContext’a.
- Parameters:
coreSession – Core-сессия
proc – Анонимный метод
- Throws:
ApplicationException– Если что-то пошло не так.
forThread¶
- public static void forThread(AppProcedure proc)¶
Инициализирует новый JdbcContext для текущего потока, если контекст отсутствует, и выполняет анонимный метод
- Parameters:
proc – Анонимный метод
- Throws:
ApplicationException– Если что-то пошло не так.
forThread¶
- public static void forThread(JdbcContext jdbcContext, AppProcedure proc)¶
Устанавливает переданный JdbcContext для текущего потока и выполняет анонимный метод
- Parameters:
jdbcContext – JdbcContext
proc – Анонимный метод
- Throws:
ApplicationException– Если что-то пошло не так.
forThread¶
- public static <R> R forThread(ForwardFunction<R> func)¶
Инициализирует новый JdbcContext для текущего потока, если контекст отсутствует, и выполняет анонимный метод
- Parameters:
func – анонимный метод
<R> – Тип результата анонимного метода
- Throws:
ApplicationException– Если что-то пошло не так.
- Returns:
результат вызова анонимного метода
forThread¶
- public static <R> R forThread(JdbcContext jdbcContext, ForwardFunction<R> func)¶
Инициализирует новый JdbcContext для текущего потока и выполняет анонимный метод
- Parameters:
jdbcContext – JdbcContext
func – анонимный метод
<R> – Тип результата анонимного метода
- Throws:
ApplicationException– Если что-то пошло не так.
- Returns:
результат вызова анонимного метода
getActiveSessionCount¶
- public synchronized int getActiveSessionCount()¶
- Returns:
Число уникальных GTK-сессий в текущем стеке вызовов.
getGtkSessionEntry¶
- public synchronized JdbcContext.GtkSessionEntry getGtkSessionEntry(CoreSession coreSession)¶
getGtkSessionEntryArray¶
- public synchronized JdbcContext.GtkSessionEntry[] getGtkSessionEntryArray()¶
getJdbcConnectionEntryArray¶
- public synchronized JdbcContext.JdbcConnectionEntry[] getJdbcConnectionEntryArray()¶
- Returns:
Список структур, содержащих информацию о Jdbc-соединениях
getOptionalThreadContext¶
- public static Optional<JdbcContext> getOptionalThreadContext()¶
getPidVersion¶
- public synchronized Long getPidVersion(String dbAlias, String pool, int pid)¶
Возвращает значение счётчика регистраций для sql-соединения с указанными параметрами
- Parameters:
dbAlias – Псевдоним решения/БД.
pool – Краткое имя пула соединений в контексте решения.
pid – Process ID соединения.
- Returns:
значение счётчика регистраций
getThreadContext¶
- public static JdbcContext getThreadContext()¶
Возвращает JdbcContext, зарегистрированный ранее для текущего потока.
- Throws:
ApplicationRuntimeException– , если JdbcContext не инициализтрован для потока
- Returns:
JdbcContext текущего потока
newInstance¶
- public static JdbcContext newInstance()¶
Инициализирует новый экземпляр контекста
- Returns:
JdbcContext
onClose¶
- protected void onClose()¶
peekActiveJdbcConnectionEntry¶
- public synchronized JdbcContext.JdbcConnectionEntry peekActiveJdbcConnectionEntry()¶
- Returns:
Активное jdbc-соединение, для текущей GTK-сесиии
peekActiveSession¶
- public synchronized CoreSession peekActiveSession()¶
- Returns:
Текущая активная сессия
popActiveSession¶
- public synchronized CoreSession popActiveSession()¶
Вынимает из стека активных сессий последнюю добавленную
- Throws:
ApplicationException– Что-то пошло не так.
- Returns:
Вынутая из стека сессия
pushActiveSession¶
- public synchronized void pushActiveSession(CoreSession coreSession)¶
Помещает сессию в стек активных сессий
- Parameters:
coreSession – прикладная сессия
registerJdbcConnection¶
- public synchronized void registerJdbcConnection(String dbAlias, String pool, Connection jdbcConnection, int pid)¶
Регистрирует PID в JdbcContext текущего потока.
- Parameters:
dbAlias – Псевдоним решения/БД.
pool – Краткое имя пула соединений в контексте решения.
jdbcConnection – Соединение с БД.
pid – Process ID - идентификатор соединения в БД.
registerSession¶
- public synchronized void registerSession(CoreSession coreSession)¶
Регистрирует CoreSession
- Parameters:
coreSession – прикладная сессия
registerThreadJdbcContext¶
- public static JdbcContext registerThreadJdbcContext()¶
Создаёт и регистрирует JdbcContext для текущего потока, если объкект не был зарегистррован ранее. Создание новых контекстов должно производится только в начале работы рабочего сеанса (WorkSession)
- Returns:
JdbcContext текущего потока
releasePID¶
removeClosedJdbcConnections¶
- public synchronized void removeClosedJdbcConnections(CoreSession coreSession)¶
Удаляет ссылки на Jdbc-соединения, для которых не был вызыван метод close() в следствии аварийного закрытыя (особеннность Postgres).
- Parameters:
coreSession – Gtk-сессия, которой ограничен список проверчемых Jdbc-соединений.
removeClosedJdbcConnections¶
- public synchronized void removeClosedJdbcConnections(CoreSession coreSession, boolean logOpened)¶
Удаляет ссылки на Jdbc-соединения, для которых не был вызыван метод close() в следствии аварийного закрытыя (особеннность Postgres).
- Parameters:
coreSession – Gtk-сессия, которой ограничен список проверчемых Jdbc-соединений.
logOpened – Управляет записью в лог сообщения о наличии не закрытых SQL-соединений.
removeClosedJdbcConnections¶
- public synchronized void removeClosedJdbcConnections()¶
Удаляет ссылки на Jdbc-соединения, для которых не был вызыван метод close() в следствии аварийного закрытыя (особеннность Postgres).
removeJdbcConnection¶
- public synchronized void removeJdbcConnection(String dbAlias, String pool, Connection jdbcConnection, int pid)¶
Разрегистрирует PID в JdbcContext текущего потока
- Parameters:
dbAlias – Псевдоним решения/БД.
pool – Краткое имя пула соединений в контексте решения.
jdbcConnection – соединение с БД
pid – Process ID
removeSession¶
- public synchronized void removeSession(CoreSession coreSession)¶
Разрегистрирует CoreSession
- Parameters:
coreSession – прикладная сессия
removeThreadJdbcContext¶
- public static void removeThreadJdbcContext()¶
Deprecated since version Название: не даёт понимания, что же происходит с контекстом
Разрегистрирует JdbcContext текущего потока и закрывает его.
- Throws:
ApplicationException– Если что-то пошло не так.
setThreadContext¶
- public static JdbcContext setThreadContext(JdbcContext jdbcContext)¶
Устанавливает экземпляр JdbcContext в текущий поток.
- Parameters:
jdbcContext – JdbcContext
- Throws:
ApplicationRuntimeException– , если JdbcContext для потока уже был установлен
- Returns:
jdbc-контекст