使用PGPOOL集群

时间:2016-05-17 13:54:43

标签: npgsql

我的问题详情如下,

工作环境

  • Npgsql = 3.0.7
  • 实体框架= 6.1.3
  • PGPOOL = 3.5.2
  • Postgres = 9.4.8

查询数据库时,经常发生以下错误(异常可能会随时间和地点而变化。)

  

错误System.IO.EndOfStreamException:尝试读取流的结尾。
  在Npgsql.NpgsqlBuffer.Ensure(Int32计数)
  在Npgsql.NpgsqlConnector.DoReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage,Boolean isPrependedMessage)
  在Npgsql.NpgsqlConnector.ReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage)
  在Npgsql.NpgsqlCommand.Execute(CommandBehavior行为)
  在Npgsql.NpgsqlCommand.ExecuteDbDataReaderInternal(CommandBehavior行为)
  在Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior行为)
  在System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func 3操作,TInterceptionContext interceptionContext,Action 3 executing, Action 3执行)
  在System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand命令,DbCommandInterceptionContext interceptionContext)
  在System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior behavior)

或:

  

错误System.IO.EndOfStreamException:尝试读取流的结尾。
  在Npgsql.NpgsqlBuffer.Ensure(Int32计数)
  在Npgsql.NpgsqlConnector.DoReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage,Boolean isPrependedMessage)
  在Npgsql.NpgsqlConnector.ReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage)
  在Npgsql.NpgsqlConnector.ReadExpectingT
  at Npgsql.NpgsqlConnector.ExecuteInternalCommand(FrontendMessage message,Boolean withTimeout)
  在Npgsql.NpgsqlTransaction.Commit()
  在System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action 2操作,TInterceptionContext interceptionContext,Action 3 executing, Action 3执行)

相同的查询在没有pgpool的情况下运行,不能获得上述异常。

你能建议我解决这个问题吗?

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

这似乎是https://github.com/npgsql/npgsql/issues/1060的副本,已经修复。尝试使用新的3.1.0来查看它是否解决了你的问题(注意,它可能有点原始),或等到3.0.8出来 - 它也将包含修复。