SOA Suite 11g Deep Dive

62
1 SOA Suite 11g Deep Dive > Best Practices für Entwickler und Administratoren

description

SOA hat sich inzwischen als Architekturstil durchgesetzt und ist in vielen Unternehmen etabliert. Mit Einführung der Fusion Middleware 11g hat Oracle die SOA Suite erheblich verändert und stellt damit ein mächtiges Werkzeug für die Entwicklung und den Betrieb von Services, auf Basis der Service Component Architecture (SCA), zur Verfügung. Services können sehr einfach, schnell und vor allem deklarativ mit der SOA Suite entwickelt und betrieben werden. Die SOA Suite stellt damit eine gute und ausgereifte Plattform für den Betrieb von Services zur Verfügung. Bei der Präsentation handelt es sich um einen Auszug aus dem DOAG Expertenseminar vom 14. und 15. Oktober 2013 in Berlin.

Transcript of SOA Suite 11g Deep Dive

Page 1: SOA Suite 11g Deep Dive

1

SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler und Administratoren

2

gt WebLogic Infrastruktur

3

WebLogic Domain

WebLogic Komponenten

Maschine 1 Maschine 2 Maschine 3

AdminServer

Node Manager

Managed Server A

Managed Server B

Node Manager Node Manager

Managed Server C

Managed Server D

Managed Server E

Cluster ACE

Cluster BD

4

WebLogic Domain ConfigurationAdminServer

Managed Server A

Managed Server B

startup

5

FMW-Erweiterungenhellip

bull Oracle-spezifische Librariesbull JRFhellipbull ADFhellipbull hellip

bull $DOMAIN_HOMEconfigfmwconfigbull Enterprise Managerbull MDSbull Diagnostic Monitoring Service (DMS)bull Oracle Platform Security Service (OPSS)

6

Fusion Middleware SicherheitsarchitekturOracle Platform Security Service (OPSS)

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 2: SOA Suite 11g Deep Dive

2

gt WebLogic Infrastruktur

3

WebLogic Domain

WebLogic Komponenten

Maschine 1 Maschine 2 Maschine 3

AdminServer

Node Manager

Managed Server A

Managed Server B

Node Manager Node Manager

Managed Server C

Managed Server D

Managed Server E

Cluster ACE

Cluster BD

4

WebLogic Domain ConfigurationAdminServer

Managed Server A

Managed Server B

startup

5

FMW-Erweiterungenhellip

bull Oracle-spezifische Librariesbull JRFhellipbull ADFhellipbull hellip

bull $DOMAIN_HOMEconfigfmwconfigbull Enterprise Managerbull MDSbull Diagnostic Monitoring Service (DMS)bull Oracle Platform Security Service (OPSS)

6

Fusion Middleware SicherheitsarchitekturOracle Platform Security Service (OPSS)

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 3: SOA Suite 11g Deep Dive

3

WebLogic Domain

WebLogic Komponenten

Maschine 1 Maschine 2 Maschine 3

AdminServer

Node Manager

Managed Server A

Managed Server B

Node Manager Node Manager

Managed Server C

Managed Server D

Managed Server E

Cluster ACE

Cluster BD

4

WebLogic Domain ConfigurationAdminServer

Managed Server A

Managed Server B

startup

5

FMW-Erweiterungenhellip

bull Oracle-spezifische Librariesbull JRFhellipbull ADFhellipbull hellip

bull $DOMAIN_HOMEconfigfmwconfigbull Enterprise Managerbull MDSbull Diagnostic Monitoring Service (DMS)bull Oracle Platform Security Service (OPSS)

6

Fusion Middleware SicherheitsarchitekturOracle Platform Security Service (OPSS)

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 4: SOA Suite 11g Deep Dive

4

WebLogic Domain ConfigurationAdminServer

Managed Server A

Managed Server B

startup

5

FMW-Erweiterungenhellip

bull Oracle-spezifische Librariesbull JRFhellipbull ADFhellipbull hellip

bull $DOMAIN_HOMEconfigfmwconfigbull Enterprise Managerbull MDSbull Diagnostic Monitoring Service (DMS)bull Oracle Platform Security Service (OPSS)

6

Fusion Middleware SicherheitsarchitekturOracle Platform Security Service (OPSS)

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 5: SOA Suite 11g Deep Dive

5

FMW-Erweiterungenhellip

bull Oracle-spezifische Librariesbull JRFhellipbull ADFhellipbull hellip

bull $DOMAIN_HOMEconfigfmwconfigbull Enterprise Managerbull MDSbull Diagnostic Monitoring Service (DMS)bull Oracle Platform Security Service (OPSS)

6

Fusion Middleware SicherheitsarchitekturOracle Platform Security Service (OPSS)

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 6: SOA Suite 11g Deep Dive

6

Fusion Middleware SicherheitsarchitekturOracle Platform Security Service (OPSS)

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 7: SOA Suite 11g Deep Dive

7

gt SCA und SOA Suite

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 8: SOA Suite 11g Deep Dive

8

Was ist ein Composite

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 9: SOA Suite 11g Deep Dive

9

Oracle SOA Suite 11g

Service InfrastrukturPolicy Manager

Optimized

binding WebLogic Server

Common JCA-based connectivity infrastructure

MDS

EM console

+BPMN Screens

BAM

B2B

Human Workflow

Business Rules Mediator

Process Core

BPEL

ProcessAnalytics

Proc Cubes

BPM Workspace MS Office

BPMN 20 BPEL

Rich End User InteractionWeb based customization

Process Composer

Process Portal(WebCenter)

SOA Composite Editor (Business amp IT views)

BPMN

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 10: SOA Suite 11g Deep Dive

10

URLs

bull SOA Suite Serviceshttpservernameportsoa-infra

bull Fabric Provider Servlethttpservernameportsoa-infraservices

bull CompositeDeployerServlethttpservernameportsoa-infradeployer

bull EdnDbLogServlethttpservernameportsoa-infraeventsedn-db-backloghttpservernameportsoa-infraeventsedn-db-log

bull ClusterInfoServlethttpservernameportsoa-infraclusterinfo

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 11: SOA Suite 11g Deep Dive

11

Startup Sequencehellipltlistenergt ltlistener-classgtorgspringframeworkwebcontextContextLoaderListenerltlistener-classgt ltlistenergt

hellip

ltservletgt ltservlet-namegtFabricProviderServletltservlet-namegt ltservlet-classgtoracleintegrationplatformblockssoapFabricProviderServletltservlet-classgt ltload-on-startupgt1ltload-on-startupgtltservletgt

hellipltservletgt ltservlet-namegtFabricInitltservlet-namegt ltservlet-classgtoracleintegrationplatformkernelWLSFabricKernelInitializerltservlet-classgt ltload-on-startupgt2ltload-on-startupgt ltservletgt

hellip

1

2

3

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 12: SOA Suite 11g Deep Dive

12

Deployment-Schritte

1 SOA-Bundle oder SCA-Deployment an CompositeDeployerServlet sendenhttpservernameportsoa-infradeployer

2 Erstellung eines temporaumlren Verzeichnisses (tmpsar_base_dir_ltrandomIdgt) auf dem SOA Server Anschlieszligend das Composite in das temporaumlre Verzeichnis entpacken

3 Operation redeploydeploy feststellen (redeploy = undeploy und dann deploy)

4 Wenn vorhanden dann Deploymentplan ldquoanwendenrdquo

5 Shared Metadaten in das MDS speichern (MAR-File)

6 Composite in das MDS speichern (soa-infradeployed-composites) MDS Label = soa_ + UUIDrandomUUID()toString()soa-infradeployed-compositesxml

7 Aktivierung CompositeDeploymentCoordinatorndash deployServices() ndash deployReferences() ndash deployComponents() ndash deployWires()

8 Benachrichtigung von Cluster-Membern im Cluster mit Coherence

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 13: SOA Suite 11g Deep Dive

13

gt MDS

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 14: SOA Suite 11g Deep Dive

14

MDS = Metadata Services

bull Zentrale Komponente der Oracle Fusion Middleware fuumlr die Verwaltung vonndash Konfigurationsdaten von Komponenten undndash Metadaten zu Applikationen

bull MDS-Nutzung diverser Fusion Middleware Komponentenndash ADFndash WebCenterndash SOA-Suitendash JDeveloperndash Fusion Applications

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 15: SOA Suite 11g Deep Dive

15

Metadata Repository

basierend auf Datenbank basierend auf Dateisystem

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 16: SOA Suite 11g Deep Dive

16

MDS Repositoryadf-configxml

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 17: SOA Suite 11g Deep Dive

17

MDS Repository ndash SOA Suite

soa-infra

soasharedapps

ldquocustomrdquo Artefakte

Composites

Konfiguration

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 18: SOA Suite 11g Deep Dive

18

gt abstrakte vs konkrete WSDL

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 19: SOA Suite 11g Deep Dive

19

Abstrakte und konkrete WSDL

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 20: SOA Suite 11g Deep Dive

20

Designtime

Referenz auf abstrakte WSDL im MDS

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 21: SOA Suite 11g Deep Dive

21

Runtime

Deploymentplan

Notwendige AnpassungenElement bindingws Attribut portElement bindingws Attribut location

EmpfehlungProperty endpointURI

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 22: SOA Suite 11g Deep Dive

22

Runtime bindingws

Attribut Beschreibung

port SyntaxWSDL-Namespacewsdlendpoint(Service-NamePort-Name)

wsdlLocation URL mind fuumlr eine abstrakte WSDL-Datei Falls bindingws location nicht definiert wurde sollte die hier referenzierte WSDL-Datei ebenfalls eine konkrete WSDL darstellen

location URL zu einer konkreten WSDL

endpointURI Uumlberschreiben des definierten Endpunktes in der bdquokonkretenldquo WSDL-Datei

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 23: SOA Suite 11g Deep Dive

23

gt Threads and Transactions

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 24: SOA Suite 11g Deep Dive

24

Sequentiell Routing Rule

bull Sequential Routing Rules werden immer im gleichen Thread und gleichen Transaktion des Callee-Threads ausgefuumlhrt

bull Beim Aufruf vom Mediator wird gepruumlft ob bereits eine globale Transaktion existiert Wenn dies der Fall ist erfolgt die Ausfuumlhrung innerhalb dieser bestehenden Transaktion Andernfalls wird eine neue Transaktion geoumlffnet In diesem Fall uumlbernimmt der Mediator die Lifecycle-Kontrolle der Transaktion (commitrollback)

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 25: SOA Suite 11g Deep Dive

25

Parallel Routing Rule

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 26: SOA Suite 11g Deep Dive

26

Thread and Transaction Details

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 27: SOA Suite 11g Deep Dive

27

Parallel Routing Debugging

bull Table lsquomediator_deferred_messagersquo stores messages for parallel routing rules For a given Mediator component one row in this table corresponds to message for one parallel routing rule Following SQL will provide number of messages component name and status for each Mediator component with parallel routing rules Status could be one of READY (0) LOCKED (1) COMPLETED (2) ERROR (3)

select count() component_dn status from mediator_deferred_messagegroup by component_dn statusorder by component_dn status

bull Table lsquomediator_case_instancersquo stores information about case instance This table contains one row for each mediator case (ie routing rule) of a mediator instance

select count() status case_name from mediator_case_instancegroup by status case_nameorder by case_name

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 28: SOA Suite 11g Deep Dive

28

TransaktionsverhaltenSynchroner BPEL Prozess

Wert Beschreibung

required Ausfuumlhrung in einer bestehenden (globale) Transaktion Wenn keine Transaktion existent dann wird eine neue Transaktion erstellt

requiresNew(default)

Die Ausfuumlhrung erfolgt immer in einer neuen Transaktion Eine bereits bestehende Transaktion wird ldquoausgesetztrdquo

Property bpelconfigtransaction

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 29: SOA Suite 11g Deep Dive

29

Transaktionsverhaltenasynchroner (one way) BPEL Prozess

Wert Beschreibung

asyncpersist(default)

Nachricht wird auf jeden Fall in der Datenbank gespeichert bevor die eigentliche Verarbeitung startet (Tabelle DLV_MESSAGE)

asynccache Nachricht wird In-Memory gehalten

sync Ausfuumlhrung innerhalb des aufrufenden Threads Nachricht wird nicht zwischengespeichert

Property bpelconfigoneWayDeliveryPolicy

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 30: SOA Suite 11g Deep Dive

30

oneWayDeliveryPolicy amp Transactions

Wert Beschreibung

= sync gt neuer Thread + neue Transaktion

sync + requiresNew Aufrufender Thread + neue Transaktion(vergleichbar parallel Mediator)

sync + required Aufrufender Thread + gleiche Transaktion (wenn vorhanden)

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 31: SOA Suite 11g Deep Dive

31

Asynchroner FallbpelconfigoneWayDeliveryPolicy=asyncpersist asynccache

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 32: SOA Suite 11g Deep Dive

32

Event Delivery Network (EDN)P

ub

lish

Eve

nt

Rec

eive

Eve

nt

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 33: SOA Suite 11g Deep Dive

33

gt Fault Management

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 34: SOA Suite 11g Deep Dive

34

Fehlerkategorien

bull Prinzipiell 2 Fehlerkategorienndash Business faultsndash Runtime faults (or technical or system faults)

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 35: SOA Suite 11g Deep Dive

35

Business Faults

bull Application-specificbull Business logic decides how to handle faultbull Anticipated errors failures in business state input data inconsistencies

exceptional states

bull Examplesndash Invalid account number submittedndash Credit limit exceededndash Outside allowable date range

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 36: SOA Suite 11g Deep Dive

36

Business FaultsDefinition

bull Defined in service WSDLndash Service designer defines message structure for the faultndash messageType defined in WSDL

bull Example WSDL

ltxml version=10 encoding=UTF-8 gtltdefinitions name= NegativeCreditFaultgt

ltmessage name=CreditRatingServiceFaultMessagegt ltpart name=detail element=NegativeCreditFaultDetails gt ltmessagegt

ltdefinitionsgt

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 37: SOA Suite 11g Deep Dive

37

Runtime FaultsAlso known as technical or system faults

bull Runtime faults ndash (remoteFault bindingFault etc) - unexpected

bull Infrastructure faultsndash Service down network outage connection timeouts

bull Data format errorsndash Inappropriate data structure corrupted message

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 38: SOA Suite 11g Deep Dive

38

Mediator (2) Fault Groups

Fault Group Description

TYPE_ALL all mediator faults

TYPE_DATA Data related faultsAssignment Filtering Transformation amp Validation

TYPE_METADATA Mediator metadata related faultsFiltering conditions transformation metadata mediator metadata validation

TYPE_FATAL fatal errorsDB related Cache related error handling SOA Infrastructure related messaging transaction etc

TYPE_TRANSIENT Errors that can be recovered Infrastructure related messaging related

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 39: SOA Suite 11g Deep Dive

39

BPEL

BPEL 10 BPEL 20 Oracle

Namespacehttpschemasxmlsoaporgws200303business-process

Namespace httpdocsoasis-openorgwsbpel20proce ssexecutable

Namespacehttpschemasoraclecombpelextension

bull selectionFailure bull conflictingReceive bull conflictingRequest bull mismatchedAssignmentFailure bull joinFailurebull forcedTermination bull correlationViolation bull uninitializedVariable bull repeatedCompensation bull invalidReply

bull ambiguousReceive bull completionConditionFailure bull conflictingReceive bull conflictingRequest bull correlationViolation bull invalidBranchCondition bull invalidExpressionValue bull invalidVariables bull joinFailure bull mismatchedAssignmentFailure bull missingReply bull missingRequest bull scopeInitializationFailure bull selectionFailure bull subLanguageExecutionFault bull uninitializedPartnerRole bull uninitializedVariable bull unsupportedReference bull xsltInvalidSource bull xsltStylesheetNotFound

bull bindingFaultbull remoteFaultbull replayFault

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 40: SOA Suite 11g Deep Dive

40

Fault Management FrameworkPolicy Driven Fault Handling

bull Externalize your error handlingbull Policy-drivenbull Intended for technical faults

(but handles business faults as well)bull Engine level

ndash No impact on BPEL process designndash No impact on process in runtime (fault is isolated from process)

bull XML-based fault policiesndash Conditions for faults (fault name XPath on fault content)ndash Set of actions (retry human intervention replay scope rethrow fault

abort custom Java action)ndash Centrally managed

bull Manual resubmission supported through Enterprise Manager console

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 41: SOA Suite 11g Deep Dive

41

Fault Handling Policy

bull Maps faults to actionsbull Specify fault by QName

ndash eg bpelxremoteFault mednsmediatorFault

bull Specify criterea with XPathndash Query fault code details etc

bull Specify action to be performedbull Specify policies at different levels

ndash Compositendash Component

bull Overrides any fault handling in the BPEL processbull Defined in fault-policiesxml in the same directory as compositexml

ndash Can also be stored in the MDS and referenced in compositexml ndash useful if standard policies across SOA applications

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 42: SOA Suite 11g Deep Dive

42

Fault Policy einbinden

bull fault-bindingxml und fault-policiesxml im ldquoRootrdquo-Verzeichnis des composites ablegen

bull Ablage im MDS und Referenz in compositexml

ltproperty name=oraclecompositefaultPolicyFilegt oramdsappsfaultpolicyfilesfault-policiesxml ltpropertygt ltproperty name=oraclecompositefaultBindingFilegt oramdsappsfaultpolicyfilesfault-bindingsxml ltpropertygt

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 43: SOA Suite 11g Deep Dive

43

Java Action

bull Implements IFaultRecoveryJavaClass interface

bull handleRetrySuccess is invoked upon a successful retry attempt The retry policy chains to a Java action on retrySuccessAction

bull handleFault is invoked to execute a policy of type javaActionbull Typically handles lsquoside tasksrsquo notifications fault logging and extended

decisions about recovery actionbull Executed in EJB context ndash within compositersquos transaction

public interface IFaultRecoveryJavaClass public void handleRetrySuccess(IFaultRecoveryContext ctx ) public String handleFault(IFaultRecoveryContext ctx )

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 44: SOA Suite 11g Deep Dive

44

IFaultRecoveryContext

IFaultRecoveryContext

MediatorRecoveryContext BPELFaultRecoveryContextImpl

RejectedMsgRecoveryContext

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 45: SOA Suite 11g Deep Dive

45

Java Fault Policies installieren

1 Java Sourcen in JAR-Archiv zusammenfassen

2 Jar-Archiv nach $FMW_HOMEOracle_SOA1soamodulesoraclesoaext_1111 kopieren

3 buildxml ausfuumlhren4 SOA Suite durchstarten

lttaskdef resource=netsfantcontribantcontribpropertiesgt ltclasspathgt ltpathelement location=$envANT_HOMElibant-contrib-06jargt ltclasspathgtlttaskdefgt

Achtung Bug in buildxml ab 11117

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 46: SOA Suite 11g Deep Dive

46

gt Security

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 47: SOA Suite 11g Deep Dive

47

Sicherheitsstandards und Frameworks

Transmission Control Protocol and Internet Protocol (TCPIP)

Transport-Level Security Secure Socket Layer (SSL)

Message Structure

Trust Management Federation

Confidentiality Integrity Authenticity

XML Frameworks

Non-XML Frameworks

Transport Layer (HTTP FTP JMS etc)

Met

adat

a

XML Encryption XML SignatureSOAP WS-Security

SAML WS-Trust

WS-Policy WS-Policy Attachment

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 48: SOA Suite 11g Deep Dive

48

Oracle Web Services ManagerUumlberblick

Web Services Manager

IDM Service

Fusion App Service

SOA Service

OWSMAgent

PolicyManager

Enforcement Decision

PolicyManagement

Enterprise Manager

JDeveloper

AttachDeploy

OWSM Policy Store

Policy Persistence

Portal Users

WS Clients

HTTP SOAP REST

joe

Oracle Platform Security Service

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 49: SOA Suite 11g Deep Dive

49

PolicyPolicy

Assertion 1 Assertion 2 Assertion nRequest

Response

Policy Type Description

Reliable Messaging Reliable messaging policies that implement the WS-ReliableMessaging standard describes a wire-level protocol that allows guaranteed delivery of SOAP messages and can maintain the order of sequence in which a set of messages are delivered

Management Management policies that log request response and fault messages to a message log Management policies may include custom policies

Adressing WS-Addressing policies that verify that SOAP messages include WS-Addressing headers in conformance with the WS-Addressing specification Transport-level data is included in the XML message rather than relying on the network-level transport to convey this information

Security Security policies that implement the WS-Security 10 and 11 standards

MTOM

(Message Transmission Optimization Mechanism)

Binary content such as an image in JPEG format can be passed between the client and the Web service In order to be passed the binary content is typically inserted into an XML document as an xsdbase64Binary string Transmitting the binary content in this format greatly increase the size of the message sent over the wire and is expensive in terms of the required processing space and time

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 50: SOA Suite 11g Deep Dive

50

Policy Attachement

bull Designtime im JDeveloper z B SCA-Compositesbull Annotations (SecurityPolicy) Deployment-Deskriptor z B JAX-WS Servicesbull Runtime im Fusion Midleware Control

ndash Manuellndash Policy Sets

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 51: SOA Suite 11g Deep Dive

51

Oracle Web Services ManagerOWSM Agent

bull Pruumlft die Einhaltung von Policies anhand der Policy Interceptor Pipeline

bull Request Reliable Messaging gt Management gt Adressing gt Security gt MTOM

bull Response MTOM gt Security gt Adressing gt Management gt Reliable Messaging

OWSM Agent

Reliable Messaging

Management Adressing Security MTOM

Client

request

response

Policy Interceptor

Policy Interceptor Pipeline

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 52: SOA Suite 11g Deep Dive

52

gt Purging

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 53: SOA Suite 11g Deep Dive

53

Herausforderung

bull stetiges Wachstum im Dehydration Store (_soainfra)ndash abhaumlngig vom Audit Levelndash abhaumlngig von den SCA Composites

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 54: SOA Suite 11g Deep Dive

54

Herausforderung

bull Einfluszlig des Audit Levels auf das Datenbank-Wachstum

Quelle Oracle Whitepaper SOA 11g - The Influence of the Audit Level on Performance and Data GrowthOktober 2012

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 55: SOA Suite 11g Deep Dive

55

Deshalb fruumlhzeitighellip

an Archivierungs-

amp

Purging-Strategie

denken

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 56: SOA Suite 11g Deep Dive

56

Purge Varianten

bull Purge Scriptsndash Looped Purge Script ndash Looped Purge Script in Parellel Mode

bull Database Partitioningbull TRS Scriptbull Enterprise Managerbull Infrastructure Management API (Java)bull ldquoDevelopment Only Truncate Skriptrdquo

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 57: SOA Suite 11g Deep Dive

57

gt Tuning

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 58: SOA Suite 11g Deep Dive

58

Einflussfaktoren

bull Nachrichtenanzahlbull Nachrichtengroumlszligebull Komplexitaumlt der Transformation

bull Art und Weise der Compositesndash synchron vs asynchrone Servicesndash langlaufende oder kurzlaufende Services

bull Systemarchitekturndash Ungleichverteilung und Lastspitzen

bull Security amp Verschluumlsselung

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 59: SOA Suite 11g Deep Dive

59

SOA Suite Audit Level

Die Audit Level koumlnnen auf folgende Werte gesetzt werden bull bdquoInheritldquo uumlbernimmt Einstellung der naumlchst houmlheren Schicht bull bdquoProductionldquo (default) Instanz- und Payload-Aufzeichnung Mediator und

Assign-Aktivitaumlt in BPEL zeichnen keine Payload-Details auf bull bdquoDevelopmentldquo Alle Instanz- und Payload-Details werden aufgezechnet

negative Auswirkungen auf die Performance bull bdquoOffldquo Keine Instanz- und Payload-Aufzeichnung fuumlr groszlige Payloads

empfohlen

bdquoCapture Composite Instance Stateldquo (On|Off) Status laufender Instanzen wird evaluiert negative Auswirkungen auf die Performance

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 60: SOA Suite 11g Deep Dive

60

Tuning-Bereiche

bull Datenbank Indizes SGA Tablespaces Processes Sessions bull Dehydration Store va Purging-Strategie bull JVM Heap Size (min=max) Garbage Collection (Timeouts)bull WebLogic Connection Pools Threads Transaction Timeout bull SOA Komponenten Thread Pools Log Level Batching

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 61: SOA Suite 11g Deep Dive

61

Markus Lohn Head of Technology Consulting

gt Consultant Trainer und Experte fuumlr SOA und Java EE-Technologien (Oracle 8i - FMW 12c)

gt Umfangreiche Erfahrung bei der Umsetzung von komplexen Projekten mit Oracle-Technologien seit 1999 in den Branchen Oumlffentliche Verwaltung Banken und Versicherungen Automotive Industrie und Baugewerbe

Mit Markus Lohn vernetzen

E-Mail markuslohnesentricomBlog blogesentricomTwitter MarkusLohn

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG
Page 62: SOA Suite 11g Deep Dive

62

Uumlber die esentri AG

esentri facebookcomesentri

bdquoWir leben unsere Vision vom agilen Unternehmen der Zukunft

Mit unserer Begeisterung fuumlr fuumlhrende Technologien vernetzen wir Systeme Prozesse und Menschenldquo

  • SOA Suite 11g Deep Dive gt Best Practices fuumlr Entwickler un
  • gt WebLogic Infrastruktur
  • WebLogic Komponenten
  • WebLogic Domain Configuration
  • FMW-Erweiterungenhellip
  • Fusion Middleware Sicherheitsarchitektur Oracle Platform Securi
  • gt SCA und SOA Suite
  • Was ist ein Composite
  • Oracle SOA Suite 11g
  • URLs
  • Startup Sequence
  • Deployment-Schritte
  • gt MDS
  • MDS = Metadata Services
  • Metadata Repository
  • MDS Repository
  • MDS Repository ndash SOA Suite
  • gt abstrakte vs konkrete WSDL
  • Abstrakte und konkrete WSDL
  • Designtime
  • Runtime
  • Runtime bindingws
  • gt Threads and Transactions
  • Sequentiell Routing Rule
  • Parallel Routing Rule
  • Thread and Transaction Details
  • Parallel Routing Debugging
  • Transaktionsverhalten Synchroner BPEL Prozess
  • Transaktionsverhalten asynchroner (one way) BPEL Prozess
  • oneWayDeliveryPolicy amp Transactions
  • Asynchroner Fall bpelconfigoneWayDeliveryPolicy=asyncpersist
  • Event Delivery Network (EDN)
  • gt Fault Management
  • Fehlerkategorien
  • Business Faults
  • Business Faults Definition
  • Runtime Faults Also known as technical or system faults
  • Mediator (2) Fault Groups
  • BPEL
  • Fault Management Framework Policy Driven Fault Handling
  • Fault Handling Policy
  • Fault Policy einbinden
  • Java Action
  • IFaultRecoveryContext
  • Java Fault Policies installieren
  • gt Security
  • Sicherheitsstandards und Frameworks
  • Oracle Web Services Manager Uumlberblick
  • Policy
  • Policy Attachement
  • Oracle Web Services Manager OWSM Agent
  • gt Purging
  • Herausforderung
  • Herausforderung (2)
  • Deshalb fruumlhzeitighellip
  • Purge Varianten
  • gt Tuning
  • Einflussfaktoren
  • SOA Suite Audit Level
  • Tuning-Bereiche
  • Markus Lohn Head of Technology Consulting
  • Uumlber die esentri AG