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


Odpovedet emailem