=?ISO-8859-2?Q?Brak_b=B3=EAdu?=
yogi - 15-03-2007 00:03
=?ISO-8859-2?Q?Brak_b=B3=EAdu?=
Witam mam następujący problem. Jest sobie ankieta która składa się z 20 pytan, każda odpowiedz na pytanie skutkuje insertem do bazy MySQL 5.0 InnoDB. Kiedy ankieta jest wypełniana przez jednego uzytkownika wszystko jest ok, problemy zaczynają się kiedy jest ich kilku. Baza albo nie zapisuje niektórych odpowiedzi albo zapisuje je podwójnie. Program napisana jest w javie i oparty na TOMCATcie a do komunikacji używam sterownika JDBC: mysql-connector-java-5.0.4-bin.jar, autoCommit ustawony na ‘FALSE’ po insercie jest komitowany. Brak jakichkolwiek informacji o błędzie, czy to normalne w MySQLu? Proszę o sugestie gdzie szukać przyczyny.
Yogi,
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Maciek Dobrzanski - 15-03-2007 00:04
In news:et8g89$p1d$1@inews.gazeta.pl, yogi <yogi28@WYTNIJ.gazeta.pl> wrote:
> Jest sobie ankieta która składa się z 20 pytan, każda odpowiedz na > pytanie skutkuje insertem do bazy MySQL 5.0 InnoDB. Kiedy ankieta > jest wypełniana przez jednego uzytkownika wszystko jest ok, problemy > zaczynają się kiedy jest ich kilku. Baza albo nie zapisuje niektórych > odpowiedzi albo zapisuje je podwójnie.
Zapis podwójny to raczej błąd w aplikacji, natomiast brak zapisu to być może kwestia zakleszczania się wielu transakcji, skoro wyłączone jest autocommitowanie. Sprawdź czy są prawidłowo zamykane oraz jaki jest czas trwania pojedyńczej transakcji. Aczkolwiek błędy powinny być zwracane do klienta w takim przypadku (nie znam javowych connectorów, może tam jest "inaczej" ;)).
Maciek
kuczek@kuczek.pl - 15-03-2007 00:04
=?iso-8859-2?B?UmU6IEJyYWsgYrPqZHU=?=
On 14 Mar, 10:45, "yogi " <yog...@WYTNIJ.gazeta.pl> wrote: > Witam mam następujący problem. > Jest sobie ankieta która składa się z 20 pytan, każda odpowiedz na pytanie > skutkuje insertem do bazy MySQL 5.0 InnoDB. Kiedy ankieta jest wypełniana > przez jednego uzytkownika wszystko jest ok, problemy zaczynają się kiedy jest > ich kilku. Baza albo nie zapisuje niektórych odpowiedzi albo zapisuje je > podwójnie. > Program napisana jest w javie i oparty na TOMCATcie a do komunikacji używam > sterownika JDBC: mysql-connector-java-5.0.4-bin.jar, autoCommit ustawony na > ‘FALSE’ po insercie jest komitowany. > Brak jakichkolwiek informacji o błędzie, czy to normalne w MySQLu? > Proszę o sugestie gdzie szukać przyczyny. > > Yogi,
Być może po stronie aplikacji i/lub struktury bazy. Przede wszystkim: 1. Jeśli zapis nie powiódł się, powinieneś w kodzie sprawdzićto i obsłużyć wyjątek. 2. Zapis "podwójny" - jak rozumiem założyłeś klucze itd. W takim razie szukaj sytuacji, w których wywołujesz insert w kodzie po raz drugi. 3. Logowanie wyjątków po stronie aplikacji zgodnie z ustawionym debug- level nie jest złym pomysłem. Może na początek zrzucaj do log-a wszystkie wykonywane zapytania ? 4. Dość niepokojące jest stwierdzenie "Kiedy ankieta jest wypełniana przez jednego uzytkownika wszystko jest ok, problemy zaczynają się kiedy jest ich kilku. ". Czyżbyś generował nowy klucz funkcją max() zamiast zrobić to jak należy ?
BTW. za mało danych, by zgadnąć.
Pozdrawiam Ronald Kuczek
yogi - 17-03-2007 00:02
=?ISO-8859-2?Q?Re:_Brak_b=B3=EAdu?=
Dodam jeszcze ze błędy pojawiają się średnio raz na 1000 insertów, brak jakich kolwiek błędów, aplikacja działa na linuxie dystrybucja Fedora, baza danych 5. 0.17. Wydaje mi się że jest to może kwestia wielo-dostępu, jednocześnie ankiete wypełnia ok 400 użytkowników. A może MYSQL nie radzi sobie?, nie znam tej bazy, może są jakieś parametry które mają wpływ na concurrent insert?. Jest taki parametr ale on dotyczy chyba tylko MYISAM.
Pozdrawiam Yogi.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?=
=?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?=
=?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
Manager =?ISO-8859-2?Q?font=F3w=2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.plczterowers.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|