VoiceGuide IVR Software Main Page
Jump to content

Lost connection to callque

Recommended Posts

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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×