Se você quiser manter a conexão aberta é só chamar
mysql::ping $dbhandle
de tempos em tempos.
Isso pode ser feito com algo assim:
proc keepMySqlOpen {dbhandle} {
mysql::ping $dbhandle
after 2000 [list keepMySqlOpen $dbhandle]
}
....
set dbh [mysql::open ...]
keepMySqlOpen $dbh
...
Uma outra opção é usar
mysql::ping
antes de acessar o banco de dados, que deve de acordo com o manual mysqltcl
reconecte se necessário. Este pode ser o melhor dos dois mundos (deixe a conexão expirar se não houver muita atividade, mantenha-a aberta caso contrário).