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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Top Related