Распространенным методом запуска sql-запроса или вызова хранимой процедуры под linux является выполнение команд, наподобие этих
db2 connect to ASV user $DB2_USER using $DB2_PASSWORD
db2 call P_RM5939_DROP_ALL_TABLES\(\)
Иногда за этим следует
db2 connect reset
Мне непонятно, каким образом исполняемый файл db2 получает информацию от предыдущей команды db2 connect (выбор базы данных).
Насколько я знаю, по завершении выполнения исполняемого файла, все открытые файловые дексрипторы и дескрипторы сокетов закрываются.
У меня было предположение, что происходит установка переменной окружения, однако до и после выполнения db2 connect, один и тот же набор переменных.
Как следствие, непонятно, насколько необходима connect reset команда.
Не могли бы вы прояснить вопрос?
Здравствуйте, greydrone, Вы писали:
G>Не могли бы вы прояснить вопрос?
https://www.ibm.com/docs/en/db2/11.5?topic=clp-command-line-processor-features#r0010412__title__6
The command line processor consists of two processes: the front-end process (the Db2 command), which acts as the user interface, and the back-end process (db2bp), which maintains a database connection.
Each time that db2 is invoked, a new front-end process is started. The back-end process is started by the first db2 invocation, and can be explicitly terminated with TERMINATE. All front-end processes with the same parent are serviced by a single back-end process, and therefore share a single database connection.
Спасибо. Теперь понятно. Вот любопытно узнать на счет
db2 connect reset
Я никогда не выполняю эту команду, насколько это может быть вредно?
Может, переполнение максимально возможного числа подключений?
Здравствуйте, greydrone, Вы писали:
G>Спасибо. Теперь понятно. Вот любопытно узнать на счет
G>db2 connect reset
G>Я никогда не выполняю эту команду, насколько это может быть вредно?
G>Может, переполнение максимально возможного числа подключений?
Там же используется connection pooling. Вряд ли вы сможете сильно что-то переполнить — но, естественно, это зависит от подробностей того, что именно и как именно вы делаете.
Наверняка у db2 есть инструменты по анализу статистики — посмотрите, сколько там в итоге получается подключений при вашей повседневной работе.