カーソルへの不正なアクセスや応答を受け取る際のエラーが原因です。
応答を受け取る際にエラーがあった場合は、より詳細なエラーメッセージが得られます。 問題の原因を調べるために役立つでしょう。 エラーメッセージをプログラム上で読み取るのは少し面倒なので、 例外の個々の要因に対してエラーコードも割り当てられています。
threw away response, please try again
Code: 1
シングルスレッドアプリケーションではまず発生しません。 データベースがあるスレッドに応答を送信しているときに、 別のスレッドがそれを捨ててしまった場合に発生します。 クエリを再発行する必要があります。 おそらくスレッドを減らすことになるでしょう。
various
Code: 1
データベースとの接続が確立されていなかったために データベースからの応答を受け取れませんでした。
various
Code: 2
リクエストのタイムアウトで発生します。 この場合に返すエラーメッセージは、C のソケットライブラリが返すものとなります。
no db response
Code: 4
これはエラーではないかもしれません。たとえば、データベースの "shutdown" コマンドは何も応答を返しません。 しかし、もし何らかの応答を得ることを期待していたのにこのエラーになったのなら、 データベースがその応答を返さなかったことを意味します。
bad response length: %d, max: %d, did the db assert?
これは、データベースの応答が 4MB を超えるかあるいは 0 未満であることを意味します。 5MB を超えるような値が返ってくるようなら、データベースのバグである可能性があります (応答の最大長は 4MB です)。開発者に報告しましょう。 0 未満の応答は、たいていデータベースのアサーションが発生したことを意味します。
incomplete response
めったにありませんが、 データベースの応答が正常にはじまったけれど途中で終わってしまった場合に発生します。
error getting database response: errstr
WSA error getting database response: errstr
"errstr" は、C のソケットから直接返ってきた入出力エラーです。 Windows では、エラーメッセージの先頭に "WSA" がつきます。