使用 Poco::Data::MySQL
和 Poco::Data::SessionPool
运行多线程 C 应用程序时,出现 ER_NET_PACKETS_OUT_OF_ORDER
错误。错误消息如下所示:
MySQL: [MySQL]: [Comment]: mysql_stmt_prepare error [mysql_stmt_error]: Got packets out of order [mysql_stmt_errno]: 1156 [mysql_stmt_sqlstate]: 08S01 [statemnt]: ...
应用程序每 100 毫秒从多个线程进行查询。连接由公共 SessionPool
提供。
我通过在连接字符串中添加
reset=true
解决了这个问题。但是,正如官方文档中所述,添加此选项可能会导致编码问题。