i think you need to turn on pool logging, echo_pool='debug'.  Also note the 
"pre-ping" feature in some cases uses a "ping" feature provided by the DBAPI 
which can transparently reconnect (such as mysqlclient) so nothing would be 
seen there.



On Thu, Jun 10, 2021, at 12:57 PM, 'Matt Zagrabelny' via sqlalchemy wrote:
> 
> 
> On Tue, Jun 8, 2021 at 11:58 AM Mike Bayer <mike...@zzzcomputing.com> wrote:
>> __
>>> 
>>> Unknown network failures, I suppose. I have an application that is throwing 
>>> an exception right now due to:
>>> 
>>> psycopg2.OperationalError: terminating connection due to administrator 
>>> command
>>> SSL connection has been closed unexpectedly
>> 
>> right so if that happens on a connection that's been sitting in the pool 
>> when you first go to use it, pre_ping will solve that.  
> 
> Okay. That sounds pretty good.
> 
> I've turned on logging (at the DEBUG level) per...
> 
> https://docs.sqlalchemy.org/en/14/core/engines.html#dbengine-logging
> 
> and I am trying to force an invalid connection by:
> 
> while True:
>     # read stdin
>     o = SQLObject(something_from_stdin)
>     session.add(o)
>     session.commit()
>     # Go to DB server and restart postgresql
> 
> However I don't see any indication that the pre_ping invalidated a 
> connection...
> 
> # Here is the first commit from SA...
> INFO:sqlalchemy.engine.base.Engine:select version()
> INFO:sqlalchemy.engine.base.Engine:{}
> DEBUG:sqlalchemy.engine.base.Engine:Col ('version',)
> DEBUG:sqlalchemy.engine.base.Engine:Row ('PostgreSQL 12.4 (Debian 12.4-3) on 
> x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.0-13) 10.2.0, 64-bit',)
> INFO:sqlalchemy.engine.base.Engine:select current_schema()
> INFO:sqlalchemy.engine.base.Engine:{}
> DEBUG:sqlalchemy.engine.base.Engine:Col ('current_schema',)
> DEBUG:sqlalchemy.engine.base.Engine:Row ('public',)
> INFO:sqlalchemy.engine.base.Engine:SELECT CAST('test plain returns' AS 
> VARCHAR(60)) AS anon_1
> INFO:sqlalchemy.engine.base.Engine:{}
> INFO:sqlalchemy.engine.base.Engine:SELECT CAST('test unicode returns' AS 
> VARCHAR(60)) AS anon_1
> INFO:sqlalchemy.engine.base.Engine:{}
> INFO:sqlalchemy.engine.base.Engine:show standard_conforming_strings
> INFO:sqlalchemy.engine.base.Engine:{}
> DEBUG:sqlalchemy.engine.base.Engine:Col ('standard_conforming_strings',)
> DEBUG:sqlalchemy.engine.base.Engine:Row ('on',)
> INFO:sqlalchemy.engine.base.Engine:BEGIN (implicit)
> INFO:sqlalchemy.engine.base.Engine:INSERT INTO call_records (inserted_at, 
> acct_code, vdn) VALUES (%(inserted_at)s, %(acct_code)s, %(vdn)s) RETURNING 
> call_records.id
> INFO:sqlalchemy.engine.base.Engine:{'inserted_at': 'now', 'acct_code': 'yuy', 
> 'vdn': 'tyt'}
> DEBUG:sqlalchemy.engine.base.Engine:Col ('id',)
> DEBUG:sqlalchemy.engine.base.Engine:Row (18,)
> INFO:sqlalchemy.engine.base.Engine:COMMIT
> 
> # DB restarted and the second pass through the while loop...
> 
> INFO:sqlalchemy.engine.base.Engine:BEGIN (implicit)
> INFO:sqlalchemy.engine.base.Engine:INSERT INTO call_records (inserted_at, 
> acct_code, vdn) VALUES (%(inserted_at)s, %(acct_code)s, %(vdn)s) RETURNING 
> call_records.id
> INFO:sqlalchemy.engine.base.Engine:{'inserted_at': 'now', 'acct_code': '909', 
> 'vdn': '909'}
> DEBUG:sqlalchemy.engine.base.Engine:Col ('id',)
> DEBUG:sqlalchemy.engine.base.Engine:Row (19,)
> INFO:sqlalchemy.engine.base.Engine:COMMIT
> 
> Should I be seeing something in the logs about an invalidated connection?
> 
> Or am I not forcing an invalid connection correctly?
> 
> Thanks for the feedback!
> 
> -m
> 
> 

> -- 
> SQLAlchemy - 
> The Python SQL Toolkit and Object Relational Mapper
>  
> http://www.sqlalchemy.org/
>  
> To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> description.
> --- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/CAOLfK3W539EFhaDYAu3A7Gxr3WrwbdCGX12V_Y19gXZz3O74sA%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/sqlalchemy/CAOLfK3W539EFhaDYAu3A7Gxr3WrwbdCGX12V_Y19gXZz3O74sA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/8c6f4e9f-f660-4eae-b7f9-526495bc49d5%40www.fastmail.com.

Reply via email to