• Geeks' Blog

Deadlock, Database is locked

SQLITE_BUSY

W artykule SQLite jako baza danych tranformacji Pentaho opisywaliśmy jak użyteczna jest to baza danych. Minmalistyczna, wszystko zawarte w jednym pliku, bardzo szybka. Ale baza ta potrafi miec czkawki przy wiekszej ilosci danych. Nawet jeśli program który jej używa zamyka połączenia (Pentaho robi to domyślnie), sama baza jest nadal zajęta sobą i nie reaguje na czas. Żadne żonglowanie ilością sesji, ilością połączeń tutaj nie pomoże. W efekcie wywołanie następnego połączenia do tabeli/bazy powoduje komunikat SQLException: [SQLITE_BUSY] The database file is locked (database is locked)... lub podobny.

Zauważyć to można np. przy kasowaniu dużej ilości danych z tabeli. Zatem należy unikać takich operacji jeśli mamy wiele rekordów w tabeli (dziesiątki, setki tysięcy...). Co prawda baza SQLite przy wykonywaniu DELETE FROM table używa "TRUNCATE optimizera" ale rezultat jest kiepski. Rozwiązaniem może być użycie DROP TABLE i utworzenie tabeli na nowo.

Dodatkowe zalecenie to większe odstępy czasowe między komendami które wykonują operacje na bazie danych.

Więcej…

Oracle Apex - Wykonywanie procedury PL/SQL z poziomu JavaScript

Czasami w aplikacji web zachodzi konieczność połaczenia informacji pobranych z bazy z tymi które właśnie wprowadza użytkownik. Pełnego zestawu potrzebnych informacji nie ma ani w bazie, ani w formularzu użytkownika - trzeba te części połączyć.

To co jest po stronie klienta, w przeglądarce, najlepiej odczytać używając JavaScript. To co jest w tabeli, pisząc kod PL/SQL. Jak to połączyć? Używając metody AJAX. Za wikipedia:

Asynchroniczny JavaScript i XML (Asynchronous JavaScript and XML, AJAX) – technika tworzenia aplikacji internetowych, w których interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu, w sposób asynchroniczny. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w tradycyjnym modelu, w którym każde żądanie nowych danych wiąże się z przesłaniem całej strony HTML.

Więcej…

Oracle Apex interactive grid i dynamiczne sumowanie kolum

Czasami w projekcie, w widoku inteactive grid mamy potrzebę dynamicznego podsumowania wartości wszystkich wierszy w kolumnie (np. by obliczyć wartość faktury) lub wykonania operacji przeliczenia wszystkich składników dokumentu jeśli zmienimy którekolwiek pole w formularzu. Gdyby była to wspomniana wcześniej faktura to np. po zmienie lilości w którymkolwiek wierszu potrzebowalibyśmy obliczyć wartość total tego wiersza na nowo i dokonać wyliczenia podatku, sumy netto i brutto całej faktury.

API apex.region zapewnia pojedynczy interfejs dla wszystkich popularnych funkcji Application Express związanych z regionami. Ten interfejs API zwraca obiekt regionu Application Express, który jest używany do uzyskiwania dostępu do funkcji i właściwości związanych z regionem.

Za pomocą tego API (JavaScript) możemy odczytywać wartość pól i je modyfikować.

Opiszemy przykład który zademonstruje jak zliczyć wartość wszystkich wierszy kolumny i jak wyliczyć  wartość jednej z kolumn na podstawie wartości odczytanych z dwóch innych kolumn, dla każdego wiersza.

Więcej…

Rybki zjadają grube ryby

Czytaliśmy już o tym, że oprogramowanie zjada świat i że jest amazing. Mniej oczywiste jest dla nas jakie są tego skutki. Całkiem nie tak dawno i nie w odległej galaktyce komputery i działające na nich oprogramowanie tak jak dzisiaj potrafiło zaczarować rzeczywistość. Firmy mogły wykorzystać je by dodać „coś unikalnego” do swoich produktów czy sprawności operacyjnej.

Ale oprogramowanie było prawie tak wyjątkowe jak to co robiły za jego pomocą firmy – drogie i naprawdę dostępne tylko na firm, które liczyły pieniądze mniej uważnie niż Bernie Madoff.

Dzisiaj nawet domowy komputer potrafi więcej niż Deep Blue który ograł Kasparova, oprogramowanie jest często tak łatwo dostępne jak wpisanie w google „oprogramowanie które robi…” – świat się zmienił.

Małe firmy mogą teraz więcej

Skoro oprogramowanie „automatyzuje”, jeśli oprogramowanie „analizuje” i „podejmuje decyzje”, to do wykonania dużej ilości tych zadań nie jest potrzebny człowiek. Zatem mniejsze firmy mogą działać jak te większe. Mogą sobie na to pozwolić. Kilkuosobowe organizację mogę wypełniać wszystkie funkcje dużych firm.

Moc małych firm szczególnie widoczna jest w sektorach technologicznych - kiedy małe spotyka się z dużym, mały prawie zawsze wygrywa. Teraz dzięki oprogramowanie częściej będziemy to widzieć w innych branżach.

Więcej…

Strona 18 z 29

  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
© 2025
Powered by DataGeeks & Human Intelligence