为什么Npgsql有时候没有响应?

时间:2017-05-29 03:19:11

标签: npgsql

我使用的是Npgsql 3.2.2 我连接到Web服务器的数据库:

   <add key="CONNECTION_STRING_WEBSERVER" value="Server=abctest.com;Port=5432;UserId=postgres;Password=postgres;Database=testdatabase;CommandTimeout=300;" />

我获取数据的查询:

Dim sql="Select * from table1;"

我的职能:

private DataTable getData(string tableName)
    {
        DataSet ds = null;
        DataTable tbl = null;

        try
        {

            if (m_ConnectionExecute == null)
            {
                 m_ConnectionExecute = new NpgsqlConnection(m_connString_web);                 

            }
            if (m_ConnectionExecute.State != ConnectionState.Open)
            {
                m_ConnectionExecute.Open();               
            }

            NpgsqlDataAdapter adapter = new NpgsqlDataAdapter();            
            NpgsqlCommand command = null;
            try
            {
                command = CreateCommand(m_Parameters);
                command.CommandText = m_commText;
                command.Connection = m_ConnectionExecute;
                adapter.SelectCommand = command;

                ds = new DataSet();
                adapter.Fill(ds, "Table1");
                tbl = ds.Tables[0];
                tbl.TableName = tableName;
                ds.Tables.Clear();

            }
            catch (SqlException ex)
            {
                ds = null;
            }
            finally
            {
                if ( m_ConnectionExecute != null && m_ConnectionExecute.State != ConnectionState.Closed)
                {
                    m_ConnectionExecute.Close();                   
                }
            }
        }
        catch (Exception e)
        {

            ds = null;
            tbl = null;
        }      

        return tbl;
    }

我使用Timer:5s会调用函数getData

但有时候,函数getData没有响应,我的程序无法继续下一个进程。

问题只发生在Timer运行几天并且数据库放在Web服务器上时。 注意:我有5个Timer运行自动访问数据库。

原因是什么?或限制postgresql? 为什么Npgsql有时候没有响应?

0 个答案:

没有答案