sql >> Databasteknik >  >> RDS >> Mysql

Java-trådssäkra databasanslutningar

Jag tror inte att det är vanligt att göra databasanslutningar trådsäkra. Vanligtvis är det du vill ha antingen:

  • Serialisera åtkomsten till någon del av din servlet så att det inte finns mer än en servlet som kör kod åt gången (t.ex. implementera SingleThreadModel gränssnitt).
  • Låsa en viss tabell/tabellsida/rad så att du kan arbeta på en viss tupel (genom att ändra databasisoleringsnivån).
  • Använda optimistisk låsning för att upptäcka modifierade rader i en tabell (använda något referensattribut i tabellen för att kontrollera om den aktuella versionen är densamma som den i tabellen).

AFAIK, den typiska användningen av ThreadLocal<Connection> är att lagra en unik databasanslutning per tråd, så att samma anslutning kan användas i olika metoder i din affärslogik utan att behöva skicka den som en parameter varje gång. Eftersom implementeringen av den gemensamma servletbehållaren använder en tråd för att uppfylla en HTTP-begäran, är det garanterat att två olika förfrågningar använder två olika databasanslutningar.



  1. Varför får jag java.lang.AbstractMethodError:oracle.jdbc.driver.OracleConnection-fel?

  2. Automatiserad testning av uppgraderingsprocessen för PXC/MariaDB Galera Cluster

  3. T-SQL Stuff Kommando

  4. datumformat i node.JS