[ nemnesic @ 30.10.2006. 21:21 ] @
Znaci slucaj je ovakav: Hteo bih da citam DB2 (USA states table) i da sve ove podatke sacuvam u java bean, koji ce da bude u memory i koga mogu da access kada mi treba. Ovo je idealno resenje jer pokusavamo da eliminisemo user I/O. Da li je neko od vas radio ovako nesto? Trazio sam po netu neki tutorialz ali bezuspeshno...mozda jer nisam znao sta tacno da trazim.


hvala puno.

nn
[ anon315 @ 31.10.2006. 07:42 ] @
Jel u pitanju web aplikacija?

Budi malo precizniji, sta je problem?
[ mnikolic @ 31.10.2006. 08:49 ] @
Mozda da probas sa Hibernate-om, da premapiras tabele u bean-ove.

Pozdrav!
[ nemnesic @ 31.10.2006. 13:18 ] @
yeste u pitanju je web aplikacija. Ideja je da napravim taj bean koji ce
do stoji tu u memory i biti dostupan raznim programima.

np. select state_name from ownersql.srt_us_states;
i sada bi hteo da sve state_name sacuvam u taj bean.

ne znam kako jos da pojasnim.

hvala ti puno...

nn
--
[ hyle @ 31.10.2006. 13:44 ] @
Ne znam kako si rešio perzistenciju u aplikaciji, to može da utiče na izbor najboljeg rešenja u ovom slučaju.
Da li koristiš EJB, Hibernate, JDBC ili nešto drugo?

Najprostija varijanta, u slučaju da koristiš JDBC, je da napraviš singleton klasu koja bi se zvala nrp. UsaStatesCache i koja bi na prvi zahtev obavila učitavanje iz baze, a kasnije bi vraćala već učitane vrednosti. Bitno je da upotrebiš neku Thread safe implementaciju singletona i obaviš lazy-load podataka.

Ako koristiš EJB onda možeš u kontejneru da podesiš keširanje odgovarajućih entity bean-ova.
Hibernate ima dva nivoa keša ali ne bih znao da ti preporučim najbolje rešenje, javiće se neko ko zna dobro Hibernate pa će reći šta treba činiti.

Pozdrav!
[ anon315 @ 31.10.2006. 14:05 ] @
Citat:
hyle:
koja bi na prvi zahtev obavila učitavanje iz baze, a kasnije bi vraćala već učitane vrednosti.


Da, ali šta ako ta inicijalizacija traje neko vreme? Onda bi korisnik u sred rada morao da čeka, a to nije dobro.

Drugi način je da napišeš klasu koja radi inicijalizaciju i koja treba da implementira ServletContextListener i da obezbedi metode contextInitialized i contextDestroyed. Dakle, u web aplikaciji, start-up kod se može pisati kao ServletContextListener i to su osluškivači koji se izvršavaju kada se web aplikacija prvi put inicijalizuje (pre prvog request-a) i pre nego što se uništi.

Code:

public class Initializer implements ServletContextListener {

    public Initializer() {}
    
    public void contextInitialized(ServletContextEvent event) {
        // Tvoj kod...
    }

    public void contextDestroyed(ServletContextEvent sce) {
        // Tvoj kod...
    }

}
[ hyle @ 31.10.2006. 14:25 ] @
Citat:
Vanja Petreski: Da, ali šta ako ta inicijalizacija traje neko vreme? Onda bi korisnik u sred rada morao da čeka, a to nije dobro.


To ti je večita dilema :)

Ako nešto učitaš odmah, onda bez potrebe zauzimaš memoriju do prvog zahteva, a može se desiti da u toku rade ne bude ni jedan zahtev za tim podacima pa je memorija bila zauzeta bez potrebe.
Ako koristiš lazy load onda će prvi zahtev morati da čeka da se obavi učitavanje.

U slučaju koji je naveo nemnesic mislim da je totalno nebitno koje rešenje će izabrati jer se radi o maloj količini podataka.

Pozdrav!
[ nemnesic @ 31.10.2006. 14:39 ] @
ma memorija nije problem. ovi ovde kupili $700,000.00 vredan mainframe.
I zahtev je da taj bean "zivi" tu ...i da zauzme nesto memorije i da
ceka, i da drugi programi koriste data which is loaded u taj bean.

znaci imam unlimited resources, i hocu da bean pravim samo jednom recimo
nedeljno...
[ anon315 @ 31.10.2006. 15:24 ] @
Pa nista, napravis taj bean, strpas ga u application scope i to je to, ako sam dobro skapirao sta treba...

Nisi nam nista rekao o tehnologiji koju koristis, JSP/Servlet, JSF, nesto drugo?

Da li hoces automatski da ti se osvezava bean na 7 dana ili sam, rucno, da ga punis?
[ nemnesic @ 31.10.2006. 15:40 ] @
koristim JSP/Servlets

da hocu da se automatski osvezava svake nedelje.

Pa da to je problem, ja NEZNAM kako da napravim taj bean i da ga punim.
kako da trazim po netu? jel znas ti neki tutorial? kako se to zove u jdocs?

poz
nn
[ anon315 @ 31.10.2006. 16:00 ] @
A, pa onda moras da naucis JSP/Servlet :)

http://www.amazon.com/Core-Ser...Server-Pages-JSP/dp/0130893404
[ nemnesic @ 31.10.2006. 16:07 ] @
vanja,

ja znam jsp/servlet
tj ja radim sa servletima a imamo programmera koji radi sa jsp.
ja NEZNAM kako da pravim bean i punim ga sa db2 data, i posle toga
access that data.

:)

nn


--
Nemanja D. Nesic -:NEM:-
ITS Jr. Computer Programmer
x7378

-All programmers are playwrights and all computers are lousy actors.
[ antix @ 31.10.2006. 23:02 ] @
ma jednostavno stavi ovu klasu u ServletContext i kada ti treba vadi je otuda! Učitavanje tih podataka iz baze vjerovatno će da radi dovoljno brzo (USA još uvijek ima 52 države? ) tako da ne moraš da brineš o performansama učitavanja pa možeš da poslušaš hyle-a i napraviš singleton. Ako ne postoji takav atribut u ServletContextu kreiraj ga i stavi ga tamo, a ako ga nađeš znači da je sve ok i samo ga koristi... ili već tako nešto