Archiwum kategorii ‘Programowanie’

PHP i transakcje w MySQL

środa, 16 Maj 2012

Nie jestem programistą, ani Programistą PHP. Czasem robię code review lub piszę protezę dla jakichś systemów.
Po ostatnim przeglądzie uważam, że warto wspomnieć o prostych sposobach na transakcje w (My)SQL.

Jeśli mamy do dyspozycji PDO (PHP Data Objects) i PHP >= 5.1 (ew. 5.0 i PDO jako PECL), to możemy użyć gotowych mechanizmów do obsługi transakcji i wyjątków (od PHP 5.0):

try {
  $dbh->beginTransaction();
  $dbh->exec('pierwsze zapytanie');
  $dbh->exec('drugie zapytanie');
  $dbh->exec('trzecie zapytanie');
  $dbh->commit();
} catch (Exception $e) {
  $dbh->rollBack();
  echo $e->getMessage();
}

(więcej…)

Gnatt & dbms_scheduler

poniedziałek, 27 Luty 2012

Było zastosowanie Gnatt do kopii Oracle, to teraz do zadań harmonogramu Oracle (przez dbms_scheduler):

set colsep ';'
set head off;
set feed off;
set trimspool on;
set linesize 32767;
set pagesize 32767;
set echo off;
set termout off;
set timing off;

spool sched.csv

SELECT 'Week ' || TO_CHAR(SYSDATE-7, 'iw'), NEXT_DAY(trunc(SYSDATE)-14, 'MONDAY'), NEXT_DAY(trunc(SYSDATE)-7-1/60/60/24, 'SUNDAY') FROM dual;
(więcej...)

Bugzilla & Lighttpd @ Gentoo

piątek, 17 Luty 2012

W maju zeszłego roku opisałem próbę uruchomienia Icinga na Lighttpd pod Gentoo. Wróciłem jednakże po testach do Nagios i nie interesowałem się tym więcej. Gdyby ktoś chciał popróbować, to pod koniec zeszłego roku Icinga pojawiła się w drzewie portage.

Dziś przymierzyłem się do Bugzilla na Lighttpd pod Gentoo. Jako, że Mozilla nie wspiera Bugzilla na innym serwerze jak Apache, tak samo ebuild w Gentoo nie jest do tego przystosowany. Ale da się to zrobić. Poniżej moje zapiski z placu boju. (więcej…)

Gnatt – jest dobrze

poniedziałek, 13 Luty 2012

Chyba nie taki kiepski ze mnie programista ;-)
Gnatt doczekał się wersji 1.0.0.4 (opublikowanej). Zacząłem robić nawet listę zmian. Z najwazniejszych rzeczy:

  • dodana zmiana ‘rozdzielczości’,
  • konwersja daty (działa Unix timestamp jak wcześniej i sprawdziłem na formacie YYYY-MM-DD hh:mm:ss),
  • grupowanie zadań.

(więcej…)

Gnatt – czary z mleka

sobota, 11 Luty 2012

Odkąd pamiętam, przygotowując jakieś raporty, zawsze borykałem się z problemem wizualizacji wzajemnego oddziaływania trwających procesów, np. wpływ odbudowy grupy RAID na czas trwania kopii danych.
Wiadomo, że przedstawienie danych tekstowych na wiele się nie zdaje, zwłaszcza jak trwających zadań jest wiele i powtarzają się w raportowanych okresie.
Dobrym wyborem jest przedstawienie czasu trwania zadań na diagramie Gantta. (więcej…)

O (Net-)SNMP jeszcze trochę

niedziela, 18 Grudzień 2011

O SNMP pisałem już kilka razy. Tym razem notka o rozszerzeniu możliwości serwera (Net-SNMP) i prezentacji danych we własnych OID’ach.

Najprościej wykonać to można dodając do konfiguracji dyrektywę extend (kiedyś exec lub sh). Składnia wygląda tak:

extend [MIBOID] NAME PROG ARGS

A na przykładzie:

extend .1.3.6.1.4.1.31337 Test /root/scripts/test.sh testarg1

Przy okazji pozdrawiam firmę Union & Comstar, której PEN (Private Enterprise Number) pożyczyłem :-) (więcej…)

Zmiany w libwww-perl

sobota, 19 Listopad 2011

Jakiś czas temu (dokładnie to 27 marca) z biblioteki libwww-perl wydzielony został moduł LWP::Protocol::https. Jak można przeczytać w dokumentacji od wersji 6.01 biblioteki nie zaszły żadne zmiany w kodzie tego modułu.
W zeszłym tygodniu moduł został oznaczony jako stabilny w paczkach dla Gentoo (dev-perl/LWP-Protocol-https). Możliwa się stała jego aktualizacja i tym samym libwww-perl (dev-perl/libwww-perl). No i zaktualizowałem. I jednak coś się zmieniło.

SOAP::Lite, który korzysta z libwww-perl nagle zaczął zgłaszać błąd certyfikatu serwera (tzw. self-signed), z którego wywoływał żądanie:

500 Can't connect to server:443 (certificate verify failed) at /usr/lib/nagios/plugins/sms.pl line 7

(więcej…)