Если Вы хотите мешать новым пользователям соединиться, но позволить текущим сессиям продолжаться, пока они не неактивны, можно поместить базу данных в режим QUIESCE:
ALTER SYSTEM QUIESCE RESTRICTED;
От Руководство Администратора Базы данных Oracle :
неDBA активные сессии продолжатся, пока они не станут неактивными. Активная сессия является той, которая является в настоящее время в транзакции, запросе, выборке или МН / SQL-ОПЕРАТОРЕ; или сессия, которая в настоящее время содержит любые совместно используемые ресурсы (например, ставит в очередь). Никаким неактивным сессиям не позволяют стать активными... После того как все сессии не-DBA становятся неактивными, оператор ALTER SYSTEM QUIESCE RESTRICTED завершается, и база данных находится в замороженном состоянии
Хотя я не использовал C ++ и, следовательно, Boost, я использовал Переменные с тремя состояниями довольно широко используются в сетевом приложении, где мне нужно сохранять состояние как истина / ложь / ожидание.
Дополнительное состояние в любом типе значения может быть чрезвычайно ценным. Он избегает использования «магических чисел» или дополнительных флагов, чтобы определить, является ли значение переменной «возможно» или «неизвестно».
Вместо истина
или ложь
, состояние трибула
равно истина
, ложь
или неопределенный
.
Допустим, у вас есть база данных, содержащая список клиентов
и их dateOfBirth
. Итак, вы пишете функцию в следующем виде:
tribool IsCustomerAdult(customerName);
Функция возвращает:
`true`, если клиенту 18 лет или больше; `false`, если клиенту меньше 18 лет; неопределенный, если клиента нет в базе данных (или значение dateOfBirth нет).
Очень полезно.
Я видел множество примеры использования двух логических значений для представления трех возможных состояний, явно или иначе, причем четвертое состояние молчаливо предполагается невозможным. По крайней мере, в двух случаях я заменил такие конструкции на использование трибуна с тех пор, как мы начали использовать ускорение.
Я большой поклонник Boost библиотека и начал использовать ее в компании, которую я с тех пор покинул. После знакомства с библиотекой boost и ее широкого использования на протяжении всего нашего проекта я наткнулся на трибул и подумывал об использовании его для нечеткой логики.
Я думаю, что это очень полезно для языкового формообразования, например, для приложений OCR и синтеза речи, потому что, как вы знаете, человеческие языки неоднозначны и имеют много промежуточных состояний
с нетерпением жду улучшения текущих технологий с помощью tribool