, возможно, стоит написать функцию, которая удерживает соединение и открывает новое соединение только тогда, когда старое соединение исчезло. Таким образом, вы можете использовать его снова.
В общих чертах это выглядит
function conn = hold_connection_a
persistent local_connection
try
test_connection(local_connection);
catch
local_connection=establish_connection;
end
conn = local_connection;
establish connection
тогда должна быть функция, которую вы используете для подключения и возврата вашего дескриптора. test_connection
должен отправить простой запрос - например, SELECT 1
и выдать ошибку в случае сбоя.
Кстати, если вы используете более одной базы данных, имеет смысл либо иметь несколько из этих hold_connections, либо убедиться, что ваши операторы всегда содержат имя базы данных.
Unrelated:
лично я использую мм , так как я нахожу это быстрее.