invoso.com Report post Posted 07/17/2019 04:22 PM We found problem with connection to remote database (hosting) - callque 004433.220 21 ERROR v7.6.7 - 7.6.7122.39684 (2019-07-02 22:02:48.56) DoWorkFindCall stage1 : The Connection is broken. System.IO.IOException: Nie można odczytać danych z połączenia transportowego: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta. ---> System.Net.Sockets.SocketException: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta w System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) w System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- Koniec śladu stosu wyjątków wewnętrznych --- w System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) w System.IO.BufferedStream.ReadByte() w Npgsql.NpgsqlState.<ProcessBackendResponses_Ver_3>d__a.MoveNext() w Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() w Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() w Npgsql.ForwardsOnlyDataReader.NextResult() w Npgsql.ForwardsOnlyDataReader.NextResult() w Npgsql.ForwardsOnlyDataReader..ctor(IEnumerable`1 dataEnumeration, CommandBehavior behavior, NpgsqlCommand command, NotificationThreadBlock threadBlock, Boolean synchOnReadError) w Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) w Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior cb) w Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) w System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) w ktlib.vgDb.vgDb_ProviderInvariant.DbProcessQueue_DoQueuedWork_FindCall(Object sender, ProcessingQueueEventArgs`1 args) 004433.220 21 dial timerStartDueDials set to 10 sec 004433.220 21 dial ex stage1 complete ... 010000.221 16 stats BackupStaticsIntoBins zStatsIvrCall dtStart=17.07.2019 00:30:00, dtNowChopped=17.07.2019 01:00:00 010000.222 16 vgio queue post activity 010000.222 16 stats BackupStaticsIntoBins normal rollover to next window 010000.222 7 vgio DoPost start 010000.222 16 stats BackupStaticsIntoBins zStatsIvrCall completed 010000.222 21 ERROR v7.6.7 - 7.6.7122.39684 (2019-07-02 22:02:48.56) DbProcessQueue_DoQueuedWork_RunCoreSql : The Connection is broken. System.IO.IOException: Nie można zapisać danych do połączenia transportowego: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta. ---> System.Net.Sockets.SocketException: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta w System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) w System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- Koniec śladu stosu wyjątków wewnętrznych --- w System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) w System.IO.BufferedStream.Flush() w Npgsql.NpgsqlQuery.WriteToStream(Stream outputStream) w Npgsql.NpgsqlReadyState.QueryEnum(NpgsqlConnector context, NpgsqlCommand command) w Npgsql.NpgsqlConnector.QueryEnum(NpgsqlCommand queryCommand) w Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) w Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) w Npgsql.NpgsqlCommand.ExecuteNonQuery() w ktlib.vgDb.vgDb_ProviderInvariant.DbProcessQueue_DoQueuedWork_RunCoreSql(Object sender, ProcessingQueueEventArgs`1 args) 010000.223 21 ex cmd_CoreSql.CommandText=INSERT into stats_ivr_call (port, datetime_start, datetime_end, calls_in_count, calls_in_time_seconds, calls_in_time_average, calls_out_count, calls_out_time_seconds, calls_out_time_average) VALUES (1, '2019-07-17T00:30:00', '2019-07-17T01:00:00', 0, 0, 0, 0, 0, 0); and this info was repeated until VG restart and then VG can connect to database properly. How to prevent this problem in the future and reconnect properly to callque table (database) to keep continuity? Share this post Link to post
SupportTeam Report post Posted 07/18/2019 12:30 AM Database connections are automatically re-established if lost. The trace excepts supplied just show that the connection to database was lost at two different times: at: 12:44 AM and at 1:00 AM. If you can post full vgEngine trace from that day then that trace will show for how long the remote database was unreachable, and at what times the database was reachable and the connection was re-established. Share this post Link to post
invoso.com Report post Posted 07/18/2019 08:35 AM 0717_0000_vgEngine.zip Share this post Link to post
SupportTeam Report post Posted 07/18/2019 02:37 PM This system is using PostgreSQL for its back-end database, and is using the Npgsql ADO.NET data provider to communicate with that database. Can you please advise what version of the Npgsql driver (Npgsql.dll file) is on your system, and which version of PostgreSQL it is used to connect to. (If the Npgsql.dll file is present in VoiceGuide directory then that is the data provider driver that VoiceGuide would be using) It looks like that Npgsql version used on system right now is not setting the database connection status correctly upon database connection error, and hence the re-connection process is not triggered by VoiceGuide. You could try using a later version of Npgsql.dll (can download from here: https://github.com/npgsql/Npgsql/releases - latest current version is 4.0.7) but recommend backing up the Npgsql.dll file first to ensure ability to roll back to current version if any issues are encountered after moving to other version. (ie. backup the Npgsql.dll file in VoiceGuide directory). VoiceGuide service should be stopped before the Npgsql.dll can be renamed/overwritten/updated. Share this post Link to post