sql >> Database teknologi >  >> RDS >> Mysql

Java-trådssikre databaseforbindelser

Jeg tror ikke, at det er almindelig praksis at gøre databaseforbindelser trådsikre. Normalt er det, du ønsker, enten:

  • Serialiser adgangen til en del af din servlet, så der ikke er mere end én servlet, der udfører kode ad gangen (f.eks. implementering af SingleThreadModel grænseflade).
  • Låsning af en bestemt tabel/tabelside/række, så du kan arbejde på en bestemt tuple (ved at ændre databaseisolationsniveauet).
  • Brug af optimistisk låsning til at detektere ændrede rækker i en tabel (ved at bruge nogle referenceattributter i tabellen for at kontrollere, om den aktuelle version er den samme som den i tabellen).

AFAIK, den typiske brug af ThreadLocal<Connection> er at gemme en unik databaseforbindelse pr. tråd, så den samme forbindelse kan bruges i forskellige metoder i din forretningslogik, uden at du behøver at sende den som en parameter hver gang. Fordi den fælles servlet-beholderimplementering bruger en tråd til at opfylde en HTTP-anmodning, så er to forskellige anmodninger garanteret at bruge to forskellige databaseforbindelser.



  1. Hvad er den bedste måde at gemme koordinater (længde/breddegrad, fra Google Maps) i SQL Server?

  2. Brug XEvent Profiler til at fange forespørgsler i SQL Server

  3. AWS RDS Postgresql Pgadmin - Serveren lytter ikke

  4. Hvorfor kan jeg bruge et tegn, der ikke er en del af et tegnsæt (windows-1252)?