外部データベースにクエリを実行していますが、次のエラーがスローされます。
ERROR: 25006: cannot execute UNLISTEN during recovery
私の理解では、postgreSQLは終了するたびにこれを呼び出します。これは、これが接続を閉じることによって引き起こされることを示しています。
私にとって奇妙なことは、コードがデータベースへの接続を開くことができたように見えますが、接続を閉じようとするとエラーが発生したことです。また、これは散発的にのみ発生するようですが、これはデータベース自体が再起動したことが原因である可能性がありますか?
postgreSQLはどのようにして接続を開くことができますが、接続を閉じることはできませんか?
以下は実行されるコードです。厄介な行はdbConn.Close()です。
Dim sConnectionString as String = "Server=10.2.21.46;Port=5432;User Id=myuser;Password=mypsw;Database=demos;"
Dim sErrorMessage As String = ""
Dim bConnectionOpen As Boolean = False
Dim dbConn As Npgsql.NpgsqlConnection = New Npgsql.NpgsqlConnection(sConnectionString)
Try
dbConn.Open()
bConnectionOpen = True
Catch
sErrorMessage = "open connection fail."
End Try
If bConnectionOpen Then
Dim cmdTxt As String = sQueryString
Dim cmdTmp As Npgsql.NpgsqlCommand = New Npgsql.NpgsqlCommand(cmdTxt, dbConn)
Dim bReaderOpen As Boolean = False
Dim rsTmp As Npgsql.NpgsqlDataReader
Try
rsTmp = cmdTmp.ExecuteReader()
bReaderOpen = True
Catch
sErrorMessage = "ExecuteReader fail."
End Try
If bReaderOpen Then rsTmp.Close()
rsTmp = Nothing
dbConn.Close()
End If