środa, czerwca 08, 2011

Wydajne logowanie w Tibco BW

Wymagania brzegowe:
  • aktywność logowania w stopniu minimalnym wpływa na czas działania procesu głównego
  • logowanie jest asynchroniczne (fire and forget)
  • logowanie wrzuca dane do bazy
  • wydajność przedkładana jest nad ewentualną utratę części logów w przypadku zabicia procesu (in-memory vs persistent)
Rozwiązanie:
  • LinkedBlockingQueue o ograniczonym rozmiarze (queue overflow vs OutOfMemory)
  • JavaEventSource z operacją poll na kolecje, wrzucający dane w ramach batcha JDBC
  • Java shutdown hook zmniejszający timeout operacji poll i czekający na opróżnienie kolejki
albo wrzucanie logów po persystentnym bardzo stuningowanym Apache ActiveMQ

1 komentarze:

pdrabik pisze...

zawsze mowilem ActiveMQ..

tego uzywam w swoim doktoranckim frameworku :P