V EJB design patterns je nasledujici vec (pujde celkem snadno predelat
aby nevyzadovala EJB a pracovala treba s JDBC nebo co pouzivate):
1. trida s mapovanim na tabulku obsahujici nazev sekvence jako primarni
klic ve stringove podobe, a nasledujici cislo v rade
2. trida s logikou, ktera udela to, ze kdyz se zavola metoda typu
public int getNextNumberInSequence(String sequenceName)
tak se nejdriv podiva do sve cache jestli je ulozena, pokud ano, vrati
cislo a ve sve cache zvetsi o jedna, pokud ne, zepta se tridy 1., te
zvetsi dalsi cislo o 10, a tu desitku co dostane prideluje ze sve cache
(pokud ji v te tride nenajde, tzn, jeste nebyla volana, tak ji
samozrejme vyrobi).
Original v patters resi i konkurentni hity, coz asi nevyuzijete, ale to
uz zalezi na Vas.
Jirka
Jan Dvořák napsal(a):
Vážená konference,
potřebujeme centrální službu, která bude vydávat sekvenčně generovaná
čísla v několika sekvencích, které se rozlišují jménem.
Volání bude obsahovat jméno sekvence jako parametr a odpovědí bude
hodnota dalšího čísla v takto pojmenované sekvenci.
Takovouto věc bychom potřebovali dostupnou přes web: web service nebo
i jen jednoduchý servlet.
Podkladová data by si to pamatovalo ve vcelku libovolné relační
databázi sestávající ze dvou tabulek: sekvence (s aktuální nejvyšší
hodnotou) a log vydaných čísel.
Není potřeba žádná podpora transakčního zpracování - dokonce by byla
nevhodná.
Nevíte, zda něco takového už neexistuje?
Honza Dvořák