On 27 March 2013 11:19, Krzysztof Bieleń <[email protected]> wrote: > W dniu 2013-03-27 12:10, Mateusz Loskot pisze: >> On 27 March 2013 11:02, isoul zi <[email protected]> wrote: >>> Not to find in soci functions something like soci :: session :: is_open >>> Bad looking? It really is not? And you only need to catch the exceptions? >> You can check if session::get_backend() != nullptr > > I think that @isoul means that there isn't function which checks if tcp > connection with database isn't broken.
Yes, I sensed that. I just suggested related test that is currently possible. > Use case: long running server which doesn't make many queries to server. > Before next query it checks if the tcp connection still exists: > > if (!sql.isConnected()) > sql.reconect(); > > // ... do query > > It isn't perfect but provides simple pattern for reconnecting when tcp > connection goes out. Yes, good point. The trick is that implementing session::is_connected with consistent semantic across variety of backends is not easy, it may be impossible. For example, function PQstatus check only state cached by libpq library: session sql(...) sql.is_connected() -> CONNECTION_OK // someone unplugs power cord of the database server sql.is_connected() -> CONNECTION_OK There is know way libpq to detect external causes of connection lost It can detect local causes only. Unless,something has changed in libpq lately > Also maybe there should be possibility to create connection_pool with > parameter auto_reconnect = true; which ensures that sessions taken from > connection_pool are connected or it will throw execption. Good idea, if you would be willing to submit pull request, please do so. (If it's not a hassle, branch off of 'develop' please into feature/yourbranch i.e. feature/pool_auto_reconnect, trying to make us flowed by gitflow :)) Best regards, -- Mateusz Loskot, http://mateusz.loskot.net ------------------------------------------------------------------------------ Own the Future-Intel® Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d _______________________________________________ soci-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/soci-users
