tag:blogger.com,1999:blog-195695002024-03-12T22:55:27.729-01:00Making Integration Architectures WorkTom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.comBlogger41125tag:blogger.com,1999:blog-19569500.post-631463903216852962014-10-02T11:29:00.000-01:002014-10-02T11:58:50.592-01:00SOA Suite 12c - WSM-02141 : Unable to connect to the policy access serviceToday, I bumped into a problem with accessing the WSM Policy Manager after I changed the listen address of the SOA managed server in my development environment. The administration server was not able to contact the WSM Policy Manager after the change, causing the problem that I could not run any SOA service test from the EM console<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;"><oct 1:09:41="" 2014="" 2="" cest="" pm=""> <warning> <oracle .wsm.resources.policymanager=""> <wsm-02141> <unable access="" connect="" font="" policy="" service.="" the="" to=""></unable></wsm-02141></oracle></warning></oct></span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">oracle.wsm.policymanager.PolicyManagerException: WSM-02141 : Unable to connect to the policy access service.</span></blockquote>
</blockquote>
After some investigation I discovered that, by default, the WSM Policy Manager is auto-wired in the domain agents and its default targeted to the managed servers and not to the AdminServer. This means that AdminServer uses an agent to connect to the policy manager. <br />
<br />
Source: <a href="http://docs.oracle.com/middleware/1213/owsm/security/install-owsm-wls.htm#CHDJFHDF">http://docs.oracle.com/middleware/1213/owsm/security/install-owsm-wls.htm#CHDJFHDF</a><br />
<blockquote class="tr_bq">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', arial, sans-serif; font-size: 13px; line-height: 20px;">OWSM uses cross-component wiring to auto-discover the Policy Manager in the domain. When you use the Configuration Wizard to create or update a domain that includes OWSM, Policy Manager URLs are published to the Local Service table. The OWSM Agent is automatically wired to the OWSM Policy Manager using the endpoint entries published to the Local Service table.</span></blockquote>
but that the WSM agent policy manager connection strings were not updated automatically in my environment after I changed the SOA managed server listen address in the WLS admin console. However, this should happen per documentation:<br />
<br />
Source: <a href="http://docs.oracle.com/middleware/1213/owsm/security/install-owsm-wls.htm#CHDJFHDF">http://docs.oracle.com/middleware/1213/owsm/security/install-owsm-wls.htm#CHDJFHDF</a><br />
<blockquote class="tr_bq">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', arial, sans-serif; font-size: 13px; line-height: 20px;">If, however, you change the domain using tools other than the Configuration Wizard (such as the WebLogic Administration Console, Fusion Middleware Control, or WLST), any changes to the Policy Manager URL are automatically published to the Local Service table but the OWSM Agent client is </span><span class="italic" style="background-color: white; color: #222222; font-family: 'Open Sans', arial, sans-serif; font-size: 13px; font-style: italic; line-height: 20px;">not</span><span style="background-color: white; color: #222222; font-family: 'Open Sans', arial, sans-serif; font-size: 13px; line-height: 20px;"> automatically bound to the new URL. In this case, you need to manually bind the OWSM Agent to the Policy Manager URL. For more information, see </span><a href="http://docs.oracle.com/middleware/1213/owsm/security/install-owsm-wls.htm#BEIJJFHG" style="background-color: white; color: #2374c0; font-family: 'Open Sans', arial, sans-serif; font-size: 13px; line-height: 20px; text-decoration: none;">"Verifying Agent Bindings Using Fusion Middleware Control"</a><span style="background-color: white; color: #222222; font-family: 'Open Sans', arial, sans-serif; font-size: 13px; line-height: 20px;">.</span></blockquote>
The OWSM agents in my environment were still using the old OWSM policy manager url for some reason. To fix my issue I had to go to:<br />
<ol>
<li>EM console to Weblogic Domain home page -> drop down menu panel -> Cross Component Wiring -> Components. </li>
<li>Select OWSM agents to go to the OWSM agent component configuration guide</li>
<li>And re-bind the both t3 and http connections strings:</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilrwqk8r_wjwVoY0E7kukxDWi955hPLj6ul0BzrV1CX_dvjP6A1p-yb3qQU8iOjueT0JP0InjE_Y1Of_ftPRA82y-VvOCDZplnvgvd3rZSAuQN2miWa2XCjEUkl9siztOq-dNf/s1600/Capture_1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilrwqk8r_wjwVoY0E7kukxDWi955hPLj6ul0BzrV1CX_dvjP6A1p-yb3qQU8iOjueT0JP0InjE_Y1Of_ftPRA82y-VvOCDZplnvgvd3rZSAuQN2miWa2XCjEUkl9siztOq-dNf/s1600/Capture_1.PNG" height="222" width="640" /></a></div>
<div>
<br /></div>
<br />
After rebinding both endpoints, the agent client configurations were wired again and the AdminServer was able to connect to the PM and I was able to run a SOA service test from the EM console :)<br />
<br />
Please note that also when I target the ws-pm application to the AdminServer I still had to re-bind the agents to update the WSM Policy Manager url.<br />
<br />
At least on my environment it looks like a manual rebind is needed in order to update the WSM Policy Manager url in the OWSM agents after a Listen Address of a server hosting the WSM Policy Manager has been changed.<br />
<br />Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com8tag:blogger.com,1999:blog-19569500.post-43715380470747475162014-07-03T11:39:00.001-01:002014-07-03T11:45:54.749-01:00Oracle SOA Suite 12c tips - Tuning the SOA infrastructure thread poolOne of the new capabilities of <a href="http://www.oracle.com/technetwork/middleware/soasuite/overview/index.html?ssSourceSiteId=opn">Oracle SOA Suite 12c</a> is the ability to control the SOA infrastructure thread pools, except the resource pools for EDN and the adapters, with Oracle WebLogic Server work managers. Each partition will has its own work managers defined. This allows you to separate services in partitions and, to some extent, tune them separately based on for example specific SLA requirements.<br />
<br />
Well, this blog posting is not about explaining the SOA 12c thread pool concepts and all the knobs that you can use to tune the thread pools in SOA. That is extensively explained in the<a href="http://docs.oracle.com/middleware/1213/core/ASPER/soa_infra.htm"> Oracle Documentation</a>, so I am not going to repeat that here. What I want to highlight in this blog posting though, is how the SOADataSource impacts the SOA thread pool settings.<br />
<br />
In SOA 12c the size of the SOA thread pools is directly controlled by the Maximum Capacity setting of the SOADatasource. If you change the default value of 50 to, lets say, 250, that will also change the Maximum Threads Constraint settings that should be bound by the number of SOA database connections. For example, if the SOADataSource is configured with a maximum of 250 connections this means that the SOAInternalProcessing_maxThreads constraint will be bound to 125. This corresponds to the the <span style="background-color: white; color: #222222; font-family: monospace, serif; font-size: 13px; line-height: 20px;">SOAMaxThreadConfig </span><span style="background-color: white; color: #222222; font-family: monospace, serif; font-size: 13px; line-height: 20px;">internalProcessingPercentage </span>setting that is set to 50% by default.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQ6PiHX7aMNw5L-NX2pUxxrnBHsquB99b7S3u7PIizX5FySDNkMpjCyaXlqlOIyx7mH5rWMyEozj7gyTQ-5Hxp3Uc4XkqfsvmMX2_T-E1Xk1I79VLd3xhE9tTOSyMl-W4r1Ii/s1600/SOADataSource.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQ6PiHX7aMNw5L-NX2pUxxrnBHsquB99b7S3u7PIizX5FySDNkMpjCyaXlqlOIyx7mH5rWMyEozj7gyTQ-5Hxp3Uc4XkqfsvmMX2_T-E1Xk1I79VLd3xhE9tTOSyMl-W4r1Ii/s1600/SOADataSource.PNG" height="256" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SOADataSource</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZIue6hx07Y1MshO2rmSE9FwwJDG5gjZGl7y6x1QDpIx4ZxUQ-Oakdzgr2Se1a54vILIHCQo7jgJDB-on9yK_EnqcquwfZobcPi7cYr1p69ZG71fxgDZ62nWw_V-iK73kXayUv/s1600/maxthreadconstraint_soainternal.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZIue6hx07Y1MshO2rmSE9FwwJDG5gjZGl7y6x1QDpIx4ZxUQ-Oakdzgr2Se1a54vILIHCQo7jgJDB-on9yK_EnqcquwfZobcPi7cYr1p69ZG71fxgDZ62nWw_V-iK73kXayUv/s1600/maxthreadconstraint_soainternal.PNG" height="274" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SOAInternalProcessing_maxThreads Threads Constraint</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh749dZxG_kDJHGL208Z9WqSqdbuvssIAIb7Y3e90tCva_uVh5KoR-QtLFs6fK0IVJl4hoWw4zgRyGZdmTirSwcJYFqoyDc9HAVuwCZE4Z3z0pCAO7UhwythcIsidKRjPRP7V_l/s1600/soa-infra-mbean.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh749dZxG_kDJHGL208Z9WqSqdbuvssIAIb7Y3e90tCva_uVh5KoR-QtLFs6fK0IVJl4hoWw4zgRyGZdmTirSwcJYFqoyDc9HAVuwCZE4Z3z0pCAO7UhwythcIsidKRjPRP7V_l/s1600/soa-infra-mbean.png" height="187" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SOAMaxThreadsConfig attribute</td></tr>
</tbody></table>
<br />
<br />
Having a direct dependency between the SOADataSource connection pool size and the SOA thread pools depending on availability of database connections to the SOA dehydration store, mitigates the risk that SOA runs out of db connections. It is therefore recommended, in most customer scenarios, to only tune the percentages in the <span style="background-color: white; color: #222222; font-family: monospace, serif; font-size: 13px; line-height: 20px;">SOAMaxThreadConfig </span>configuration attribute or increasing the SOADataSource connection pool. Only dive into the workmanager configurations, such as the Fair Share classes and the thread constraints, if it is really needed.<br />
<br />
<br />
<br />
<br />
<br />Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com5tag:blogger.com,1999:blog-19569500.post-82193394464527819812014-06-04T13:19:00.002-01:002014-06-04T13:23:39.641-01:00Oracle Traffic Director: Instances, Processes & High Availability explainedRecently, I created a small slide deck to explain how Oracle Traffic Director instances, processes and high-availability concepts work together to front end requests to back end application servers with high availability.<br />
<br />
The Oracle Traffic Director (OTD) environment the slide is based on runs on Exalogic Virtual and consists of 3 vServers:<br />
<ul>
<li>1 for the OTD admin server</li>
<li>2 for the OTD admin nodes</li>
</ul>
<div>
More information about Oracle Traffic Director can be found here: <a href="http://docs.oracle.com/cd/E23389_01/index.htm">Oracle Traffic Director documentation</a></div>
<br />
<br />
<iframe frameborder="0" height="400" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/35480510" width="476"></iframe>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com0tag:blogger.com,1999:blog-19569500.post-57617445915679503812013-12-02T14:29:00.000-01:002013-12-02T21:00:56.636-01:00Oracle SOA Suite 11g tuning tips for Oracle RAC database 11.2During my project work I had to tune the SOA dehydration store on more than one occasion. Through this posting I would like to share the tuning tips collected during these exercises. It is not a step-by-step guide, because with tuning there never is a 'one-size-fits-all' in my humble opinion, but I provide in general a guidance that you can use as a reference for your own situation. I will also refer to related Oracle documentation where available.<br />
<br />
The reference installation I have based my tips on is a 2 node SOA 11.1.1.7 clustered environment connected to a 2 node Oracle Database RAC 11.2.0.3.4 environment (non-Exadata).<br />
<h3>
Database settings </h3>
Database settings that worked that were proven to work best for my projects:<br />
<br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="0" Name="Body Text"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
table.LightGrid1
{mso-style-name:"Light Grid1";
mso-tstyle-rowband-size:1;
mso-tstyle-colband-size:1;
mso-style-priority:62;
mso-style-unhide:no;
border:solid black 1.0pt;
mso-border-themecolor:text1;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:1.0pt solid black;
mso-border-insideh-themecolor:text1;
mso-border-insidev:1.0pt solid black;
mso-border-insidev-themecolor:text1;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
table.LightGrid1FirstRow
{mso-style-name:"Light Grid1";
mso-table-condition:first-row;
mso-style-priority:62;
mso-style-unhide:no;
mso-tstyle-border-top:1.0pt solid black;
mso-tstyle-border-top-themecolor:text1;
mso-tstyle-border-left:1.0pt solid black;
mso-tstyle-border-left-themecolor:text1;
mso-tstyle-border-bottom:2.25pt solid black;
mso-tstyle-border-bottom-themecolor:text1;
mso-tstyle-border-right:1.0pt solid black;
mso-tstyle-border-right-themecolor:text1;
mso-tstyle-border-insideh:cell-none;
mso-tstyle-border-insidev:1.0pt solid black;
mso-tstyle-border-insidev-themecolor:text1;
mso-para-margin-top:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-bottom:.0001pt;
line-height:normal;
font-family:"Thorndale AMT","serif";
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.LightGrid1LastRow
{mso-style-name:"Light Grid1";
mso-table-condition:last-row;
mso-style-priority:62;
mso-style-unhide:no;
mso-tstyle-border-top:2.25pt double black;
mso-tstyle-border-top-themecolor:text1;
mso-tstyle-border-left:1.0pt solid black;
mso-tstyle-border-left-themecolor:text1;
mso-tstyle-border-bottom:1.0pt solid black;
mso-tstyle-border-bottom-themecolor:text1;
mso-tstyle-border-right:1.0pt solid black;
mso-tstyle-border-right-themecolor:text1;
mso-tstyle-border-insideh:cell-none;
mso-tstyle-border-insidev:1.0pt solid black;
mso-tstyle-border-insidev-themecolor:text1;
mso-para-margin-top:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-bottom:.0001pt;
line-height:normal;
font-family:"Thorndale AMT","serif";
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.LightGrid1FirstCol
{mso-style-name:"Light Grid1";
mso-table-condition:first-column;
mso-style-priority:62;
mso-style-unhide:no;
font-family:"Thorndale AMT","serif";
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.LightGrid1LastCol
{mso-style-name:"Light Grid1";
mso-table-condition:last-column;
mso-style-priority:62;
mso-style-unhide:no;
mso-tstyle-border-top:1.0pt solid black;
mso-tstyle-border-top-themecolor:text1;
mso-tstyle-border-left:1.0pt solid black;
mso-tstyle-border-left-themecolor:text1;
mso-tstyle-border-bottom:1.0pt solid black;
mso-tstyle-border-bottom-themecolor:text1;
mso-tstyle-border-right:1.0pt solid black;
mso-tstyle-border-right-themecolor:text1;
font-family:"Thorndale AMT","serif";
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.LightGrid1OddColumn
{mso-style-name:"Light Grid1";
mso-table-condition:odd-column;
mso-style-priority:62;
mso-style-unhide:no;
mso-tstyle-shading:silver;
mso-tstyle-shading-themecolor:text1;
mso-tstyle-shading-themetint:63;
mso-tstyle-border-top:1.0pt solid black;
mso-tstyle-border-top-themecolor:text1;
mso-tstyle-border-left:1.0pt solid black;
mso-tstyle-border-left-themecolor:text1;
mso-tstyle-border-bottom:1.0pt solid black;
mso-tstyle-border-bottom-themecolor:text1;
mso-tstyle-border-right:1.0pt solid black;
mso-tstyle-border-right-themecolor:text1;}
table.LightGrid1OddRow
{mso-style-name:"Light Grid1";
mso-table-condition:odd-row;
mso-style-priority:62;
mso-style-unhide:no;
mso-tstyle-shading:silver;
mso-tstyle-shading-themecolor:text1;
mso-tstyle-shading-themetint:63;
mso-tstyle-border-top:1.0pt solid black;
mso-tstyle-border-top-themecolor:text1;
mso-tstyle-border-left:1.0pt solid black;
mso-tstyle-border-left-themecolor:text1;
mso-tstyle-border-bottom:1.0pt solid black;
mso-tstyle-border-bottom-themecolor:text1;
mso-tstyle-border-right:1.0pt solid black;
mso-tstyle-border-right-themecolor:text1;
mso-tstyle-border-insidev:1.0pt solid black;
mso-tstyle-border-insidev-themecolor:text1;}
table.LightGrid1EvenRow
{mso-style-name:"Light Grid1";
mso-table-condition:even-row;
mso-style-priority:62;
mso-style-unhide:no;
mso-tstyle-border-top:1.0pt solid black;
mso-tstyle-border-top-themecolor:text1;
mso-tstyle-border-left:1.0pt solid black;
mso-tstyle-border-left-themecolor:text1;
mso-tstyle-border-bottom:1.0pt solid black;
mso-tstyle-border-bottom-themecolor:text1;
mso-tstyle-border-right:1.0pt solid black;
mso-tstyle-border-right-themecolor:text1;
mso-tstyle-border-insidev:1.0pt solid black;
mso-tstyle-border-insidev-themecolor:text1;}
</style>
<![endif]-->
<br />
<table border="1" cellpadding="0" cellspacing="0" class="LightGrid1" style="border-collapse: collapse; border: none; mso-border-alt: solid black 1.0pt; mso-border-themecolor: text1; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184; width: 637px;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: -1;">
<td style="border-bottom: solid black 2.25pt; border: solid black 1.0pt; mso-border-bottom-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoNormal" style="mso-yfti-cnfc: 5;">
<b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">SETTING</span></b></div>
</td>
<td style="border-bottom: solid black 2.25pt; border-left: none; border-right: solid black 1.0pt; border-top: solid black 1.0pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoNormal" style="mso-yfti-cnfc: 1;">
<b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">VALUE</span></b></div>
</td>
<td style="border-bottom: solid black 2.25pt; border-left: none; border-right: solid black 1.0pt; border-top: solid black 1.0pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 1; tab-stops: 106.5pt;">
<b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">COMMENT<span style="mso-tab-count: 1;"> </span></span></b></div>
</td>
</tr>
<tr style="mso-yfti-irow: 0;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoNormal" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-bidi-font-family: Arial; mso-bidi-font-size: 11.0pt;">processes</span></b><b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;"></span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">1200</span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoNormal" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-bidi-font-family: Arial; mso-bidi-font-size: 11.0pt;">sessions</span></b><b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;"></span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100">665</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><br /></td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoNormal" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-bidi-font-family: Arial; mso-bidi-font-size: 11.0pt;">session_cached_cursors</span></b><b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;"></span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">100</span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoNormal" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-bidi-font-family: Arial; mso-bidi-font-size: 11.0pt;">parallel_max_servers</span></b><b><span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;"></span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">5</span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">session_cached_cursors</span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 64;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">300</span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">LOG_BUFFER</span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 128;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">1048576+</span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Db_cache_size *</span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 64;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">0 or 1000m+</span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">undo_retention</span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 128;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">0</span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">memory_target *</span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 64;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">15g</span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 9;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">memory_max_target *</span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 128;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">15g</span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 10;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">sga_target *</span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 64;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">0 </span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">Automatic memory management</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 11;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Sga_max_size *</span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 128;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">0 </span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;">Automatic memory management</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 12;">
<td style="background: silver; border-top: none; border: solid black 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 68;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Shared_servers</span></b></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 64;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">0 (use dedicated
services)</span></div>
</td>
<td style="background: silver; border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-background-themecolor: text1; mso-background-themetint: 63; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 64;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 13; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 184.8pt;" valign="top" width="246"><div class="MsoBodyText" style="mso-yfti-cnfc: 132;">
<b><span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">DISTRIBUTED_LOCK_TIMEOUT</span></b></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 74.7pt;" valign="top" width="100"><div class="MsoBodyText" style="mso-yfti-cnfc: 128;">
<span lang="EN-GB" style="font-family: "Cambria","serif"; mso-ansi-language: EN-GB; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Cambria; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: major-latin; mso-hansi-theme-font: major-latin;">700 (must > JTA
transaction time out)</span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black 1.0pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-top-alt: solid black 1.0pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 218.4pt;" valign="top" width="291"><div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
<div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
<div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<br /></div>
<div class="MsoNormal" style="mso-yfti-cnfc: 128;">
<span style="mso-bidi-font-size: 11.0pt; mso-fareast-language: EN-US;"> </span></div>
</td>
</tr>
</tbody></table>
<h3>
Index partitioning for RAC</h3>
For tuning the SOA dehydration store for RAC I used the following Oracle document as a reference<br />
<br />
http://www.oracle.com/technetwork/database/availability/maa-fmw-soa-racanalysis-427647.pdf<br />
<br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="0" Name="Body Text"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">For reducing index contention in RAC database I partitioned the following indexes (the default partition settings where sufficient for my projects)</span></div>
<ul>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">WI_STRANDED / WORK_ITEM</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">DLV_MESSAGE_CIKEY / DLV_MESSAGE</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">DLV_MESSAGE_DATE_ECID / DLV_MESSAGE</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">AT_PK / AUDIT_TRAIL</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">DLV_MESSAGE_PK / DLV_MESSAGE</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">CS_PK / CUBE_SCOPE</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">STATE_TYPE_CIKEY / DLV_MESSAGE </span></li>
</ul>
<h3>
<span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">Secure Files for optimized LOB storage</span></h3>
<span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">Oracle Fusion Middleware Service Oriented Architecture (SOA) Suite is a database intensive middleware system with multiple components that store many different types of data in the Database. During a single invocation of a composite, multiple inserts and updates of unstructured data like documents, messages, faults and payloads may take place. The amount of data in the Oracle SOA Suite database grows very quickly and this rapid growth is especially relevant for such unstructured data as it may affect not only the manageability of the database, but also its performance. Audit Trails, Business Decision Rules, Sensors, EDN and multiple other objects in the Oracle FW SOA Schemas make intensive use of unstructured data in lobs, clobs and blobs. SecureFiles is a feature introduced in Oracle Database 11g that is specifically engineered to deliver high performance for this type of unstructured data. (Source: http://www.oracle.com/technetwork/database/availability/oraclefmw-soa-11gr1-securefiles-1842740.pdf)</span><br />
<span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;"><br /></span>
<span lang="EN-GB" style="mso-ansi-language: EN-GB; mso-fareast-language: EN-US;">Beside other benefits Secure Files eliminates the infamous </span><span class="st">(<i>HW</i>) <i>enqueue contention </i>wait events with using Basic Files for LOB storage. In most cases for me the </span><span class="st">(<i>HW</i>) <i>enqueue contention </i>wait events were the main reason for performance issues with the SOA DB.</span><br />
<br />
<i><span class="st">Additional settings:</span></i><br />
<br />
<span class="st">DEDUPLICATION and COMPRESSION set to LOW (Note: requires additional DB Compression license) </span><br />
<br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="0" Name="Body Text"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">PCTFREE to 20 for the following tables:</span>
<br />
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">composite_instance</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">cube_instance</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">cube_scope</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">dlv_messages</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">dlv_subscriptions</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">xml_document</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">mediator_payload</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">mediator_case_detail</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">mediator_audit_document</span></div>
<div align="left" class="MsoBodyText" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 80.95pt; margin-right: 0cm; margin-top: 6.0pt; mso-hyphenate: auto; mso-list: l0 level2 lfo1; text-align: left; text-indent: -18.0pt;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New"; mso-fareast-language: EN-US;"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span style="mso-bidi-font-family: Arial; mso-fareast-language: EN-US;">audit_details</span></div>
<span class="st">I did not experimented with table partitioning because without table partitioning performance requirements were already met on my projects. But if you want or have to get the most out of the configuration, I recommend to consider table partitioning based on the performance numbers provided in the SOA Secure Files white paper.</span><br />
<br />
<span class="st"><u><i>RAC patches on top of 11.2.0.3.4</i></u></span><br />
<span class="st">I recommend to always use the latest patch bundle 4 on top of 11.2.0.3 (latest non-Exadata patchset for 11.2) and install the following one-off patches to solve specific Secure Files issues:</span><span class="st"></span><span style="mso-fareast-language: EN-US;"> </span><br />
<ul>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">13787307</span></span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">13775960<span class="st"><u><br /><i><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="0" Name="Body Text"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--></i></u></span></span></span></li>
<li><span class="st"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">12614359</span></span><u><i> </i></u></span></li>
</ul>
<h3>
<span class="st">Tablespace separation</span><span class="st"> </span></h3>
<span class="st">As a best practice I also recommend to separate the indexes and LOB segments into separate table spaces. Especially on SOA 10g using Basic Files and RAC I have noticed a significant reduction of wait events when using separate table spaces for the indexes and LOB segments so I have reused this best practices when introduction secure files. Also from a space management perspective this gives benefits.</span><br />
<br />
<span class="st">As a final note, I want to mention 2 things: </span><br />
<br />
<span class="st">1) I want to state again that the provided tuning guidelines in this posting serve as a reference not meaning that they will provide the most optimal performance in all situations...at least I can say that they probably won't harm.</span><br />
<span class="st"><br /></span>
<span class="st">2) Leverage AWR reports or the Oracle Enterprise Manager 12c to monitor & analyse DB performance during SOA performance testing. On many occasions they proved to be my best friend to find performance bottlenecks. </span><br />
<h3>
<span class="st"></span></h3>
<br />Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com5tag:blogger.com,1999:blog-19569500.post-17439867144787424212013-11-21T13:19:00.001-01:002013-11-21T13:19:38.555-01:00The inbound OSB file transport flow explainedThe working of the OSB file transport can be explained as follows:<br />
<ul>
<li>File written to a polling directory</li>
<li>Metadata messages posted in internal JMS queue by the file transport and file moved to staging directory</li>
<li>OSB Proxy Service triggered by message on the JMS queue </li>
<li>Proxy service reads file from staging directory and moves the file to the archive folder when completed</li>
</ul>
This blogs explains the behavior when you suspend the flow on 3 different places of the flow. In general I think disabling the Proxy Service will be the best alternative in most situations. Anyway, by writing this blog I also hope to increase awareness about the internal working of the file transport in OSB. <br />
<br />
Note: I have tested this all before 11.1.1.7, but I have not read anything that indicates that the behavior should be different between 11.1.1.6 and 11.1.1.7<br />
<ul>
</ul>
<br />
<u>Action: Disabling the production internal file jms queue</u><br />
<br />
Error in OSB log:<br />
<br />
<aug 15="" 2012="" 8:18:22="" cest="" pm=""> <warning> <wlisbtransports> <bea-381608> <span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><jms br="" default="" destination="" encountered="" endpoint="" error="" for="" in="" is="" jmsresources="" message="" new="" paused="" production.="" proxyservice="" putting="" queue="" service="" the="" weblogic.jms.common.illegalstateexception:="" while="" wlsb.internal.transport.task.queue.file="">weblogic.jms.common.IllegalStateException: Destination jmsResources!wlsb.internal.transport.task.queue.file is paused for new message production<br /> at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)<br /> at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncTran(DispatcherAdapter.java:53)<br /> at weblogic.jms.client.JMSProducer.toFEProducer(JMSProducer.java:1289)<br /> at weblogic.jms.client.JMSProducer.deliveryInternal(JMSProducer.java:796)<br /> at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:541)<br /> Truncated. see log file for complete stacktrace</jms></span></span></bea-381608></wlisbtransports></warning></aug><br />
<aug 15="" 2012="" 8:18:22="" cest="" pm=""><warning><wlisbtransports><bea-381608><jms br="" default="" destination="" encountered="" endpoint="" error="" for="" in="" is="" jmsresources="" message="" new="" paused="" production.="" proxyservice="" putting="" queue="" service="" the="" weblogic.jms.common.illegalstateexception:="" while="" wlsb.internal.transport.task.queue.file=""><br /></jms></bea-381608></wlisbtransports></warning></aug>
<ul>
<li>Message read from the polling directory, but placed in the error directory because of the above error</li>
</ul>
<br />
<u>Action: Disabling the consumption internal file jms queue</u><br />
<br />
<ul>
<li> Messages read from the polling directory on each poll cycle</li>
<li> Messages moved to the stage directory on each poll cycle</li>
<li> Messages not picked up by the proxy service and remain in the staging directory</li>
<li> After enabling consumption again the stage directory was immediately emptied and messages eventually ended up in the archive folder</li>
</ul>
<u><br />Action: Disabling proxy service</u><br />
<br />
The following error can be seen when the proxy is disabled during a poll cycle execution:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">####</span></span><aug 15="" 2012="" 8:23:45="" cest="" pm=""><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><warning><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><ejb><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><tomhofte-laptop><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><osb_server1><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> </span></span><alsb-system-user><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> <> <88685c90d4ac9d24:-768bd09e:1392b67272a:-8000-000000000000029f> <1345055025030> </1345055025030></88685c90d4ac9d24:-768bd09e:1392b67272a:-8000-000000000000029f></span></span><bea-010065><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><messagedrivenbean an="" br="" exception="" in="" onmessage="" the="" threw="" was:=""><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> javax.ejb.EJBException: nested exception is: com.bea.wli.sb.transports.TransportException: ProxyService default/PS_FILE_INBOUND has been disabled.<br />javax.ejb.EJBException: nested exception is: com.bea.wli.sb.transports.TransportException: ProxyService default/PS_FILE_INBOUND has been disabled<br /> at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB.__onMessage(PolledMessageListenerMDB.java:55)<br /> at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB.access$000(PolledMessageListenerMDB.java:31)<br /> at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB$1.run(PolledMessageListenerMDB.java:41)<br /> at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB$1.run(PolledMessageListenerMDB.java:39)<br /> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)<br /> at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)<br /> at weblogic.security.Security.runAs(Security.java:41)<br /> at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB.onMessage(PolledMessageListenerMDB.java:39)<br /> at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583)<br /> at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486)<br /> at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388)<br /> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)<br /> at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)<br /> at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)<br /> at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)<br /> at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)<br /> at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)<br /> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)<br /> at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)</span></span></messagedrivenbean></bea-010065><!--1345055025030--><!--88685c90d4ac9d24:-768bd09e:1392b67272a:-8000-000000000000029f--></alsb-system-user></osb_server1></tomhofte-laptop></ejb></warning></aug><br />
<ul>
<li>The error above ONLY occurs when messages are picked up from the polling directory and in-flight when the PS is disabled. All 10 messages of that poll cycle are moved to the error directory. From here they can be recovered</li>
<li> No messages are picked up from the polling directory after the PS is disabled</li>
</ul>
Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com0tag:blogger.com,1999:blog-19569500.post-38519749420352744092010-06-13T18:30:00.006-01:002010-06-13T18:49:54.906-01:00OSB 11g - JCA polling adapter: StuckThread trace in the server logI recently had to configure in OSB 11g the JCA AQ adapter to poll for new messages on an AQ inbound queue. This is quite easy using this <a href="http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jcatransport/transport.html">tutorial</a>.<br /><br />However after I had configured the adapter and run some successful tests I saw the following stack trace in the server log after a period:<br /><br /><pre name="code" class="java"><br /><Jun 13, 2010 9:05:22 PM CEST> <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "600" seconds working on the request "weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@4b936059", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:<br /> java.net.SocketInputStream.socketRead0(Native Method)<br /> java.net.SocketInputStream.read(SocketInputStream.java:129)<br /> oracle.net.nt.MetricsEnabledInputStream.read(TcpNTAdapter.java:564)<br /> oracle.net.ns.Packet.receive(Packet.java:295)<br /> oracle.net.ns.DataPacket.receive(DataPacket.java:94)<br /> oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:176)<br /> oracle.net.ns.NetInputStream.read(NetInputStream.java:121)<br /> oracle.net.ns.NetInputStream.read(NetInputStream.java:96)<br /> oracle.net.ns.NetInputStream.read(NetInputStream.java:81)<br /> oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124)<br /> oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80)<br /> oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1087)<br /> oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1062)<br /> oracle.jdbc.driver.T4Caqdq.receive(T4Caqdq.java:338)<br /> oracle.jdbc.driver.T4CConnection.doDequeue(T4CConnection.java:4067)<br /> oracle.jdbc.driver.PhysicalConnection.dequeue(PhysicalConnection.java:16057)<br /> oracle.jdbc.driver.PhysicalConnection.dequeue(PhysicalConnection.java:16138)<br /> oracle.jdbc.OracleConnectionWrapper.dequeue(OracleConnectionWrapper.java:1594)<br /> weblogic.jdbc.wrapper.XAConnection_oracle_jdbc_driver_LogicalConnection.dequeue(Unknown Source)<br /> weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection.dequeue(Unknown Source)<br /> oracle.tip.adapter.aq.v2.database.AbstractDequeueAgent.dequeue(AbstractDequeueAgent.java:356)<br /> oracle.tip.adapter.aq.v2.database.AbstractDequeueAgent.dequeueMessage(AbstractDequeueAgent.java:259)<br /> oracle.tip.adapter.aq.v2.database.AbstractDequeueAgent.getInputRecord(AbstractDequeueAgent.java:232)<br /> oracle.tip.adapter.aq.v2.database.AbstractDequeueAgent.run(AbstractDequeueAgent.java:101)<br /> weblogic.work.ContextWrap.run(ContextWrap.java:41)<br /> weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)<br /> weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)<br /> weblogic.work.ExecuteThread.run(ExecuteThread.java:173)<br /><br /></pre> <br /><br />Apparently, this StuckThread trace occurs 10 minutes after the server has been started and is caused by the fact that WebLogic uses by default 1 polling thread which remains active, or in other words is never released by the adapter, by design. Therefore the stuck thread trace can be ignored.<br /><br />Please look in the <a href="http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jcatransport/transport.html">OSB JCA transport guide</a> for a detailed explanation and the configuration steps that can be applied to prevent stuck thread traces for polling threads (use a special configured Workmanager)Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com3tag:blogger.com,1999:blog-19569500.post-83034184783581902502010-06-02T18:32:00.004-01:002010-06-02T19:24:41.942-01:00Coherence in Oracle Fusion Middleware 11g: useful tips & linksSince the release of Oracle Fusion Middleware 11g the integration of Coherence in the Fusion Middleware has increased drastically with every PatchSet release. Currently in FMW 11g PS2 Coherence is used for:<br /><ul><br /> <li>Cluster Deployment</li><br /> <li>Weblogic ActiveCache/Coherence*Web integration</li><br /> <li>OSB ResultCache</li><br /></ul><br />This posting will contain useful pointers to documentation section that can help you with managing and using Coherence in FMW 11g...the list is not complete but a first attempt to bundle the links I have used before and which were/are very helpful for me.<br /><span style="font-weight:bold;">Coherence Network and performance tuning</span><br /><ul><br /> <li><a href="http://orasoa.blogspot.com/2010/02/soa-11g-coherence-cluster-setup-on.html">Configuration tips fo local laptop configuration - Thanks Marc</a>; <br /></li><br /><li>use the <span style="font-style:italic;">tangosol.coherence.ttl</span> (time-to-live) to prevent network traffic to different hosts - useful when working locally on laptops.<br /></li><br /><li>use the <span style="font-style:italic;">tangosol.coherence.localhost </span>to force Coherence to bind to a specific address</li><br /><li>use the <span style="font-style:italic;">tangosol.coherence.wka</span> to force unicast cluster communication. Determine the wka addresses and the number of wka addresses carefully to avoid loss of service in case the wka nodes die.</li><br /><li>for the OSB the coherence cache and cluster configuration files can be found in <DOMAIN-HOME>/config/osb/coherence</li> and can be changed accordingly.<br /><li>When encountering Coherence socket buffer warnings in the log files it is useful to increase the socket buffer size of your OS. Please have a look <a href="http://download.oracle.com/docs/cd/E14526_01/coh.350/e14509/perftune.htm#CACIEGCC">here to find the settings per OS</a></li><br /><li><a href="http://download.oracle.com/docs/cd/E14526_01/coh.350/e14509/perftune.htm">Coherence performance tuning</a></li><br /><li>In my opinion it is wise not to use the Managed server JVM for cache storage in case your cache will grow to a significant size. Configure the Managed Server JVM with local-storage false and off-load storage to other cache-servers in the Coherence cluster running in separate JVMs</li><br /></ul><br /><span style="font-weight:bold;">Active Cache - Coherence*Web</span><br /><ul><br /><li><a href="http://download.oracle.com/docs/cd/E14571_01/web.1111/e16517/coh_wls.htm#COHWL115">Development guide</a></li><br /><li><a href="http://download.oracle.com/docs/cd/E14571_01/web.1111/e16517/cweb_summary.htm#COHWL709">Coherence*Web</a></li><br /></ul><br />I will update this post when I have more useful information that can be shared. In case of Coherence related questions feel free to send me an email.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com2tag:blogger.com,1999:blog-19569500.post-50457489866934601932010-05-30T13:20:00.005-01:002010-05-30T13:29:37.403-01:00Book review: Oracle Coherence 3.5: Create internet scale applications using Oracle's high-performance data gridThe IT book publisher PackT asked me, based on my blog activities here, a couple of weeks ago if I was willing to review the newly published book <a href="https://www.packtpub.com/oracle-coherence-3-5/book">Coherence 3.5</a>. Being a person who works with Coherence, follows the developments around Coherence and believes in the capabilities of Oracle Coherence for building reliable scalable architectures, I was definitely willing to review this book and to bundle my feedback in a blog posting afterwards.<br /><br />The book starts with an overview of what scalability, performance and high availability means and (also important) what not, what it does involve, how you achieve it and how Coherence fits into this picture. After explaining the basic concepts of performance, scalability and availability the book proceeds with explaining how easy it is to start off with Oracle Coherence to build your first 'Hello World' Coherence application.<br /><br />After this overviev the book starts with the 'real stuff'. First a detailed overview is given about the different type of caching topologies and the options Coherence provide to decide for the right caching strategy. The book also provides so called 'When to use it?' chapter per topology in which it explains for which typical applications the topolgy is applicable and should be used; very useful. The following chapter explains how you can define your domain objects and make them Coherence-aware. In this chapter it uses the concepts of Domain Driven Design as the basis to construct the domain model for a sample applications. For me personally, this chapter was an eye-opener regarding building domain models for Coherence. One thing you should keep in mind, which i had learned before, when you start using Coherence is that you should keep things very simple and don't treat Coherence as an in-memory relational database. only put those things in Coherence grid which should be in the cache and avoid to think like you're going to build a database relation model. For example, store whole aggregates (Order, order items) in a single cache entry for the sake of atomicity, consistency and simplicity. The chapter also provides information about efficient object serialization using Coherence Portable Object Format (POF) and object change managements using evolvable objects.<br /><br />The book continues with covering the following topics that makes the book a complete Coherence<br />reference :<br /><ul><br /> <li>Querying the Grid</li><br /> <li>Entry processing</li><br /> <li>Event processing</li><br /> <li>Persistency</li><br /> <li>Coherence*Extend</li><br /> <li>C++ and .Net interoperability</li><br /></ul> <br /><br /><br />My final conclusion about this book is that is an excellent book to start off with in order to make yourself familiar with implementing Coherence applications. The book is complete in terms of<br />'should-know' features and contains useful guidelines and best-practices.<br /><br />The book can be ordered from here:<br />- <a href="https://www.packtpub.com/oracle-coherence-3-5/book"> PackT site </a><br />- <a href="http://www.amazon.com/Oracle-Coherence-3-5-Aleksandar-Seovic/dp/1847196128">Amazon site</a>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1tag:blogger.com,1999:blog-19569500.post-58691404950705448452010-05-07T18:46:00.024-01:002010-05-08T09:50:58.975-01:00How-to: Analyzing Out-Of-Memory issues in WebLogic 10.3.3 with JRockit 4.0 Flight Recorder<a href="http://www.oracle.com/technology/products/weblogic/index.html">Oracle WebLogic Server 10.3.3 </a>provides out-of-the box support for <a href="http://download.oracle.com/docs/cd/E15289_01/doc.40/e15070/introduction.htm#BABGIEGJ">JRockit Flight Recorder</a> (JFR); the new enhanced run-time JVM analyzer in JRockit 4.0 positioned as the replacement for JRA with the following points of improvement <i>Always on</i>, <i>Better data</i>, <i>third-party application</i> integration through an API and <i>low-to-zero overhead</i>. JFR integrates seamlessly with WLS 10.3.3 to produce recording images on demand or event-based to analyze and solve all kinds of JVM issues.
<br />
<br />In this blog posting, I show how to capture automatically an overall WLS system image, including a JFR image, after an out-of-memory (OOM) exception has occured in the JVM hosting WLS 10.3.3.
<br />
<br /><b>Setting up WLS Diagnostic framework</b>
<br />To enable event generation by WLS for JFR, the Weblogic <i>Diagnostic Volume</i> property has to be set to the value low, medium or high indicating the amount of recorded events. The
<br /><i>Diagnostic Volume</i> can be set in the WLS Administration console -> Environment -> servers -> YourServer.
<br />
<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidsxs5PsA-V_T1mQuE9pZYXgH-PiFJNX76P_YU6UxUuqkuTTMCAbxEX06eFB8O2n6SxDJ0WVNF702CvMa-sLjAhDJuWrDzhmQTaADC-EPYLowRUWcT2i8RbzWweTNTp8Sld6mj/s1600/wls-diagnostic-vlm.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 309px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidsxs5PsA-V_T1mQuE9pZYXgH-PiFJNX76P_YU6UxUuqkuTTMCAbxEX06eFB8O2n6SxDJ0WVNF702CvMa-sLjAhDJuWrDzhmQTaADC-EPYLowRUWcT2i8RbzWweTNTp8Sld6mj/s400/wls-diagnostic-vlm.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468619693097412242" /></a>
<br />
<br />Now we have started event generation by WLS for JFR, we have to configure a WLS Diagnostic system module with a watch rule and a notification so that image capturing is triggered whenever an OOM error happens. The image capturing mechanism captures the WLS system state together with the JFR buffered event data and generates a zip file in containing the JFR file in the image folder. The image folder is specified in the WLS adminstation console -> Diagnostics -> Diagnostic images -> YourServer
<br />
<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSVndWsQPCJnUNb1nTqQkbnnRd73TxF2AH_HXkVueFQkuQpKfnl_dRAorYhiKe-J-tyoJ31ovr2EyURExtStXlUIwfEEzXUa_5L6r-mM2NHMCWj9ljPbgxRSYKM-PwMP6_XZLF/s1600/wls-image-vlm1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSVndWsQPCJnUNb1nTqQkbnnRd73TxF2AH_HXkVueFQkuQpKfnl_dRAorYhiKe-J-tyoJ31ovr2EyURExtStXlUIwfEEzXUa_5L6r-mM2NHMCWj9ljPbgxRSYKM-PwMP6_XZLF/s400/wls-image-vlm1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468620155495141170" /></a>
<br />
<br />Go in the WLS Administration console to WLS adminstation console -> Diagnostics -> Diagnostic modules and create a new diagnostic module. I have called it <span style="font-style:italic;">JRFDiagnosticeModule</span>. Click on the created diagnostic module and target it to the designated server (tab Targets). Go back to configuration tab and click on the Watches and Notifications tab to create a watch rule and a notification with following specs:
<br />
<br /><b>Watch rule</b>
<br /><ul>
<br /> <li>Type = Server Log</li>
<br /> <li>Expression = (MESSAGE LIKE '%OutOfMemoryError%')</li>
<br /> <li>Use an automatic alarm so that the rule is re-enabled each time it is triggered after a defined period</i>
<br /></ul>
<br />
<br /><b>Notification</b>
<br /><ul>
<br /> <li>Type = Diagnostic Image</li>
<br /></ul>
<br />
<br />Make sure everything is enabled and the notification is associated with the watch. Leave every other setting to their defaults.
<br />
<br />This is all we have to do in WLS 10.3.3. Before we proceed with triggering a OOM with a sample application, we first start the JRockit Mission Control (JRMC) application to verify that the JFR recording has been started. Execute the jrmc file in the folder <jrockit-home>/bin folder to start JRMC. Open the JVM browser and right-click on the WLS jvm and select view reports. In the lower-right panel you'll see that one recording has been started:
<br />
<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVg3e4ulOXs2PKUeN2y318iILasI0gCnwwV0m-7PXQxjCGHePsHg0Lll4ZBmb_tDE3j4Ejx7pCpxiGBRYGrX2jRwt7wTIYHulex0Se3SG5rdohFhlMrIQ6gKU0ki6l-AIIooOp/s1600/jrmc-overview.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVg3e4ulOXs2PKUeN2y318iILasI0gCnwwV0m-7PXQxjCGHePsHg0Lll4ZBmb_tDE3j4Ejx7pCpxiGBRYGrX2jRwt7wTIYHulex0Se3SG5rdohFhlMrIQ6gKU0ki6l-AIIooOp/s400/jrmc-overview.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468621028287758690" /></a>
<br />
<br /><b>Generate an OOM error</b>
<br />To generate an OOM I've created a simple web application constisting of a simple page with a button that triggers a servlet that will execute the following code-snippet to generate an OOM in WLS 10.3.3.
<br />
<br /><pre name="code" class="java">
<br /> List list = new ArrayList();
<br /> while(true){
<br /> list.add("test string");
<br /></pre>
<br />
<br />Deploy the web application to the WLS server and trigger the OOM by pressing the button on the page. After a few seconds you'll see this in console logging:
<br />
<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr9q959d1w3jvdgw7y3kNa7Q8e9iKJvU5eZumHtJ-zmceYhlltExmPcvkt9E54FLi6DFrrQOR_Xk6FRsJpdotZVFDnb34Zf-oL_HekQInYVyEIqw9901t9DzijXuW-26a2nadI/s1600/console-overview1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr9q959d1w3jvdgw7y3kNa7Q8e9iKJvU5eZumHtJ-zmceYhlltExmPcvkt9E54FLi6DFrrQOR_Xk6FRsJpdotZVFDnb34Zf-oL_HekQInYVyEIqw9901t9DzijXuW-26a2nadI/s400/console-overview1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468621367863364882" /></a>
<br />
<br />The console logging shows that the watch rule has been triggered and a image capture has been generated in the folder <DOMAIN_HOME>/servers/AdminServer/logs/diagnostic_image. Unzip the file and open the JRockitFlightRecorder.jfr file in JRMC.
<br />
<br />In the JRMC console you are now able to analyze the root cause of the problem. For this obvious OO example (you can also get the root cause from the console output..but the intention here is to show the capabilities of JFR in general), you can have a look at the allocation tab in the Memory panel to drill down to class that causes the String object creation (It's just an example and the JFR contains a lot more information about Threads/CPU utilization and GC executions for example):
<br />
<br />
<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBi41F8Am2wVvTRAD1_pemK5VAY6wOliqlaGXo06SBw89l2kc9nl-yKPUwvtMcOsyQSRkvHMhGS1gKFtHJ0JGuXzux-Tf2eNb2sABQR4rdnYEJk91yJmFRPJR2rdy25MQ69Rs2/s1600/jrmc-oo-allocation-trace.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBi41F8Am2wVvTRAD1_pemK5VAY6wOliqlaGXo06SBw89l2kc9nl-yKPUwvtMcOsyQSRkvHMhGS1gKFtHJ0JGuXzux-Tf2eNb2sABQR4rdnYEJk91yJmFRPJR2rdy25MQ69Rs2/s400/jrmc-oo-allocation-trace.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468623589089929778" /></a>
<br />
<br />Also the Hot Method tab in the Code panel shows the servlet doPost method as a top listed hot method:
<br />
<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhekv5_0RwqfypaORaP5gXTV0HPG8P_e5rvt5Y33y4BG2etoPjUMvcHoO3XWbLK0-5JC-kfB6UgarpCvuPZfU5aoWNhkHfs1BQxHHz_nJf2q90UsXAC8BVaw6ePyhG1-IIFf2kg/s1600/memory-oo-hotmethods.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhekv5_0RwqfypaORaP5gXTV0HPG8P_e5rvt5Y33y4BG2etoPjUMvcHoO3XWbLK0-5JC-kfB6UgarpCvuPZfU5aoWNhkHfs1BQxHHz_nJf2q90UsXAC8BVaw6ePyhG1-IIFf2kg/s400/memory-oo-hotmethods.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468630418020692434" /></a>
<br />
<br />This simple and obvious example shows how easy it is to let WLS diagnostic framework continuously produce monitoring data for JFR that can be dumped to a JFR image when required, e.g. in case of OOM exception or other events. The default WLS diagnostic framework can be configured to collect a specific amount of events by using the coarse-grained Diagnostic Volume property. If you want extra events to JFR image you can start extra Recording by using the JRMC or using the command line. Also it is possible to use Java startup parameter <span style="font-style:italic;">-XX:+|-FlightRecordingDumpOnUnhandledException</span> to trigger a JFR dump after a unhandled exception in the JVM.
<br />
<br />Documentation:
<br /><ul>
<br /> <li><a href="http://download.oracle.com/docs/cd/E15289_01/doc.40/e15070/introduction.htm#BABGIEGJ">JRockit Flight Recorder run-time guide</a></i>
<br /> <li><a href="http://download.oracle.com/docs/cd/E14571_01/web.1111/e13714/toc.htm">WebLogic Server Diagnostic Framework guide</a></li>
<br /></ul>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1tag:blogger.com,1999:blog-19569500.post-59215590950509598802010-05-06T17:51:00.012-01:002010-05-06T18:37:16.422-01:00How-to: Building REST/JSON services with OSB 11g and JAX-RSLast couple of weeks, I have read a lot of blog postings about <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> services in combination with the <a href="http://www.oracle.com/technology/software/products/osb/index.html">Oracle Service Bus</a> (like <a href="http://biemond.blogspot.com/2009/05/osb-rest-service-with-xml-json-output.html">this</a> posting). <span style="font-style:italic;">I've even made a first attempt to write a posting about this subject, but I got really constructive comments in return on that posting that I decided to write a complete new one. Thanks for the comments :) </span><br /><br />I decided to play around with REST and OSB myself and choosed for <a href="https://jersey.dev.java.net">JAX-RS (Jersey)</a> as the Java technology to build my REST service and the brand new OSB 11g release for proxing this REST service. In this posting, I will show you how easy it is to build a REST/JSON service with the feature rich and highly flexible JAX-RS standard, deploy it to WebLogic 10.3.3 and proxy it with an OSB 11g service.<br /><br /><span style="font-weight:bold;">REST service in JAX-RS </span><br />Required libraries (can be downloaded from <a href="https://jersey.dev.java.net/nonav/documentation/latest/user-guide.html#chapter_deps">here</a>):<br /><ul><br /> <li>jersey-bundle-1.1.5.1.jar</li><br /> <li>jsr113-api-1.1.jar</li><br /> <li>asm-3.1.jar</li><br /></ul><br />I build in JDeveloper a very simple REST product service with a single method to find a product by its id. The REST method returns a JSON representation of the product.<br /><br />First you have to create a new web application project in JDeveloper, because the JAX-RS product service is deployed as a web application to the WebLogic Server. In the web.xml file the following things has to be specified:<br /><ul> <br /> <li>the JAX-RS servlet which will handle all requests and forward them to the appropriate REST Service class.</li><br /> <li> The context path to access the servlet </li><br /> <li> The mime type application/json </li><br /></ul><br />The web.xml has the following content:<br /><br /><pre name="code" class="java"><br /><?xml version = '1.0' encoding = 'UTF-8'?><br /><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <br /> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" <br /> version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"> <br /> <description>web.xml for </description><br /> <session-config> <br /> <session-timeout>10</session-timeout> <br /> </session-config> <br /> <mime-mapping> <br /> <extension>html</extension> <br /> <mime-type>text/html</mime-type> <br /> </mime-mapping> <br /> <mime-mapping> <br /> <extension>json</extension> <br /> <mime-type>application/json</mime-type> <br /> </mime-mapping> <br /> <mime-mapping> <br /> <extension>txt</extension> <br /> <mime-type>text/plain</mime-type> <br /> </mime-mapping> <br /> <servlet> <br /> <display-name>JAX-RS Servlet</display-name> <br /> <servlet-name>jersey-servlet</servlet-name> <br /> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class><br /> <init-param> <br /> <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name> <br /> <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value> <br /> </init-param> <br /> <init-param> <br /> <param-name>com.sun.jersey.config.property.packages</param-name> <br /> <param-value>nl.oracle.com.fmw.rest;nl.oracle.com.fmw.rest.model</param-value> <br /> </init-param> <br /> </servlet> <br /> <servlet-mapping> <br /> <servlet-name>jersey-servlet</servlet-name> <br /> <url-pattern>/*</url-pattern> <br /> </servlet-mapping> <br /></web-app> <br /></pre><br />Now the web.xml file is in place, two Java classes have to be implemented:<br /><ul><br /> <li>ProductResource</li><br /> <li>Product</li><br /></ul><br />The ProductResource class will contain the method to find a product by its id:<br /><pre name="code" class="xml"><br />package nl.oracle.com.fmw.rest;<br /><br />import javax.ws.rs.GET;<br />import javax.ws.rs.Path;<br />import javax.ws.rs.PathParam;<br />import javax.ws.rs.Produces;<br /><br />import nl.oracle.com.fmw.rest.model.Product;<br /><br />@Path("/products")<br />public class ProductResource {<br /><br />@GET <br />@Path("{id}")<br />@Produces("application/json")<br />public Product getProductById(@PathParam("id") int id){ <br /> //Return a simple new product with the provided id <br /> return new Product(id, "DummyProduct");<br /> }<br />}<br /></pre><br /><br />The code listing above shows that that <span style="font-style:italic;">getProductById</span> method is only accessible through the HTTP GET method. Also the use of the @Path annotation on the class and method level makes it possible to set a specific <span style="font-style:italic;">relative-uri</span> with which the service can be accessed. The {id} serves as a placeholder for the product id and can be accessed through @PathParam annotation<br /><br />The <span style="font-style:italic;">Product</span> class is shown in the following code listing and uses the <span style="font-style:italic;">JAXB XmlRootElement</span> binding annotation to automatically map the class structure to a JSON structure. Isn't that cool :). More JSON serialization and deserialization options in JAX-RS can be found <a href="https://jersey.dev.java.net/nonav/documentation/latest/user-guide.html#d4e792">here</a><br /><pre name="code" class="java"><br />package nl.oracle.com.fmw.rest.model;<br /><br />import javax.xml.bind.annotation.XmlRootElement;<br /><br />@XmlRootElement<br />public class Product {<br /> <br /> private int id;<br /> private String name;<br /> <br /> public Product(){<br /> <br /> }<br /> <br /> public Product(int id, String name) {<br /> this.id=id;<br /> this.name=name;<br /> }<br /><br /> public void setId(int id) {<br /> this.id = id;<br /> }<br /><br /> public int getId() {<br /> return id;<br /> }<br /><br /> public void setName(String name) {<br /> this.name = name;<br /> }<br /><br /> public String getName() {<br /> return name;<br /> }<br />}<br /></pre><br />Coding is completed and it should be clear now that the use of annotations makes it very easy and flexible to create REST services with JAX-RS. Create a WAR deployment descriptor and make sure you add the jersey libraries to the WAR file and set the JEE web context root to <i>services</i>. Finally, deploy the WAR file to the WebLogic 10.3.3 server. I target the application to the <span style="font-style:italic;">osb_server1</span> managed server, which hosts my OSB 11g installation.<br /><br />After deployment you can test the REST service using this URL where I use 1 as the id:<br /><span style="font-style:italic;"><br />http://localhost:port/services/products/1</span><br /><br /><span style="font-weight:bold;">OSB 11g proxy</span><br />I used the brand new <a href="http://eelzinga.wordpress.com/2010/05/03/oracle-service-bus-11g-installation/">OSB 11g installation </a>for creating a proxy service for my REST service. <br /><br />The implementation is fairly simple and straight forward and follows more or less the same steps used in this excellent <a href="http://blogs.oracle.com/jeffdavies/2009/06/restful_services_with_oracle_s_1.html">posting</a>:<br /><br /><span style="font-style:italic;">Business Service</span><br />The business service invokes the REST product service. Make sure you use the messaging service type with the HTTP transport protocol. Also set the HTTP method to GET.<br /><br /><span style="font-style:italic;">Proxy Service</span><br />Create a proxy service in Eclipse and use the messaging service type with the HTTP transport protocol. I used request type <span style="font-style:italic;">none</span> and Response type<span style="font-style:italic;"> text</span>. In the message flow I added a routing action to invoke the business service. <br />I need to mention two important things about the my Proxy service implementation<br /><ul><br /> <li>Set the endpoint /osb-services/products. This enables you to add anything to this context path, for example /{id}. This makes it also possible to use the OSB service as a proxy for different types of REST calls (make sure you can switch between HTTP methods in the message flow) to the same product service</li><br /> <li>Use the <http:relative-uri> transport request element from the $inbound variable to append the relative path after /osb-services/products to the REST service endpoint. I've used an insert operation for this:</li><br /></ul><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigZs8LpK4aiF_iPGe7JPBVafns5rqZsNbRZRI3ZIhZbl_LD_pHjWOr4JgE36nb4xl900P7ZBii0e02cD8JIozNAP6Kd1FPVqdUntBEE_JUF_cAhoe9G9VSqoFxs5yjYUeEjhqr/s1600/eclipse-sbeditor.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigZs8LpK4aiF_iPGe7JPBVafns5rqZsNbRZRI3ZIhZbl_LD_pHjWOr4JgE36nb4xl900P7ZBii0e02cD8JIozNAP6Kd1FPVqdUntBEE_JUF_cAhoe9G9VSqoFxs5yjYUeEjhqr/s400/eclipse-sbeditor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468232461556644754" /></a><br /><br />Deploy the OSB service to the OSB 11g server and use the test console to test the service. Make sure you set the relative-uri attribute in the test console transport panel:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5yUdZz9FkKNUtkBgmrvdVOsr2boQJvyuK_n9NMqF4JIMWopHNVyWFytvGZe53aVBN2VxLpcGJHnjJ_wvWHUaOjzGkXv_4N1Q8QLL_xw3rWNyCfLta-bXZQKszlAzXIBiA9orI/s1600/transport-sbtestconsole.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 399px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5yUdZz9FkKNUtkBgmrvdVOsr2boQJvyuK_n9NMqF4JIMWopHNVyWFytvGZe53aVBN2VxLpcGJHnjJ_wvWHUaOjzGkXv_4N1Q8QLL_xw3rWNyCfLta-bXZQKszlAzXIBiA9orI/s400/transport-sbtestconsole.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468232686939346258" /></a><br /><br />The $body element in the response message should look like this:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdS1nxXrbp7DAkZxW9wG1jGlKQIzFnjSOHo9SlC5HfR2vJ9r4X0hrMuvZ3bqpjxTcj5CH3hSxW3wUh64El-u4GOgyG54ZFa9vjny0HA6LrXzrc1kTHt504DlyHmXwTL1sZZUbZ/s1600/output-sbtestconsole1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 393px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdS1nxXrbp7DAkZxW9wG1jGlKQIzFnjSOHo9SlC5HfR2vJ9r4X0hrMuvZ3bqpjxTcj5CH3hSxW3wUh64El-u4GOgyG54ZFa9vjny0HA6LrXzrc1kTHt504DlyHmXwTL1sZZUbZ/s400/output-sbtestconsole1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5468237730465451122" /></a><br /><br />The OSB service just passes the JSON response forward to the client. It is fairly simple to convert the JSON output to XML and vice versa using <a href="http://json-lib.sourceforge.net/">JSON lib</a> in a Java service callout. How to do this is described in this <a href="http://biemond.blogspot.com/2009/05/osb-rest-service-with-xml-json-output.html">posting</a>. <br /><br />Also the JSON structure returned by the product service is very simple. In most cases you have to do more work with JAX-RS in order to construct the required JSON structure. The JAX-RS libraries contain options for <a href="https://jersey.dev.java.net/nonav/documentation/latest/user-guide.html#json">configuring JSON</a>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com6tag:blogger.com,1999:blog-19569500.post-73836512505869197772010-03-07T18:18:00.012-01:002010-03-07T19:20:26.695-01:00How-to: Oracle Service Bus 10gR3 - Oracle FMW B2B 11g interoperabilityIn this posting I will describe how you can integrate <a href="http://www.oracle.com/technology/products/soa/b2b/index.html">Oracle B2B 11g</a> and <a href="http://www.oracle.com/technology/products/integration/service-bus/index.html">Oracle Service Bus 10gR3</a> to send messages to Oracle B2B 11g from an OSB 10gR3 service.<br /><br />The most easy way to integrate Oracle B2B 11g and OSB 10gR3 is by using JMS. Oracle B2B 11g supports JMS as protocol for its internal inbound and outbound delivery channels out-of-the-box.To enable JMS set the <i>Use JMS Queue as default</i> property to <i>true</i> in the Administration -> Configuration tab in the Oracle B2B 11g management console in order to switch on the usage of the JMS queues B2B_IN_QUEUE and B2B_OUT_QUEUE.<br /><br />I have reused the ebXML configuration that I have described in a <a href="http://tomhofte.blogspot.com/2009/11/how-to-configure-ebxml-communication-in.html">previous blog posting</a> in this example. In Oracle Workshop 10gR3 (shipped with OSB 10gR3) you now have to make a simple OSB service that accepts a message through a proxy service and enqueues the message on the B2B_OUT_QUEUE of Oracle B2B 11g using a business service. Below I will describe the details that require special attention while implementing the OSB 10gR3 service.<br /><br /><b>Business Service - JNDI string</b><br />The BS serves as a JMS wrapper for the B2B_OUT_QUEUE. Use the following JNDI string to locate the<br />ConnectionFactory and Destination:<br /><br /><pre name="code" class="java"><br /> jms://(ofm b2b 11g host):(port)/jms.b2b.B2BQueueConnectionFactory/jms.b2b.B2B_OUT_QUEUE<br /></pre><br /><br /><b>Proxy Service - message flow</b><br />Oracle B2B 11g expects several user header properties in the JMS transport header to be set. A list of the required properties can be found <a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/enq_deq.htm#sthref717">here</a>. You have to use the property names defined in the second column. To set the user header properties use the <i>Transport Header action</i> in the request lane of the <i>Routing action</i> (assumed you use a <i>Routing action</i>). Click on <span style="font-style:italic;">Add Header</span> to add a new header property and select <i>Other</i> to define a custom header property. Add header properties for all listed properties in the <a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/enq_deq.htm#sthref717">table</a> expect the last four in the table (at least I didn't set them)<br /><br />Here's a screen shot of my OSB 10gR3 configuration:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBTa0VMD7KYsjz6IxHcMD_dNxGsR6uVz8nY9qjuNO0BuLeiK9wVbubGFDhyphenhyphenxkpz_CCZJ6N1kbASgJY3FMR7oekRDNx6fahJ-6TIvGJf8-KLVLbFdizuMxqBlZrw0VGybZsHqp_/s1600-h/b2b_console_transport_headers.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 362px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBTa0VMD7KYsjz6IxHcMD_dNxGsR6uVz8nY9qjuNO0BuLeiK9wVbubGFDhyphenhyphenxkpz_CCZJ6N1kbASgJY3FMR7oekRDNx6fahJ-6TIvGJf8-KLVLbFdizuMxqBlZrw0VGybZsHqp_/s400/b2b_console_transport_headers.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5445988932718784802" /></a><br /><br />After you have completed the message flow publish your configuration to the server and use the SB console test functionality to execute a test.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1tag:blogger.com,1999:blog-19569500.post-18395437214872680752010-02-17T18:42:00.005-01:002010-02-18T19:54:19.505-01:00How-to: Archiving Oracle FMW B2B 11g run-time data using data pumpsIn <a href="http://www.oracle.com/technology/products/middleware/index.html">Oracle Fusion Middleware B2B 11g</a> enhanced procedures are introduced to archive and/or purge the B2B 11g run-time data.<br />
<br />
The procedures that take care of archiving/purging live in the SOAINFRA database schema of your FMW 11g database repository:<br />
<ul><li>B2B_ARCHIVE_PROCEDURE</li>
<li>B2B_EXPORT_JOB</li>
</ul><br />
The <i>B2B_EXPORT_JOB</i> procedure does the actual archiving and is invoked from the <i>B2B_ARCHIVE_PROCEDURE</i> procedure. The <i>B2B_EXPORT_JOB</i> procedure uses a <a href="http://www.oracle.com/technology/products/database/utilities/htdocs/data_pump_overview.html">data pump</a> to archive the run-time data to a file on the file system.<br />
<br />
To make use of data pumps, you first have to grant SOAINFRA with <i>DIRECTORY</i> object privileges in order to allow SOAINFRA to create a <i>DIRECTORY</i> object that points to the location on the file system in which the data pump will write the archive file (the name of the <i>DIRECTORY</i> object should be B2B_EXPORT_DIR):<br />
<br />
<pre name="code" class="sql">-- I tested it on my development installation using XE, hence the 'dev' prefix
GRANT create any directory TO dev_soainfra;
GRANT drop any directory TO dev_soainfra;
</pre><br />
after granting the right priviliges you can create the directory object with:<br />
<br />
<pre name="code" class="sql">create or replace directory "B2B_EXPORT_DIR" as '(absolute patch to the location on the file system)'
</pre><br />
The following script will archive and purge all the run-time data for completed messages from 19-02-2009 until 19-02-2010 and will archive the data in the file called 'b2b_runtime_export.dat':<br />
<br />
<pre name="code" class="sql">begin
b2b_archive_procedure(to_date('19-02-2009', 'dd-mm-yyyy'),to_date('19-02-2010', 'dd-mm-yyyy'),'MSG_COMPLETE','b2b_runtime_export.dat','Y');
end;
</pre><br />
The standard archiving script provided by Oracle FMW B2B 11g can easily be extended to fit your specific needs or to be merged into existing archiving procedures.<br />
<br />
References:<br />
- <a href="http://download.oracle.com/docs/cd/E15523_01/index.htm">Oracle FMW 11g documentation</a>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com2tag:blogger.com,1999:blog-19569500.post-25431234521960019202010-01-25T19:51:00.004-01:002010-01-25T20:31:33.298-01:00Book review: Middleware Management with Oracle Enterprise Manager Grid Control 10g R5In December last year the publisher of IT books <a href="http://www.packtpub.com/">Packt Publishing </a>contacted me to ask me if I was willing to read their newly released book about <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a>:<br />
<br />
<b><a href="http://www.packtpub.com/middleware-management-with-oracle-enterprise-manager-grid-control-10g-r5/book">Middleware Management with Oracle Enterprise Manager Grid Control 10g R5</a></b> <br />
<br />
They've selected me based on the contents of my blog.<br />
<br />
The book is well structured and written in a clear language. The book starts with explaining the main features of <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a> and how they address common administration tasks and make the life of a system administrator easier. The book continues with defining and describing the main components of <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a> and how they work together to enable <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a>l to fulfill its tasks. In the subsequent chapters the book covers the main Oracle middleware components and explains how they can be managed with <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a>. The following components caught my specific attention:<br />
<br />
<ul><li>Oracle BPEL Process Managers</li>
<li>Oracle Service Bus</li>
<li>Oracle Weblogic Server</li>
<li>Oracle Coherence</li>
</ul><br />
Each chapter contains detailed information about how to configure and use specific <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a> features, like notification management, automatic provisioning and managing configuration inconsistencies. Additionaly the book cover topics like CAMM, AD4J and how to write your own monitoring plug-in.The book concludes with a best practice chapter.<br />
<br />
To be honest, system administration is not my main focus area. I'm more on the software development side..Therefore my main intention to read this book (Oh..I agreed to review this book..) was to learn more about the concepts, capabilities and benefits of using <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a> to manage the Middleware layer to broaden my view on middleware management (the area in which I mainly develop software). After reading the book, I can only conclude that this book really has helped me to understand the the true capabilities and benefits of <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a> and how it can be used to manage Oracle Middleware components. This book is really a good starting point for everyone who wants to learn more about Middleware Management with <a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager Grid Control</a><br />
<br />
You can find more info about the book and how to order it on the book's <a href="http://www.packtpub.com/middleware-management-with-oracle-enterprise-manager-grid-control-10g-r5/book">homepage</a>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com0tag:blogger.com,1999:blog-19569500.post-82459370860676636282010-01-13T16:07:00.002-01:002010-01-13T16:09:36.045-01:00How to: OSB - FMW SCA 11g interoperability supporting transaction propagationCurrently, the BPEL transport in OSB is not supporting FMW 11g. However, I just found a way, although it still is proven in theory based on my knowledge, to enable transaction propagation between OSB and FMW 11g SCA composites. The basic idea is that you have to communicate between OSB and FMW 11g SCA composites using the <a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10224/sca_sdo_ejb.htm#SOASE10863">SDO - EJB binding</a> in 11g. The t3 protocol used as the communication protocol between the ejb client and the SCA (soa_infra) engine should take care of the transaction context propagation.<br />
<br />
This should do the trick until OSB gets native support for FMW 11g interoperability. One disclaimer; I still have to prove my theory by running a test, but I am quite sure that it will work so therefore I shared it already here. I also still have to elaborate on which MEPs could be supported with this solution, so any thoughts are welcome.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com0tag:blogger.com,1999:blog-19569500.post-56600775573965599832010-01-10T10:13:00.005-01:002010-01-10T10:20:07.244-01:00Oracle FMW B2B 11g: How to collect HTTP header info from inbound messages using Java CalloutsIn <a href="http://www.oracle.com/technology/products/soa/b2b/index.html">Oracle FMW B2B 11g</a> the Java callout functionality makes it possible to add Java hooks to an inbound or oubound message flow. Callouts van be written and configured per agreement or per delivery channel (transport callouts). More info about managing callouts can be found <a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/callouts.htm#CHDEFBDG">here</a><br />
<br />
In this blog posting, I will show how you how an agreement callout can be used to collect HTTP headers from an inbound message, which is received by the default B2B transportServlet. I use an agreement callout because it is not possible to define a transport callout for an inbound http host channel.<br />
<br />
The callout implementation is rather simple:<br />
<pre name="code" class="java">package nl.oracle.com.b2bcallout;
import oracle.tip.b2b.callout.Callout;
import oracle.tip.b2b.callout.CalloutContext;
import oracle.tip.b2b.callout.CalloutMessage;
import oracle.tip.b2b.callout.exception.CalloutDomainException;
import oracle.tip.b2b.callout.exception.CalloutSystemException;
public class HttpHeaderAgrCallout implements Callout {
public void execute(CalloutContext arg0, List input,
List output) throws CalloutDomainException,
CalloutSystemException {
try {
CalloutMessage cm1 = (CalloutMessage)input.get(0);
System.out.println("parameters - "+cm1.getParameters().toString());
CalloutMessage cmOut = null;
String msg = cm1.getBodyAsString();
String headerStr = cm1.getParameters().toString();
System.out.println("Print transport header ::");
System.out.println(headerStr);
cmOut = new CalloutMessage(msg);
output.add(cmOut);
} catch (Exception e) {
e.printStackTrace();
}
}
}
</pre>The <i>getParameters()</i> methods returns all the HTTP transport header attributes in a Properties object. <br />
<br />
Compile the callout code and deploy it to a jar file. The jar file has to be copied a location that can be accessed by the B2B server (or all B2B nodes if you have a clustered environment). Have a look at the <a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/callouts.htm#CHDEFBDG">B2B callout documentation</a> to find out how you configure the callout with your inbound agreement. <br />
<br />
It is wise to put <i>Agr</i> or <i>Transport</i> in the callout name to make a clear distinction between the types of callouts as they appear together in the callout selection drop down list in the B2B management console.<br />
<br />
So why do you need this anyway..well for example to extract a specific HTTP header attribute that is, for example, set by the front-end HTTP Server and enrich the message with it.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1tag:blogger.com,1999:blog-19569500.post-20796999676992037072009-12-18T18:27:00.007-01:002009-12-18T18:36:44.843-01:00Some Tips on Oracle FMW 11g Clustering: deployment and configurationIn this blog-posting, I share some first tips on Oracle FMW 11g (11.1.1.2/PS1) cluster-wide deployment and cluster configuration based on my first experiences with setting up such an environment.<br />
<br />
Most tips come from these two documents:<br />
- <a href="http://download.oracle.com/docs/cd/E15523_01/core.1111/e12036/toc.htm">Enterprise Deployment Guide for Oracle SOA Suite</a><br />
- <a href="http://download.oracle.com/docs/cd/E15523_01/core.1111/e10106/toc.htm">Oracle FMW 11g High-Availability Guide</a><br />
<br />
<br />
<span style="font-weight:bold;">Cluster-wide deployment tips</span><br />
<ul><li>More info on SCA deployment with Ant can be found through my <a href="http://tomhofte.blogspot.com/2009/12/how-to-set-up-common-ant-project-for.html">previous posting</a><br />
</li>
<li>Deploy a composite to a specific node of the cluster: the deployment coordinator in the Oracle FMW 11g cluster infrastucture will take care of the correct propagation to all the other nodes or rollback in case of a failure on a specific node. For more info on this have a look <a href="http://download.oracle.com/docs/cd/E15523_01/core.1111/e10106/ha_soa.htm#CDEIEEHI">here</a>.<br />
</li>
<li>Set up <a href="http://coherence.oracle.com">Oracle Coherence</a> for unicast communication during cluster-wide deployments. Have a look <a href="http://download.oracle.com/docs/cd/E15523_01/core.1111/e12036/extend_soa.htm#CHDEAFJH">here</a> for more details.<br />
</li>
</ul><br />
<span style="font-weight:bold;">Configuration tips</span><br />
<ul><li>Make sure you set the value of the <i>serverURL</i> and the c<i>allbackServerUR</i>L to the front-end SOA cluster location. In most cases this will be the endpint of the front-end loadbalancer. If you have set the SOA Cluster Front-End URL in the Oracle Weblogic Server Administration Console (location: Clusters -> <your SOA cluster>) its value will be used for the serverURL and callbackServerURL.<br />
<b>Note:</b> For unclear reasons, I solved cluster-wide deployment problems by setting the server- and callbackServerURL. <br />
</li>
<li>You can apply configuration changes to any specific node in the Oracle FMW 11g SOA cluster. Oracle WebLogic Clusters takes care of automatic configuration synchronization across all the nodes of the cluster.<br />
</li>
</ul><br />
I hope to share more tips here in the near future.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1tag:blogger.com,1999:blog-19569500.post-8773952507628286242009-12-07T18:52:00.008-01:002009-12-07T19:26:16.809-01:00Oracle Fusion Middleware 11g purge scripts available on Oracle MetalinkOn <a href="http://metalink.oracle.com">Oracle Metalink</a> there is now a Note available that describes the usage of the FMW 11g purge scripts. <a href="http://metalink.oracle.com">Note 815896.1</a> contains all the details.<br /><br />An OPatch patch 8328187 is available for download that contains all the scripts that are required to create the purging functionality in the SOA_INFRA schemaTom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com2tag:blogger.com,1999:blog-19569500.post-30817932310346130562009-12-07T17:03:00.021-01:002009-12-07T18:20:03.116-01:00How to set-up a common Ant project for using the Oracle FMW 11g B2B Ant tasksInspired by <a href="http://biemond.blogspot.com/2009/09/deploy-soa-suite-11g-composite.html">this</a> great blog posting about how to use the FMW Ant tasks to deploy a SOA composite, I started to use that example to set up my own Ant project for B2B management purposes.<br /><br />In this blog-posting, I will give an example project that is capable of importing and exporting CPAs to and from Oracle FMW 11g B2B.<br /><br /><span style="font-weight: bold;">Setup the build project</span><br />In JDeveloper, create an empty project and name it <span style="font-style: italic;">fmw-build</span> for example. Create the following *.properties<br /><ul><li>env.properties</li><li>dev.jndi.properties</li><li>dev.cpacpp.properties</li></ul>Also, import the <span style="font-style: italic;">ant-b2b-util.xml</span> and the <span style="font-style: italic;">ant-soa-common</span>.xml files that are located in<span style="font-style: italic;"> JDEV_HOME<jdev_home>\bin</jdev_home></span> folder.<br /><br />The <span style="font-style: italic;">b2bmanagement.properties</span> files contains all the enviroment specific properties and I used the following contents:<br /><br /><pre name="code" class="java"><br />deployment.plan.environment=dev<br /> <br />#dev deployment server weblogic<br />dev.serverURL=http://localhost:8001<br />dev.overwrite=true<br />dev.user=weblogic<br />dev.password=welcome1<br />dev.forceDefault=true<br /><br /><br /># global<br />wn.bea.home=/home/tomhofte/oracle/fmw11gr2<br />oracle_home=${wn.bea.home}/Oracle_SOA1<br />java.passed.home=/home/tomhofte/java/jdk1.6.0_17<br />wl_home=${wn.bea.home}/wlserver_10.3<br /><br />libs=/home/tomhofte/libs<br />path.to.antcontrib.lib=${libs}/ant-contrib/ant-contrib-1.0b3.jar<br /><br /><br />dev.JAVA_HOME=/home/tomhofte/java/jdk1.6.0_17<br />#Empty home is enough to let it work<br />dev.ANT_HOME=<br /></pre><br /><br />The dev.jndi.properties file contains the jndi properties of my local development environment. I used the following contents:<br /><br /><pre name="code" class="java"><br />java.naming.provider.url=t3://localhost:8001<br />java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory<br />java.naming.security.principal=weblogic<br />java.naming.security.credentials=welcome1<br /></pre><br /><br />The dev.cpacpp.properties contains the cpa/cpp import/export properties for my local development environment. Please have a look <a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/scrpt_imp_exp_dep.htm#sthref699">here</a> for more information about this part. Please note that for importing exporting a CPA you first have to export the design repository and specify the resulting zip file as the input for the CPA/CPP export utility. The contents I used are:<br /><br /><pre name="code" class="java"><br /># CPP/A Output files<br />oracle.tip.b2b.ebms.OutputFolder=b2b-tmp/output/<br /><br /># Oracle B2B Metadata File in case of CPA Export<br />oracle.tip.b2b.ebms.Document=b2b-tmp/output/Paris.zip<br /><br /># ebXML CPA File incase of CPA Import<br />#oracle.tip.b2b.ebms.Document=/tmp/input/cpa-example-2_0.xml<br /><br /><br /># Host Name<br />oracle.tip.b2b.ebms.Host=Berlin<br /># Host endPoint Details<br />oracle.tip.b2b.ebms.HostEndPoint=http://localhost:8001/b2b/transportServlet<br /># Host Certificate Alias<br />oracle.tip.b2b.ebms.HostCertificateAlias=Berlin<br /># Trading Partner Certificate Alias<br />oracle.tip.b2b.ebms.TPCertificateAlias=Paris<br /># BPSS Export<br />oracle.tip.b2b.ebms.BPSSExport=false<br /><br />#Log config<br />oracle.tip.b2b.ebms.LogFolder=b2b-tmp/output/log/<br /># DEBUG|INFO|ERROR<br />oracle.tip.b2b.ebms.LogLevel=DEBUG<br /># text|xml<br />oracle.tip.b2b.ebms.LogType=text<br /></pre><br /><br />Now that all required property files are in place, I use an Ant wrapper script to call the tasks in the ant-b2b-util.xml file and provide the necessary properties. Just as is done in<a href="http://biemond.blogspot.com/2009/09/deploy-soa-suite-11g-composite.html"> this</a> posting. Here are the contents of my b2b-management.xml file: <br /><br />(Note: for layout purposes I had to use explicit XML end tags..:()<br /><br /><pre name="code" class="xml"><br /><project name="b2bManagement" default="exportCPA"><br /> <property file="env.properties"></property><br /> <property environment="env"/></property><br /> <property name="env.JAVA_HOME" value="${deployment.plan.environment}.JAVA_HOME"/></property><br /> <property name="env.ANT_HOME" value="${deployment.plan.environment}.ANT_HOME"/></property><br /> <br /> <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${path.to.antcontrib.lib}"></taskdef><br /> <br /> <!-- Override the JNDI location --><br /> <property name="jndi.properties" value="${deployment.plan.environment}.jndi.properties"></property><br /> <dirname property="jndi.prop.folder" file="${jndi.properties}"></dirname><br /><br /> <import file="${basedir}/ant-b2b-util.xml"></import><br /><br /> <target name="importCPA"><br /> <antcall target="b2bcpaimport" inheritall="true" inheritrefs="false"><br /> <param name="propfile" value="${deployment.plan.environment}.cpacpp.properties"></param><br /> </antcall><br /> </target><br /><br /> <target name="exportCPA"><br /> <antcall target="b2bcpaexport" inheritall="true" inheritrefs="false"><br /> <param name="propfile" value="${deployment.plan.environment}.cpacpp.properties"></param><br /> </antcall><br /> </target> <br /></project><br /></pre><br /><br /><span style="font-weight: bold;">Note:</span> In the <span style="font-style: italic;">ant-b2b-util.xml</span> I had to replace the oracle.home property with a oracle_home named property to be able to use my own oracle home property. At least, this is the case when I execute the script from JDeveloper 11g. Apparently, the oracle.home property file is predefined by JDeveloper, because I get an "Override ignored" message.. I think it won't matter when you execute the script from the command line..<br /><br />More info about the usage of the tasks defined in the ant-b2b-util.xml can be found here:<br /><br /><a href="http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/scrpt_imp_exp_dep.htm#CEGBDIDB">http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10229/scrpt_imp_exp_dep.htm#CEGBDIDB</a>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com2tag:blogger.com,1999:blog-19569500.post-55413154608679317752009-11-25T20:23:00.006-01:002010-02-17T19:45:14.185-01:00How to change BPEL 11g preference values during deployment timeHow you can set BPEL preferences in 11g during design time in JDeveloper and run-time in the EM console is described <a href="http://orasoa.blogspot.com/2009/08/soa-11g-preferences.html">here</a> (for the latter look in the comments for a reference).<br />
<br />
Sometimes it is useful to change the preference values during deployment time, because preferences hold environment specific values. Actually, this is pretty easy by using composite deployment configuration plan(s). One for each target environment.<br />
<br />
Right-click on the composite file and generate a deployment configuration plan for your composite. When you open the file, you will find a search/replace construction for the preference.<br />
<br />
<pre name="code" class="xml"><component name="orderProcessor">
<property name="bpel.preference.somePreference">
<replace>someValue</replace>
</property>
</component>
</pre><br />
<br />
Now change the value to the environment specific value, save the config plan and use the config plan during deployment to a specifc environment.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com2tag:blogger.com,1999:blog-19569500.post-90459950456317947762009-11-23T19:24:00.009-01:002009-11-25T20:38:53.822-01:00Oracle Fusion Middleware 11g end-to-end tracking using the ECIDIn a previous <a href="http://tomhofte.blogspot.com/2009/10/how-to-use-composite-sensors-to-enable.html">posting</a> I described how you could use composite sensors to enable end-to-end tracking for messages that move through the Oracle Fusion Middleware SCA engine and the B2B engine.<br /><br />Today, I discovered that you can also use ECID for end-to-end tracking. The B2B application message contains all the tracking properties that are originated from the SCA composite that submitted the message to the B2B engine. With the B2B Report console you are able to search for messages using the ECID. To enable searching on ECID, you have to add the ECID search field to the search panel (use the <span style="font-style: italic;">Add fields</span> button ):<br /><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC9sJ8yTDvxQS9XZZkg_iXnOdTB9SzjINYtnPsBek4CiQCPuVzrcGIDHjxbL10GZe1POnZKFEe5OJVl3S0yxOi5uiRfawZCT3JSODm_jOp1wL6loWpHcpVTWX6o5z4xa4PPwfw/s1600/b2b_console_app-message-details.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 191px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC9sJ8yTDvxQS9XZZkg_iXnOdTB9SzjINYtnPsBek4CiQCPuVzrcGIDHjxbL10GZe1POnZKFEe5OJVl3S0yxOi5uiRfawZCT3JSODm_jOp1wL6loWpHcpVTWX6o5z4xa4PPwfw/s400/b2b_console_app-message-details.png" alt="" id="BLOGGER_PHOTO_ID_5407400274052756034" border="0" /></a><br />So, the ECID also enables end-to-end message tracking in Oracle Fusion Middleware 11g when message move through the B2B engine. This time completely out-of-the-box.<br /><br />UPDATE 25-11-2O09: The application message holds the fabric data for in and outbound message from the SCA FMW11g fabric [OLD Disclaimer: I only tested it for outbound communication using the native B2B adapter. Still have to test it for inbound communication and AQ and JMS interfacing with the B2B engine.]Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1tag:blogger.com,1999:blog-19569500.post-36824918938131961712009-11-23T18:00:00.015-01:002009-11-23T20:24:30.013-01:00How to configure an ebXML communication in Oracle Fusion Middleware B2B 11gOracle Fusion Middleware (OFM) B2B 11g supports many business document and messaging standards. <a href="http://www.ebxml.org/geninfo.htm">ebXML (Electronic Business using Extensible Markup Language</a> is a B2B messaging standard that is also supported by OFM B2B 11g. Shortly described ebXML enables XML messaging over the Electronic Business messaging Service (basically a SOAP extension), abbreviated as ebMS.<br /><br />This posting describes how to set-up ebXML messaging using two local OFM B2B 11g (PS1) domains. For simplicity, I will extend my previous <a href="http://tomhofte.blogspot.com/2009/10/how-to-set-up-xml-document-exchange.html">B2B example</a>.<br /><br />Please refer to my previous postings for more info about specific B2B 11g configuration concepts:<br /><br />- <a href="http://tomhofte.blogspot.com/2009/10/how-to-set-up-xml-document-exchange.html">http://tomhofte.blogspot.com/2009/10/how-to-set-up-xml-document-exchange.html</a><br /><br />- <a href="http://tomhofte.blogspot.com/2009/10/easy-binding-of-oracle-fusion.html">http://tomhofte.blogspot.com/2009/10/easy-binding-of-oracle-fusion.html</a><br /><br /><span style="font-weight: bold;">Note</span><br />You have to configure both Paris and Berlin. Both configurations are mirrored. Normally, you would use the CPA/CPP import functionality of OFM B2B 11g for this. Unfortunately, I don't have a CPA availabe for this simple demo.<br /><br /><span style="font-weight: bold;">Trading Partners</span><br />Configure the hosts and TP in both B2B installations:<br /><ul><li>Paris (receiving role)<br /></li><li>Berlin (sending role)</li></ul>(Just use all the defaults, including the TP identification type 'Name')<br /><br /><span style="font-weight: bold;">Configure the document</span><br />An ebXML document is defined as a Custom document protocol in OFM B2B 11g. For simplicity, I have used my <a href="http://tomhofte.blogspot.com/2009/10/how-to-set-up-xml-document-exchange.html">previous Order document example</a><span style="font-weight: bold;">. </span>I only have to change the document type and definition to resp. configure the ebMS specific properties<br /><ul><li>Action</li><li>Service</li><li>ServiceType</li><li>From role</li><li>To role<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwQIVzNOwQJ5Pp3EgvnHy9RATiGD5usDBo_UTiXqUjFmYevZ94Azntj7-mkHLkEtXrsLPX0Iwf0D0zalifi1UlScFWw1b_Os902VCDUOnpMENFoifaBd1imj4nudh_WwOPsz6/s1600/b2b-console_documenttype_ebms.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 199px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwQIVzNOwQJ5Pp3EgvnHy9RATiGD5usDBo_UTiXqUjFmYevZ94Azntj7-mkHLkEtXrsLPX0Iwf0D0zalifi1UlScFWw1b_Os902VCDUOnpMENFoifaBd1imj4nudh_WwOPsz6/s400/b2b-console_documenttype_ebms.png" alt="" id="BLOGGER_PHOTO_ID_5407383560169214194" border="0" /></a></li></ul><br />and to configure the inbound document identification. I used the XPATH Identification Expression for identifying inbound documents. Also specify a document routing id in the routing tab (I used Berlin_Order). The routing id can be used to route inbound messages to specific applications.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Pp70PXspZtueFqlHBCFCvMFEoIwTYRUFQQJVcNNkBALNNFN5HWe0WnK4qfJXtEHCjMvf7CRDlXJtJUe4W82tzSmoUWhc20ELwV6E7HXieeeQQn_TKSnS8il1lOS84Ktn5lAn/s1600/b2b-console_documenttypedef_ebms.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 164px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Pp70PXspZtueFqlHBCFCvMFEoIwTYRUFQQJVcNNkBALNNFN5HWe0WnK4qfJXtEHCjMvf7CRDlXJtJUe4W82tzSmoUWhc20ELwV6E7HXieeeQQn_TKSnS8il1lOS84Ktn5lAn/s400/b2b-console_documenttypedef_ebms.png" alt="" id="BLOGGER_PHOTO_ID_5407383651674076722" border="0" /></a><br /><span style="font-weight: bold;">Delivery Channels</span><br />For both Berlin and Paris, I have specified<span style="font-style: italic;"> Delivery Channels</span> that uses the <span style="font-style: italic;">ebMS 2.0</span> protocol (I could use ebMS 1.0..but I prefer newest versions :)). Configuring an ebMS 2.0 delivery channel requires some specific settings. Here are the transport protocol settings that I have used:<br /><br /><ul><li><span style="font-style: italic;">url</span>: http://host:<port>port/b2b/transportServlet for receiving messages over http</port></li><li><span style="font-style: italic;">Ack mode</span>: async<br /></li><li><span style="font-style: italic;">Response mode</span>: none</li><li><span style="font-style: italic;">Retry count</span>: 4</li><li><span style="font-style: italic;">Retry interval</span>: 2</li><li> -- Leave all the other setting to their default</li></ul><span style="font-weight: bold;">Deployment and testing</span><br />Deploy the agreements (make sure you configure the capabilities correctly: Berlin is the sender and Paris the receiver in this scenario) on both sides (look <a href="http://tomhofte.blogspot.com/2009/10/how-to-set-up-xml-document-exchange.html">here</a> how to configure capabilities and agreements). To test the ebXML configuration, I have used my previous <a href="http://tomhofte.blogspot.com/2009/10/easy-binding-of-oracle-fusion.html">SCA example</a> and modified it for this example. The modifications are in the mediator component, because I have to specify extra B2B adapter properties to allow the B2B engine to identify the agreement. For outbound communication there are two ways to identify an agreement using the B2B adapter in a OFM composite:<br /><br />1. To and From party + document type and revision. B2B properties:<br />- b2b.documentTypeName<br />- b2b.documentProtocolRevision<br />- b2b.fromTradingPartnerId<br />- b2b.toTradingPartnerId<br /><br />2. To and From party + ebMS Action, Service and Service Type:<br />- b2b.ebms.Service*<br />- b2b.ebms.ServiceType*<br />- b2b.ebms.action*<br />- b2b.fromTradingPartnerId<br />- b2b.toTradingPartnerId<br /><br />(*) Those properties are not defined in the JDeveloper Assign activity wizard. You have to manually type in the names in the property selection panel<br /><br />I used the second option with the following values:<br /><ul><li>action = Order_Action</li><li>Service = Order_Service</li><li>Service Type = Order_Service_Type</li><li>To party = Paris</li><li>From party = Berlin</li></ul>Deploy the SCA composite and use the Test functionality of the EM console to run a test case. You can see the exact ebMS message when you click the <span style="font-style: italic;">packed message </span>link in the <span style="font-style: italic;">wire message</span> details screen.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com7tag:blogger.com,1999:blog-19569500.post-64988886732596198402009-11-14T19:11:00.011-01:002009-11-19T20:45:01.135-01:00Installing Oracle Fusion Middleware 11.1.1.2: Tips based on my experience with installing on Kubuntu 9.10I have installed Oracle Fusion Middleware 11.1.1.2 on my local Kubuntu 9.10 (64bit). This posting contains some tips based on my experience.<br /><br />Please have a look <a href="http://orasoa.blogspot.com/2009/11/new-version-of-wls-soa-available.html">here</a> to find more details about where to find the new Oracle Fusion Middleware Release.<br /><br />To install the new release you have to upgrade WLS to 10.3.2 and install the new SOA component again. I decided to throw everything away, download the complete new release including the new RCU and JDeveloper release (don't forget this component!) and install everything again..<br /><br />Required software:<br />- <a href="http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html">Weblogic Server 10.3.2 generic (I have a 64 bit config)</a><br />- <a href="http://www.oracle.com/technology/software/products/jdev/index.html">JDeveloper 11.1.1.2</a><br />- <a href="http://www.oracle.com/technology/software/products/middleware/htdocs/fmw_11_download.html">SOA Suite 11.1.1.2</a><br />- <a href="http://www.oracle.com/technology/software/products/middleware/htdocs/fmw_11_download.html">RCU </a>(See additional software section)<br /><br />Please follow the installation instructions, which can be found <a href="http://http//download.oracle.com/docs/cd/E12839_01/doc.1111/e13925/toc.htm">here</a>, to install the components in the correct order.<br /><br /><span style="font-weight: bold;">JDK issues</span><br />With my default OpenJDK version (build#16) I encountered problems with the WLS installer and with starting the installer of the SOA Suite component.<br /><br />The WLS installer only started in console mode:<br /><pre><br />tomhofte@tomhofte-laptop:~/downloads$ java -jar wls1032_generic.jar<br />Unable to instantiate GUI, defaulting to console mode. <br />Extracting 0%....................................................................................................100% <br /><br /><-------------------- Oracle Installer - WebLogic 10.3.2.0 -------------------><br /><br />Welcome:<br />--------<br /><br />This installer will guide you through the installation of WebLogic 10.3.2.0.<br />Type "Next" or enter to proceed to the next prompt. If you want to change data entered previously, type "Previous". You may quit the installer at any time by typing "Exit". <br /><br />Enter [Exit][Next]><br /><br /><-------------------- Oracle Installer - WebLogic 10.3.2.0 -------------------><br /></pre><br /><br />Not really convenient...<br /><br />When I tried to start the SOA Suite installer using my OpenJDK as the java runtime the following problem showed up in the console and the installer UI did not show up.<br /><pre><br />Starting Oracle Universal Installer...<br /> <br /><br />Checking if CPU speed is above 300 MHz. Actual 800 MHz Passed<br />Checking Temp space: must be greater than 150 MB. Actual 47087 MB Passed<br />Checking swap space: must be greater than 500 MB. Actual 9507 MB Passed<br />Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed<br />Preparing to launch Oracle Universal Installer from /tmp/OraInstall2009-11-14_08-16-57PM. Please wait ...<br />Please specify JRE/JDK location ( Ex. /home/jre ), <location>/bin/java should exist :/usr/lib/jvm/java-6-openjdk <br />tomhofte@tomhofte-laptop:~/downloads/soa_11112/Disk1$ Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/xawt/libmawt.so<br /></location></pre><br /><br />I assumed that something was wrong with my JDK version so I decided to install JRockit Realtime JVM version 6. After installing JRockit Realtime JVM version 6 and using this Java distribution for installing WLS and SOA Suite everything was able to install without any problems. The JRockit version I used is available from <a href="http://www.oracle.com/technology/software/products/jrockit/index.html">here</a>.<br /><br />Note: this will definitely not mean that FMW 11.1.1.2 will only install with JRockit Realtime JVM version 6! It is only that this made it work for me and in case you hit the same issue you now how I solved it :)<br /><span style="font-weight: bold;"><br /><br />Configuring JDeveloper</span><br />After I had installed JDeveloper, I noticed that the SOA Composite editor extension is not part of the JDeveloper 11.1.1.2 bundle as it was with the previous version...so...Go to Help -> Check for Updates and select the SOA Composite editor extension:<br /><pre><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXb1cvsK-uq1epuXvDhivQ22D2EH0-6GywX-Mzq0TnlyMg7WnOYUEK2JWnk1k18akzOvrdC_swTOqx-GngBOxtfm5r06GbIU-RT3QsGTqUJ5OXhaCXW2NCPdNeiQz4g4haqgq/s1600-h/soa_composite_extension.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXb1cvsK-uq1epuXvDhivQ22D2EH0-6GywX-Mzq0TnlyMg7WnOYUEK2JWnk1k18akzOvrdC_swTOqx-GngBOxtfm5r06GbIU-RT3QsGTqUJ5OXhaCXW2NCPdNeiQz4g4haqgq/s400/soa_composite_extension.png" alt="" id="BLOGGER_PHOTO_ID_5404060889970653906" border="0" /></a></pre> Install the extension and restart JDeveloper to activate the update.<br /><br /><span style="font-weight: bold;">Activate the Preview Spring component designer</span><br />(Thanks to this <a href="http://blogs.oracle.com/soabpm/2009/11/preview_feature_sca_spring_ci.html">posting</a>)<br />To activate the Spring component in the Component palette of the Composite editor in JDeveloper, you have to change the <span style="font-style: italic;">soa-config.xml</span> file that can be found in <span style="font-style: italic;"><jdev_home>JDEV_HOME/integration/seed/soa/configuration</jdev_home></span>. Uncomment the following the part and restart JDeveloper<br /><pre name="code" class="xml"><br /><!-- uncomment for preview_mode --><br /><componenttype resourcebundle="oracle.tip.tools.ide.spring.sca.SpringStringResourceBundle"><br /><name>${SPRING_COMPONENT_NAME_L}</name><br /><foldername>${SPRING_COMPONENT_FOLDER_NAME_L}</foldername><br /><implementationtype>spring</implementationtype><br /><implementationfileext>.xml</implementationfileext><br /><implementationclass>oracle.tip.tools.ide.spring.sca.SCAComponentSpring</implementationclass><br /><description>${SPRING_COMPONENT_DESC}</description><br /><tooltip>${SPRING_COMPONENT_DESC}</tooltip><br /><icon16x16>/oracle/tip/tools/ide/spring/sca/images/springcomponent.png</icon16x16><br /><icon20x20>/oracle/tip/tools/ide/spring/sca/images/springcomponenticon_dia.png</icon20x20><br /><br /><topsectionicon>/oracle/tip/tools/ide/spring/sca/images/springTop.png</topsectionicon><br /><middlesectionicon>/oracle/tip/tools/ide/spring/sca/images/springMiddle.png</middlesectionicon><br /><middlesectionshorticon>/oracle/tip/tools/ide/spring/sca/images/springMiddleShort.png</middlesectionshorticon><br /><bottomsectionicon>/oracle/tip/tools/ide/spring/sca/images/springBottom.png</bottomsectionicon><br /><lightbackgroundcolor>231,231,234</lightbackgroundcolor><br /><darkbackgroundcolor>192,194,203</darkbackgroundcolor><br /></componenttype><br /></pre><br /><br />All of the above did the job for me.Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com2tag:blogger.com,1999:blog-19569500.post-42413969152322007202009-11-10T19:11:00.006-01:002009-11-11T05:40:06.256-01:00Monitoring Oracle AQ message systems with SQL based User defined Metrics in Oracle Enterprise ManagerBy default Oracle Advanced Queueing (AQ) provides <a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14257/aq_views.htm">monitoring views</a> (in this posting we use the V_$AQ view) to monitor things like<br /><ul><li>Number of waiting messages per queue</li><li>Number of expired messages per queue</li><li>Number of messages on status ready per queue</li><li>Average waiting time per queue</li><li>Total waiting time per queue</li></ul>In large messaging systems it is important to detect possible delays and bottlenecks at an early stage. The above metrics can help you with this. Of course it is possible to write a custom monitoring application to make monitoring information accessible, but in most large environments it makes more sense to use a dedicated monitoring product that is able to monitor your complete application environment and provides a single monitoring console.<br /><br /><a href="http://www.oracle.com/technology/products/oem/index.html">Oracle Enterprise Manager</a> (OEM) is such a tool. OEM provides functionality to specify <a href="http://download.oracle.com/docs/cd/B16240_01/doc/em.102/e14586/udm.htm#CGDBEFHH">User-defined SQL-based metrics</a> that allows you to easily integrate your own SQL monitoring scripts in OEM together with defined thresholds on the metrics, OEM will trigger alert notifications. The SQL queries below can be used for creating SQL based User-defined metrics in OEM to monitor specific queues on specific aspects:<br /><br /><pre name="code" class="sql"><br />-- Average wait metric<br />select dbaq.name, vaq.average_wait from sys.dba_queues dbaq, sys.V_$AQ vaq where dbaq.name in ('SOME_Q_A', 'SOME_Q_B') and dbaq.qid = vaq.qid<br /><br />-- Total wait metric<br />select dbaq.name, vaq.total_wait from sys.dba_queues dbaq, sys.V_$AQ vaq where dbaq.name in ('SOME_Q_A', 'SOME_Q_B') and dbaq.qid = vaq.qid<br /><br />-- Expired messages metric<br />select dbaq.name, vaq.expired from sys.dba_queues dbaq, sys.V_$AQ vaq where dbaq.name in ('SOME_Q_A', 'SOME_Q_B') and dbaq.qid = vaq.qid<br /><br />-- Ready messages metric<br />select dbaq.name, vaq.ready from sys.dba_queues dbaq, sys.V_$AQ vaq where dbaq.name in ('SOME_Q_A', 'SOME_Q_B') and dbaq.qid = vaq.qid;<br /><br /></pre><br /><br />Notes:<br /><ul><li>The queries are Two-Column queries and the Metric type is Number</li><li>Determine a correct value for <i>Consecutive Occurrences Preceding Notification </i>option to prevent false positives</li><li>Set a correct interval. Keep in mind that monitoring causes some minor overhead...so don't set the interval too small.. 30 minutes should be sufficient in most scenario's</li></ul>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com6tag:blogger.com,1999:blog-19569500.post-22336991428149485832009-11-10T16:45:00.017-01:002009-11-11T05:39:30.309-01:00Set up a Weblogic Server 11g (10.3.1) JMS Store and Forward demoWeblogic Server (supported from 9.x) contains<a href="http://download.oracle.com/docs/cd/E12839_01/web.1111/e13742/toc.htm"> JMS Store-and-Forward</a> (JMS SAF) functionality. Basically this functionality makes it possible to receive messages on a specific server instance (proxy), forward the messages to different Weblogic server instances and process them on those 'hidden' instances or forward them again...In case the processing server is unavailable the message will be automatically redelivered when the server is available again..You can think about many use cases in which JMS SAF can be very useful. For example, in the situation in which you don't want to stop the message communication when an update of 'processing logic/functionality is needed, JMS SAF can increase the high-availability of your messaging solution. Also it can be used to off-load complex message processing to dedicated servers.<br /><br />In this posting I will describe how you can set up JMS SAF using Weblogic Server 11g (10.3.1) with a domain configuration consisting out of 1 AdminServer and 2 non-clustered Managed Servers serve in the roles of sender (or actually the forwarder) and receiver.<br /><br />I skip the domain set up and assume you are familiar with it. To define the JMS SAF resources the best thing to do is to follow the steps that are described <a href="http://download.oracle.com/docs/cd/E12839_01/web.1111/e13742/config_jms.htm#i1133084">Oracle Fusion Middleware 11g SAF guide</a>. I will a not repeat them in this blog.. In its place, I will give additional explanation about specific configuration steps and things you have to do but which are not covered completely in the guide.<br /><br /><span style="font-weight: bold;">Receiving Side</span> - <span style="font-weight: bold;">Extra</span><br /><ul><li>Create a JMS Server</li><li>Create a Subdeployment in the receiving JMS module and target it to the JMS Server</li><li>Create a destination queue and remember the JNDI name that you choose. We need it when the sending side will be configured. Target the queue to the JMS module's Subdeployment </li><li>Create also Connection factory at the receiving side (At least I did it. However, you could try not to create a connection factory, because the sending side never uses it..). In the picture below you can see the configuration of the JMS resources at the receiving side that I have used in my demo:</li></ul><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjys1lpP1sbp0giG7KPGSXpY9tkohxAZ-6T8UzyUvDh9AyYO13woZ5H1jSQLViCLd4JXk_4IXDsFziijrCzgekk2SCRQc455jHQHMVvZid8nZIVFaNsq1BBnSKBFAbvqr5Qu8k_/s1600-h/jmssaf_receiving_module.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjys1lpP1sbp0giG7KPGSXpY9tkohxAZ-6T8UzyUvDh9AyYO13woZ5H1jSQLViCLd4JXk_4IXDsFziijrCzgekk2SCRQc455jHQHMVvZid8nZIVFaNsq1BBnSKBFAbvqr5Qu8k_/s400/jmssaf_receiving_module.png" alt="" id="BLOGGER_PHOTO_ID_5402552545903009842" border="0" /></a><br /><span style="font-weight: bold;">Sending Side</span> - <span style="font-weight: bold;">Extra</span><br /><ul><li>Create a JMS Connection Factory in the sender JMS module. Use the default settings and and choose a easy-to-remember JNDI name. We need it in the Java client to test the JMS SAF configuration.<br /></li></ul><br /><span style="font-weight: bold;">Sending Side - Additional notes<br /></span>- I simply used the default settings for<ul><li>the persistent store of the SAF agent</li><li>targeting and subdeployment<br /></li><li>the type of error handling (log). If you decide to use an Error destination, make sure that the queue is targeted to same JMS server/Subdeployment as used for the SAF queue. Most probably, this will mean that you have to create a Subdeployment instead of using the default as I did :)<br /></li></ul>- For the SAF queue you have to use the JNDI name that you have chosen during the configuration of the destination queue at the receiving side for the remote JNDI location. For simplicity, you can use the same for the local JNDI name<br />- The JNDI name of the SAF Remote Destination will serve as the prefix of the local JNDI name that you defined for your SAF queue. Keep that in mind when you try to connect to the SAF remote queue (see further on in this posting for in the Java example)<br /><br /><br />Here's the overview of the JMS SAF resources in the JMS module, which is targeted to the sending server, that I have used in my demo set up:<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQi_36tzS5E07KIXNjZVpWZd0TuAQJSuney4Le8O-xYDwarFU7QpvXGPAdbmgjiITOaJ70UJK5pqMuSTMxKfdEFYwHPiFoma3mVCRyX7O8ey_FMCaHz5BbIwXCUsc3fJVT-WNd/s1600-h/jmssaf_sending_module.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQi_36tzS5E07KIXNjZVpWZd0TuAQJSuney4Le8O-xYDwarFU7QpvXGPAdbmgjiITOaJ70UJK5pqMuSTMxKfdEFYwHPiFoma3mVCRyX7O8ey_FMCaHz5BbIwXCUsc3fJVT-WNd/s400/jmssaf_sending_module.png" alt="" id="BLOGGER_PHOTO_ID_5402549301923478802" border="0" /></a><span style="font-weight: bold;"><br /><br />JMS SAF remote Java client<br /></span><span>Now that we have finished the Weblogic Server 11g JMS SAF configuration<span style="font-weight: bold;">, </span>we can test it by using a simple Java client. The code fragment below shows the code that you can use to test your configuration. Please note:<br /><br /></span><ul><li><span>Import the <span style="font-style: italic;">J2EE 1.5</span> and <span style="font-style: italic;">Weblogic Remote client</span> libraries in JDeveloper 11g</span></li><li><span>If you are not sure about the exact JNDI binding names for the Connection Factory and JMS destination, you can browse the JNDI tree of the sending server (Admin Console -> Environment -> servers -> <managed server="" name=""> -> Configuration/General tab</managed></span><span>)</span></li><li><span>You can either use '.' or '/' as the separator in your JNDI name </span></li></ul><span style="font-family:monospace;"><br /></span><pre name="code" class="java"><br /> String CFName = "jms/ConnectionFactorySending";<br /> String destName = "jmssaf.RemoteDestjms.Queue_Receiving";<br /><br /> Connection conn = null;<br /> Session session = null;<br /> MessageProducer prod = null;<br /> try{<br /> //Set the Initial Context properties<br /> Properties env = new Properties( );<br /> env.put(Context.SECURITY_PRINCIPAL, "weblogic");<br /> env.put(Context.SECURITY_CREDENTIALS, "welcome1");<br /> env.put(Context.INITIAL_CONTEXT_FACTORY,<br /> "weblogic.jndi.WLInitialContextFactory");<br /> env.put(Context.PROVIDER_URL,<br /> "t3://localhost:7004");<br /><br /> InitialContext context = new InitialContext(env); <br /><br /> //Lookup connection factory<br /> QueueConnectionFactory queueConnectionFactory =<br /> (QueueConnectionFactory) context.lookup(CFName);<br /> <br /> //Create a connection and session<br /> conn = queueConnectionFactory.createConnection();<br /> session = conn.createSession(false, 0);<br /><br /> //Lookup queue<br /> Queue q = (Queue) context.lookup(destName);<br /><br /> //Send message<br /> prod = session.createProducer(q);<br /> TextMessage msg = session.createTextMessage();<br /> msg.setJMSMessageID(Guid.newInstance().toString());<br /> msg.setText("SAF Test message");<br /> prod.send(msg);<br /> <br /> }<br /> catch(NamingException ne){<br /> System.out.println("NamingException: "+ne.toString());<br /> }<br /> catch(JMSException jmse){<br /> System.out.println("NamingException: "+jmse.toString());<br /> }<br /> finally{<br /> try{<br /> prod.close();<br /> session.close();<br /> conn.close();<br /> }<br /> catch(Exception e){<br /> System.out.println("Excepion in finally branch: "+e.toString());<br /> }<br /> }<br /></pre><br /><br />Run your program to send a message to the sending server. Before you do this make sure the receiving server is not running to check if SAF is working as expected. When the message is submitted, check the <span style="font-style: italic;">Monitoring</span> tab in the Sending SAF agent configuration screen to check if the message is stored and waits for redelivery (from here you are able to perform more management tasks, like pausing forwarding etc.). When you start the receiving server the message will be redelivered automatically to the receiving server..<br /><br />This blog serves as a starting point for using JMS SAF. More info about all the specific configuration options and monitoring/management options can be found <a href="http://download.oracle.com/docs/cd/E12839_01/web.1111/e13742/toc.htm">here</a>.<span style="font-weight: bold;"><br /></span>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com5tag:blogger.com,1999:blog-19569500.post-75731118801157990012009-11-05T04:37:00.004-01:002009-11-05T04:43:40.748-01:00SOA Suite 10.3.5.1 released: certified with Weblogic Server 10.3.1SOA Suite 10.1.3.5.1 (aka Oracle Fusion Middleware 1ogr3) has been released. Finally, Oracle BPEL Manager, Oracle ESB, Oracle Rules, OWSM components and all versioned 10.1.3.5.1 are certified with WLS 10.3.1.<br /><ul><li><a href="http://www.oracle.com/technology/software/products/ias/htdocs/101310.html">Downloads</a></li><li><a href="http://www.oracle.com/technology/software/products/ias/files/oracle_soa_certification_r3_10.1.3_matrix.xls">Certification matrix</a></li></ul>Tom Hoftehttp://www.blogger.com/profile/11228605775527929516noreply@blogger.com1