Database 如何在postgres中添加警告信息

Database 如何在postgres中添加警告信息,database,postgresql,postgresql-9.6,Database,Postgresql,Postgresql 9.6,我得到以下警告 警告:已存在正在进行的事务 在我的数据库中,我想调查发生这种情况的原因。然而,由于数据库可以通过许多微服务访问,我找不到哪个服务正在尝试启动新的/并行连接 如何提高此邮件的信息级别?像时间戳一样,试图启动连接的人,如client\u addr字段或任何其他将揭示故障根源的信息 提前感谢来源-启动事务两次,例如: t=# begin; BEGIN Time: 22.594 ms t=# begin; WARNING: there is already a transaction

我得到以下警告

警告:已存在正在进行的事务

在我的数据库中,我想调查发生这种情况的原因。然而,由于数据库可以通过许多微服务访问,我找不到哪个服务正在尝试启动新的/并行连接

如何提高此邮件的信息级别?像时间戳一样,试图启动连接的人,如
client\u addr
字段或任何其他将揭示故障根源的信息


提前感谢来源-启动事务两次,例如:

t=# begin;
BEGIN
Time: 22.594 ms
t=# begin;
WARNING:  there is already a transaction in progress
BEGIN
Time: 1.269 ms

要查看谁在何时发送消息,请将
log\u min\u messages
设置为至少警告,
log\u line\u prefix
将%h设置为IP,将%m设置为时间,将%u设置为用户名-,(
logging\u collector
当然打开)并检查日志您可以做很多事情来了解发生了什么。首先,您可以查看PostgreSQL日志以了解发生了什么。如果您没有访问日志的权限。通过运行下一个查询,可以检查事务中哪些查询处于活动、空闲或空闲状态:

SELECT
  pid,
  query,
  state
FROM pg_stat_activity
通过添加到查询
WHERE state='active'

重要提示:

如果您使用服务访问数据库(特别是c#services(凭经验)),您必须检查与数据库的连接。因为如果配置不正确,最终会得到每个事务只能接受一个用户的服务,这是非常危险的

问题可能是您正在通过一个连接向数据库发送呼叫,而“服务”从未打开新的连接。因此,PostgreSQL将拒绝任何传入查询并设置消息:

警告:已存在正在进行的事务

因为连接通道正被一个事务使用