sql >> データベース >  >> RDS >> Mysql

Javaスレッドセーフなデータベース接続

    データベース接続をスレッドセーフにすることは一般的な方法ではないと思います。通常、必要なものは次のいずれかです。

    • サーブレットの一部へのアクセスをシリアル化して、一度にコードを実行するサーブレットが1つだけになるようにします(例:SingleThreadModelの実装) インターフェース)。
    • 特定のテーブル/テーブルページ/行をロックして、特定のタプルを操作できるようにします(データベースの分離レベルを変更することにより)。
    • 楽観的ロックを使用してテーブル内の変更された行を検出します(テーブルの参照属性を使用して、現在のバージョンがテーブル内のバージョンと同じかどうかを確認します)。

    AFAIK、ThreadLocal<Connection>の一般的な使用法 スレッドごとに一意のデータベース接続を格納することで、毎回パラメータとして渡す必要なしに、ビジネスロジックのさまざまなメソッドで同じ接続を使用できるようにします。一般的なサーブレットコンテナの実装ではスレッドを使用してHTTPリクエストを実行するため、2つの異なるリクエストが2つの異なるデータベース接続を使用することが保証されます。



    1. 2つの日付の間に欠落している日付を挿入するための集計表? SQL

    2. 自動インクリメンタルデータベースを使用したLaravelupdateOrCreate

    3. 1.22にアップグレードしようとしたときにMediaWikiDB接続エラーが発生しました

    4. SqlServer:ユーザーのログインに失敗しました