Avatar billede markymarc Nybegynder
08. marts 2005 - 09:51 Der er 11 kommentarer og
1 løsning

Stateful sessionbean til at holde styr på mine xml filer?

Jeg har en flok xml dokumenter som ligger på min harddisk. Jeg skal så havde lavet nogle stateless sessionsbeans for at arbejde med disse xml dokumenter.

Men nu er det så jeg tænker, kunne det ikke betale sig at lave en stateful sessionbean til at holde styr på mine xml dokumenter. En bean som når jboss bliver startet sortere dem, evt kombinere dem med Lucene. Også holder det hele i hukommelsen. Og den(statefull) som også holder øje med når der bliver lagt nogle nye xml dokumenter til eller bliver taget fra. Alt sammen "realtime".
Når min statelessbean så skulle bruge et bestemt xml dokument, så i stedet for at lede selv så spørg den bare min statefullbean. Og det samme hvis jeg skulle bruge flere xml dokuementer f.eks grundet en fritekst søgning.

Mit sprøgsmål er så, er det smart og kan det betale sig??
Avatar billede arne_v Ekspert
08. marts 2005 - 11:04 #1
Jeg vil foreslå et lidt andet approach.

En stateless session bean kan nemlig sagtens indeholde state.

Med en stateless session bean behøver multiple kald fra samme client bare
ikke at gå til samme instans.

Hvilket betyder at det ikke guiver mening at gemme client specific
state i en stateless session bean.

Men den her info er vel ikke client specifik.

Mit forslag:
  - lav et singleton objekt som loader data op i memory
  - brug stateless session beans
  - lad dem hente en reference til den singleton i create
  - ved read operationer henter de fra singleton
  - ved update operationer opdaterer de både sington in memory data og on disk data
Avatar billede markymarc Nybegynder
08. marts 2005 - 12:00 #2
Mange tak. Var sådan noget ligende jeg havde i tankerne. Men har ikke så meget(ingen) erfaring med singleton. Kender du en god how-to?

Men det jeg laver er vel et "lille" xml repository, eller hvad? og ved du om der findes et godt xml repository man kan bruge med jboss??
Avatar billede arne_v Ekspert
08. marts 2005 - 12:10 #3
Avatar billede arne_v Ekspert
08. marts 2005 - 12:11 #4
Gemmer du ikke XML i en database ?
Avatar billede markymarc Nybegynder
08. marts 2005 - 12:35 #5
Nej ikke til at starte med. Ville i første omgang bare gemme dem som flade filer. Også måske på et senere tidspunkt gemme dem i en db.
Men det er også derfor jeg gerne ville komme ud over at skulle alle de falde filer i gennem hvergang jeg skulle finde noget. Og på en og anden måde lave et f.eks singleton hvor jeg kunne holde et index og lave noget stortering.
Avatar billede markymarc Nybegynder
08. marts 2005 - 13:40 #6
Nu har jeg læst din og et par andre noter om singleton. Men hvordan bruger jeg singleton i jboss? og hvordan loader jeg den i starten så den lægger sig i memory?
Avatar billede arne_v Ekspert
08. marts 2005 - 13:49 #7
Lige ud af landevejen.

Du kan enten bare:

DinSingleton ds = DinSingleton.getInstance();
String xml = ds.findXml(noget);

i din normale metode.

Først gang du kalder vil DiNSingleton constructor blive kaldt og initoialisere data.

Altertaivt kan du lave en:

private DiNSingleton ds;

i din bean klasse.

Kalde:

ds = DinSingleton.getInstance();

i create.

Og kalde:

String xml = ds.findXml(noget);

i din normale metode.

Så vil den reference bliver sat når beanen creates (og data vil blive loadet
når den første bean creates).
Avatar billede markymarc Nybegynder
08. marts 2005 - 14:01 #8
Også efter den er blevet kaldt en gang bliver den liggende i memory. Og holder styr på det hele. Og hvergang en anden stateless spørg til den få den det synchronized, ikke.
Avatar billede markymarc Nybegynder
08. marts 2005 - 14:04 #9
HOV forresten. Kom til at tænke på at det jeg putter i singleton's constructor, bliver jo selvføglelig kun kaldt en gang ikke.
Avatar billede arne_v Ekspert
08. marts 2005 - 14:08 #10
Ja - det er sådan set det der er hele pointen !
Avatar billede markymarc Nybegynder
08. marts 2005 - 14:35 #11
Mente jeg også, skulle bare lige havde det ind med skeer.
Men du skal vel lige havde lidt point.
Avatar billede arne_v Ekspert
08. marts 2005 - 14:44 #12
så må jeg hellere ligge et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester