Avatar billede dn666 Nybegynder
17. januar 2008 - 11:05 Der er 5 kommentarer og
1 løsning

SOAP Klienter og Transaktioner

Hej,

Jeg sidder lidt i en kattepine:..
Jeg har en ws, som er udstillet via soap, klienten er genereret, og jeg skal nu lave nogle integrations tests i UI'en, og skal have mulighed for at rulle tilbage i basen bag web servicen.

Da servicen er udstillet via soap og kører på en bea 9,2 har jeg ingen mulighed for distributed transactions.

Jeg har ikke styr på hvilke tabeller der bliver berørt bag servicen, men skal helst kunne lave en rollback hvis visse klient valideringer fejler. (er klar over designet er fucked, det er out of my hands)

Er der nogen der har prøvet dette eller lign, på en eller anden måde uddelegere transaktions styringen til klienten ?


/David.
Avatar billede arne_v Ekspert
17. januar 2008 - 17:38 #1
Jeg tror at mulighederne er meget begraenset.

Hvis du kunne putte en stateful session bean ind mellem web service interface og
det der skal kaldes kunne du lave noget.

Hvis WL 9.2 understoetter WS-AtomicTransaction kunne du muligvis lave noget.

Men jeg er pessimistisk med hensyn til mulighederne !
Avatar billede dn666 Nybegynder
17. januar 2008 - 19:06 #2
Bea har vist først lavet atomic transactions i WL10->

Men.. Det ér session bønner der bliver udstillet, men jeg må lige (i morgen) checke op på om de er stateful, tvivler dog..
Avatar billede arne_v Ekspert
17. januar 2008 - 19:32 #3
Det er ikke den nuvaerende jeg snakke rom - den er sikkert ogsaa stateless naar den
er frontended med en web service.

Ideen er:

--->web service-->ny stateful session bean-->eksisterende session beans (formentligt stateless)

Ref til den stateful session bean kan gemmes i session. De eksisterende session beans
vil (med normale transaction attributter) blive indrullet i den nye beans transaction. Den nye bean indeholder en raekke passthrough metoder plus en metode der smider en EJBException der faar containeren til at rulle det hele tilbage.
Avatar billede arne_v Ekspert
05. maj 2008 - 06:20 #4
dn666 ?
Avatar billede dn666 Nybegynder
05. maj 2008 - 09:57 #5
Oh, Sorry.

Jeg blev nød til at benytte mine update stempler på basen,
VI har nogle felter i hver tabel der beskriver den sidste hendelse, heri ligger hvilken bruger der lave updaten så jeg har manuelt lavet en "delete eller update" ud fra hvilken bruger der har gjort hvad, ikke særligt pænt. men for at køre tests...

/D
Avatar billede dn666 Nybegynder
05. maj 2008 - 09:58 #6
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