差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
blog:2020:2020-06-30 [2020-06-30 11:27]
Decomo 作成
blog:2020:2020-06-30 [2021-04-06 09:38] (現在)
Decomo
行 1: 行 1:
-====== PostgreSQLDBドライバ経由で使った時の「SSL error」はスレッド周りを見直す ======+====== PostgreSQLDBドライバ使時の「SSL error」はスレッド周りを見直す ======
  
 超絶ハマったのでメモ。 超絶ハマったのでメモ。
行 23: 行 23:
 それらしい単語でググると、postgresのSSLを無効にして解決とか出てくるけど、それって何の解決にもなってなくね?っていう。自分が加えた変更以後に発生するようになったので、原因は間違いなく自分ってことだけはハッキリしてる( ˘ω˘ )。 それらしい単語でググると、postgresのSSLを無効にして解決とか出てくるけど、それって何の解決にもなってなくね?っていう。自分が加えた変更以後に発生するようになったので、原因は間違いなく自分ってことだけはハッキリしてる( ˘ω˘ )。
  
-DBドライバとコネクションについて調べ、コードを追ってみたところ、スレッドをまたいで同一のDBコネクションを使ってたのが原因のようだった。一般的に、1つのデータベースコネクションを複数のスレッドで操作するのは禁じ手だそうで、[[https://doc.qt.io/qt-5/threads-modules.html|Qtのドキュメント]]にも<blockquote>+DBドライバとコネクションについて調べ、コードを追ってみたところ、スレッドをまたいで同一のDBコネクションを使ってたのが原因のようだった。一般的に、1つのデータベースコネクションを複数のスレッドで操作するのは禁じ手だそうで、[[https://doc.qt.io/qt-5/threads-modules.html#threads-and-the-sql-module|Qtのドキュメント]]にも<blockquote>
 A connection can only be used from within the thread that created it. Moving connections between threads or creating queries from a different thread is not supported. \\ //(訳:コネクションは生成されたスレッドからしか使用できない。コネクションのスレッドをまたぐ移動や異なるスレッドからのクエリ生成は非対応。)//</blockquote>という記述がある。でーびーしょしんしゃなのでしらんかった。 A connection can only be used from within the thread that created it. Moving connections between threads or creating queries from a different thread is not supported. \\ //(訳:コネクションは生成されたスレッドからしか使用できない。コネクションのスレッドをまたぐ移動や異なるスレッドからのクエリ生成は非対応。)//</blockquote>という記述がある。でーびーしょしんしゃなのでしらんかった。
  
  • blog/2020/2020-06-30.1593484057.txt.gz
  • 最終更新: 2020-06-30 11:27
  • by Decomo