21. februar 2002 - 13:18Der er
4 kommentarer og 1 løsning
Samtidig adgang til SQL Server
Hvis 2 eller flere klienter tilgår denne side på samme tid (dvs. indenfor samme sekund) opstår der en SQL exception. Hvorfor får jeg denne exception og hvordan undgår jeg den?
På forhånd tak
PLATFORM OS: MS Windows 2000 server IS: MS IIS 5.0 AP: Tomcat 3.2 DB: MS SQL server 2000
Skift tomcat ud, specielt versioner før V4 er totalt dårligt og fyldt med fejl.
Nu bruger jeg aldrig odbc bridgen (er langsom) men kobler altid direkte op imod databasen, derfor er jeg lidt i tvivl om du ikke skulle tage og angive server navn i din getConnection();
Det er en meget dårlig vane at bruger getString(int) istedet for getString(String), hvis der pludseligt bliver lavet om på rækkefølgen af kolonner dør dit program.
Fejlen opstår, fordi de to (eller flere brugere) benytter samme Connection, Statement og ResultSet. Sandsynligvis sker det fordi de to brugere render igennem det samme ResultSet, og derfor påvirker hinandens resulteter.
Den letteste løsning vil være at fjerne udråbstegnet ierklæringen af variabler. Så vil de to brugere ikke længere dele samme instanser af variablerne, og dine problemer skulle være løst (men det performer nok lidt langsommere for bruger to, men det er vel bedre end hvis dte slet ikke virker!!)
Måske kan du speede performance en lile smule op ved at bruge PreparedStatements, f.eks.
PreparedStatement prepStmt = connection.prepareStatement("SELECT * FROM mytabel;"); rs = prepStmt.executeQuery();
Det vil få de fleste databser til at performe en smule hurtigere. Endelig kan en Connectionpool speede tingene yderligere op, hvis det senere viser sig nødvendigt.
Måske er det ikke tomcats skyld, men den er kendt for at være ret dårlig og fejlfyldt.
Hovedproblemmet her er der faktisk endnu, nemlig det at det er meget dårligt design at blande design (html/jsp) med funktionalitet (java klasser).
Brug jsp til at have html i som kalder java beans via custom tags.
Havde du gjort dette fra starten var dit problem aldrig opstået.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.