Serialisierung von SCA/SOA Service aufrufen

Ein Partner hatte das Problem, dass von mehreren SCA/SOA Prozessen gleichzeitig das gleiche externe Service aufgerufen wurde und dabei das gleiche Objekt geändert werden sollte.
Wie kann man das verhindern? Wie kann man diese Aufrufe serialisieren?

In der Oracle SOA Suite 11g gibt es beim Mediator eine Funktion "resequencer". Damit ist dies möglich. Resequencer
Benötigte Schritte:
  1. Erstellung eines Mediators, wobei das Interface mit dem WSDL des aufzurufenden Service(Reference) ist.
  2. Verbindung des Mediators mit dem Service(Reference).
  3. In den Mediator Einstellungen:
    Resequence Level: component,
    Resequence mode: FIFO
    Group: z.B. die ID des zu ändernden Objekt
  4. Service Aufruf via Mediator und nicht direkt.
Damit wird erzielt, dass alle Service Aufrufe auf das selbe Objekt (Group) serialisiert werden.
Es gibt nur ein Problem, wenn das aufgerufene Service ein synchrones Service ist, dann müssen noch zusätzlich folgende Schritte gemacht werden:
  1. Der Mediator darf nicht mit dem WSDL erstellt werden, sondern muss mit den request und callback Nachrichten erstellt werden.
  2. Der Aufruf des Mediator muss von invoke auf invoke/receive geändert werden (synchron auf asynchron)

Kommentare:

Senden Sie einen Kommentar:
Kommentare sind ausgeschaltet.
About

Aktuelles zu Oracle Produkten, Tipps & Tricks von Produkt-Experten.

Search

Archives
« April 2014
MoDiMiDoFrSaSo
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Heute