/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
JEE og cache invalidering af extern system
Fra : Frederik Hansen


Dato : 08-05-06 08:50

Hejsa

Jeg har et problem som jeg håber nogen her kan hjælpe mig med.

Jeg har en JEE løsning som retter i noget data, som et andet/extern
system skal have af vide. (Det andet system er skrevet i C/C++ og
protocolen for at tale med det er properitært)

Jeg ville meget gerne kunne hooke mig ind et sted, og få en notification
efter der committet eller rollbacked. Jeg har ladet mig fortælle at jeg
kunne gøre dette med noget SessionSynchronization, men desværre så kan
jeg IKKE anvende statefull session beans..

Så nogen ideer til hvordan jeg kommer omkring det?! Jeg ville
naturligvis helst have en ikke-vendor-specific løsning, men hvis det
ikke kan være anderledes så kører løsningen på WebLogic 9.1 og WebSphere..

Venlig hilsen
Frederik

 
 
Arne Vajhøj (09-05-2006)
Kommentar
Fra : Arne Vajhøj


Dato : 09-05-06 02:37

Frederik Hansen wrote:
> Jeg har en JEE løsning som retter i noget data, som et andet/extern
> system skal have af vide. (Det andet system er skrevet i C/C++ og
> protocolen for at tale med det er properitært)
>
> Jeg ville meget gerne kunne hooke mig ind et sted, og få en notification
> efter der committet eller rollbacked. Jeg har ladet mig fortælle at jeg
> kunne gøre dette med noget SessionSynchronization, men desværre så kan
> jeg IKKE anvende statefull session beans..
>
> Så nogen ideer til hvordan jeg kommer omkring det?! Jeg ville
> naturligvis helst have en ikke-vendor-specific løsning, men hvis det
> ikke kan være anderledes så kører løsningen på WebLogic 9.1 og WebSphere..

Det afhænger jo nok meget af hvordan du gemmer de data.

Entity beans ? Hibernate ? Rå JDBC ?

Arne

Frederik Hansen (09-05-2006)
Kommentar
Fra : Frederik Hansen


Dato : 09-05-06 06:09

Hej Arne

Jeg gemmer nogen med hibernate og nogen med jdbc.. Ikke nogen med entity
beans.. Dog er det alt sammen med CMP, og løsningen skal også kunne
understøtte at clienterne bruger UserTransactions.. (Ja, vigtige
detailer, som jeg lige havde glemt at nævne.. <host>..)

Det skal jo ikke være for let..

Venlig hilsen
Frederik


Arne Vajhøj wrote:

>> Så nogen ideer til hvordan jeg kommer omkring det?! Jeg ville
>> naturligvis helst have en ikke-vendor-specific løsning, men hvis det
>> ikke kan være anderledes så kører løsningen på WebLogic 9.1 og
>> WebSphere..
>
>
> Det afhænger jo nok meget af hvordan du gemmer de data.
>
> Entity beans ? Hibernate ? Rå JDBC ?
>
> Arne

Arne Vajhøj (10-05-2006)
Kommentar
Fra : Arne Vajhøj


Dato : 10-05-06 02:57

Frederik Hansen wrote:
>Jeg har en JEE løsning som retter i noget data, som et andet/extern
>system skal have af vide. (Det andet system er skrevet i C/C++ og
>protocolen for at tale med det er properitært)

>Jeg ville meget gerne kunne hooke mig ind et sted, og få en
>notification efter der committet eller rollbacked. Jeg har ladet mig
>fortælle at jeg kunne gøre dette med noget SessionSynchronization, men
>desværre så kan jeg IKKE anvende statefull session beans..

>Så nogen ideer til hvordan jeg kommer omkring det?! Jeg ville
>naturligvis helst have en ikke-vendor-specific løsning, men hvis det
>ikke kan være anderledes så kører løsningen på WebLogic 9.1 og
>WebSphere..

> Jeg gemmer nogen med hibernate og nogen med jdbc.. Ikke nogen med entity
> beans.. Dog er det alt sammen med CMP, og løsningen skal også kunne
> understøtte at clienterne bruger UserTransactions..

Det er vanskeligt.

De bedste ideer jeg kan komme på er:

1) håndkode noget ind i de EJB implementationer som kontakter
din C/C++ app

2) bruge AspectJ (eller et andet AOP framework) til at eksekvere
noget kode som kontakter din C/C++ app i tilfælde af en EJBException
(jeg formoder at det er den som trigger rollback) eller normal
return (som må betyde commit)

3) hvis databasen understøtter triggers/stored procedures i
Java så kan I lade en trigger (evt. via en stored procedure)
kontakte din C/C++ app

#1 havde du jo nok tænkt på og det er formentligt ikke muligt.

Arne

Arne Vajhøj (10-05-2006)
Kommentar
Fra : Arne Vajhøj


Dato : 10-05-06 12:57

Arne Vajhøj wrote:
> 2) bruge AspectJ (eller et andet AOP framework) til at eksekvere
> noget kode som kontakter din C/C++ app i tilfælde af en EJBException
> (jeg formoder at det er den som trigger rollback) eller normal
> return (som må betyde commit)

Ups - det var jo BMT.

Det er så ut.commit og ut.rollback kaldene man skal fange.

Arne

Frederik Hansen (11-05-2006)
Kommentar
Fra : Frederik Hansen


Dato : 11-05-06 08:46

Arne Vajhøj wrote:
> Arne Vajhøj wrote:
>
>> 2) bruge AspectJ (eller et andet AOP framework) til at eksekvere
>> noget kode som kontakter din C/C++ app i tilfælde af en EJBException
>> (jeg formoder at det er den som trigger rollback) eller normal
>> return (som må betyde commit)
>
>
> Ups - det var jo BMT.

Ja, faktisk en blanding. Altså de samme methode kald skal kunne
foretages med CMP, eller hvis clienten ønsker mere kontrol så med
UserTransactions. Men AspectJ er faktisk en god mulighed, som jeg ikke
havde tænkt på, så det vil jeg kigge noget mere på!

> Det er så ut.commit og ut.rollback kaldene man skal fange.

Øh, det forstod jeg ikke?

Frederik

Arne Vajhøj (12-05-2006)
Kommentar
Fra : Arne Vajhøj


Dato : 12-05-06 02:12

Frederik Hansen wrote:
> Arne Vajhøj wrote:
>> Det er så ut.commit og ut.rollback kaldene man skal fange.
>
> Øh, det forstod jeg ikke?

Altså med CMT skal du fange:
after returning for din EJB
after throwing for din EJB

Mens du med BMT skal fange:
after Transaction commit
after Transaction rollback

Arne


Johnnie Hougaard Nie~ (09-05-2006)
Kommentar
Fra : Johnnie Hougaard Nie~


Dato : 09-05-06 08:07

Frederik Hansen wrote:
> som retter i noget data, som et andet/extern system skal have af vide

En mulig type løsning kunne være at kikke på at få database softwaren
til at hjælpe dig. Det kunne f.eks. være ved at sætte en trigger på de
tabeller hvor opdateringerne skal sendes videre.

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste