<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Angelo Santagata&apos;s Blog</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/" />
   <link rel="self" type="application/atom+xml" href="http://blogs.oracle.com/angelo/xml/rss.xml" />
   <id>tag:blogs.oracle.com,2009:/angelo//24</id>
   <updated>2009-11-11T14:28:15Z</updated>
   <subtitle>Architect &amp; Technology Evangelist - If its middleware I&apos;m interested</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 4.23-en</generator>


<entry>
   <title>Fusion Middleware 11.1.1.2.0 Is available</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2009/11/fusion_middleware_111120_is_av.html" />
   <id>tag:blogs.oracle.com,2009:/angelo//24.15504</id>
   
   <published>2009-11-11T14:26:58Z</published>
   <updated>2009-11-11T14:28:15Z</updated>
   
   <summary>Download it whilst its still hot :-) http://www.oracle.com/technology/software/products/middleware/htdocs/fmw_11_download.html...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   <category term="fmw11g" label="FMW11g" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Download it whilst its still hot :-)<br />
<a href="http://www.oracle.com/technology/software/products/middleware/htdocs/fmw_11_download.html"><br />
http://www.oracle.com/technology/software/products/middleware/htdocs/fmw_11_download.html</a></p>]]>
      
   </content>
</entry>

<entry>
   <title>Changing the Skin of WebCenter (also applies to ADF)</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2009/08/changing_the_skin_of_webcenter.html" />
   <id>tag:blogs.oracle.com,2009:/angelo//24.13684</id>
   
   <published>2009-08-07T10:39:09Z</published>
   <updated>2009-08-07T10:39:21Z</updated>
   
   <summary>Hi All, I’ve just been high lighted to a blog entry by a guy called “John” who was on one of my webcenter 11g courses recently. If you look here you’ll see his results of playing with skins and changing...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Hi All,</p>  <p>I’ve just been high lighted to a blog entry by a guy called “John” who was on one of my webcenter 11g courses recently. If you look <a href="http://www.bluestudios.co.uk/blog/?p=781" target="_blank">here</a> you’ll see his results of playing with skins and changing the native skin to his skin..</p>  <p>Its worth highlighting that changing skins on ADF11g (which is what WebCenter11g Spaces is based on) is MUCH MUCH easier than it was with 10g , checkout Peter Moskovits ‘s blog for more info&#160; <a title="http://pmoskovi.wordpress.com/" href="http://pmoskovi.wordpress.com/">http://pmoskovi.wordpress.com/</a></p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[New BPEL Partner Link parameter &lsquo;faultableResponseHeaderHandler&rsquo;]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2009/07/new_bpel_partner_link_paramete.html" />
   <id>tag:blogs.oracle.com,2009:/angelo//24.13530</id>
   
   <published>2009-07-28T15:37:04Z</published>
   <updated>2009-07-29T15:37:08Z</updated>
   
   <summary>&#160; I’ve just finished helping out one of my partners with an interesting problem which resulted in the usage of a new piece of functionality called “faultableResponseHeaderHandler” partner link support in BPEL 10.1.3.4 MLR9. With this release we’ve extended the...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
      <category term="SOA" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>&#160;</p>  <p>I’ve just finished helping out one of my partners with an interesting problem which resulted in the usage of a new piece of functionality called “<strong>faultableResponseHeaderHandler</strong>” partner link support in BPEL 10.1.3.4 MLR9.</p>  <p>With this release we’ve extended the responseHeader Handler in our WSIF implementation which allows us the ability to inspect a returning payload, and if required raise a BPEL Fault..</p>  <p>Why do this? Well in our case the system was experiencing random errors from a remote service which if retried would work correctly but as the remote service responded with a business error and not a fault the standard fault management framework couldn’t help.</p>  <p>In a perfect world the BPEL Developer would have detected this error by inspecting the payload in BPEL and then issued a retry, however using this new piece of functionality we were able to implement the raising of an error, which then triggers off the standard BPEL Fault Management Framework (<a href="http://www.oracle.com/technology/products/ias/bpel/pdf/10133technotes.pdf">documented page 29 of this doc)</a> without changing the main bpel code, which in turn keeps the legibility of the BPEL code high.</p>  <p>&#160;</p>  <p>So how do you use this new piece of functionality</p>  <p>1. Install Oracle SOASuite 10.1.3.4 and MLR9 (obvious really)</p>  <p>2. Create a class which implements the interface&#160; “<em><strong>com.collaxa.cube.ws.FaultableHeaderHandler</strong></em>”</p>  <blockquote>   <p>This class should implement the following method</p>    <h4><em>public void invoke(CXPartnerLink cxPartnerLink, String string, Map map,&#160; List list, Map map1) throws BPELFault        <br />{ ….. }</em></h4> </blockquote>  <p>The Map contains the payload elements, each one corresponding to a part of the input/output message as defined in your WSDL.&#160; The next step is to get the dom object and query it..&#160; For this you have many options, you could use a DOM API , an XPATH query or something else.. I’ve used xpath as I think it would be easier.. </p>  <p>3. If you decide not to raise a fault, then simply return, if however you decide to raise a fault then simply create a new java exception of type “<strong><a href="http://download.oracle.com/docs/cd/E12483_01/integrate.1013/b28986/com/oracle/bpel/client/BPELFault.html" target="_blank"><em>com.oracle.bpel.client.BPELFault</em></a></strong><em>”, </em>fill in the parameters accordingly to the javadocs and throw it.</p>  <p>4. Deploy the resulting class into the <strong>&lt;OracleHome&gt;/bpel/system/classes</strong> directory and restart your SOASuite server</p>  <p>5. At this point you need to edit the partnerLink binding in the bpel.xml file to include a new parameter called “faultableResponseHeaderHandler” and give it the fully qualified name of class implementing your hander.</p>  <p>e.g.</p>  <p><tt>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;partnerLinkBinding name=&quot;MyService&quot;&gt;</tt>     <br /><tt>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;wsdlLocation&quot;&gt;MyServiceWSIF.wsdl&lt;/property&gt;</tt>     <br /><tt>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;faultableResponseHeaderHandler&quot;&gt;<strong>com.sample.angelosFaultableErrorHander</strong>&lt;/property&gt;</tt>     <br /><tt>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ....</tt>     <br /><tt>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/partnerLinkBinding&gt;</tt></p>  <p>and then deploy it into your BPEL domain. </p>  <p>At this point you should be able to execute your bpel code, and based on the custom logic in your faultableHeaderHandler code, you can throw a BPEL Fault instead of returning a business fault within the response.. At this point I recommend using the Fault Management Framework to manage the fault, e.g. example retry 5 times. </p>  <p>For more information on the Fault Management Framework see <a href="http://www.oracle.com/technology/products/ias/bpel/pdf/10133technotes.pdf" target="_blank">here</a></p>  <p>Finally, big thanks to Clemens and my Italian friends for helping out here.</p>  <p>Enjoy!</p>  <p>Resources &amp; Hints</p>  <ol>   <li>Good tutorial on XPATH available here <a href="http://www.ibm.com/developerworks/library/x-javaxpathapi.html">http://www.ibm.com/developerworks/library/x-javaxpathapi.html</a> </li>    <li>Deploy the classes into the &lt;OracleHome&gt;/bpel/system/classes directory </li>    <li>If you use System.out.println() for debugging your code you’ll see the output go into the BPEL containers log in &lt;OracleHome&gt;opmn/log</li>    <li>I’ll be posting a JDeveloper Workspace with a test project soon :-) </li>    <li>com.collaxa.cube.ws.FaultableHeaderHandler interface can be found in orabpel.jar which is in &lt;OracleHome&gt;/bpel/lib </li> </ol>]]>
      
   </content>
</entry>

<entry>
   <title>Downloading Fusion Middleware Patches</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2009/07/downloading_fusion_middleware.html" />
   <id>tag:blogs.oracle.com,2009:/angelo//24.13494</id>
   
   <published>2009-07-24T16:46:23Z</published>
   <updated>2009-07-24T16:46:35Z</updated>
   
   <summary>&#160; OK we’d all not like to download patches but patches are essential to keep your Fusion Middleware installation and up to date.. The most direct place to download a patch is the Metalink website (http://metalink.oracle.com) but if your getting...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>&#160;</p>  <p>OK we’d all not like to download patches but patches are essential to keep your Fusion Middleware installation and up to date.. </p>  <p>The most direct place to download a patch is the Metalink website (<a href="http://metalink.oracle.com">http://metalink.oracle.com</a>) but if your getting lost and can’t find your SOA patchset, or patch number then this website </p>  <p><a title="http://www.oracle.com/technology/products/soa/soasuite/collateral/downloads.html" href="http://www.oracle.com/technology/products/soa/soasuite/collateral/downloads.html">http://www.oracle.com/technology/products/soa/soasuite/collateral/downloads.html</a></p>  <p>Is a hidden gem, it details all the patches, all the MLRs for our different releases, you still need to go to Metalink to download the patch but at least you now have the patch number to help you.</p>  <p>&#160;</p>  <p>Enjoy </p>]]>
      
   </content>
</entry>

<entry>
   <title>ADF and WLS10.3</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2009/05/adf_and_wls103.html" />
   <id>tag:blogs.oracle.com,2009:/angelo//24.12184</id>
   
   <published>2009-05-12T09:27:19Z</published>
   <updated>2009-05-12T10:12:10Z</updated>
   
   <summary>I get this lots and lots, &quot;How do I deploy an ADF11g app on Weblogic Server 11g&quot;. The answer is pretty easy however we are getting more questions that we really ought to.. The best source of knowledge is Duncan...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
      <category term="ADF11g" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>I get this lots and lots, "How do I deploy an ADF11g app on Weblogic Server 11g". The answer is pretty easy however we are getting more questions that we really ought to..</p>

<p>The best source of knowledge is <a href=" http://groundside.com/blog/DuncanMills.php?title=a_rough_guide_to">Duncan Mills blog</a> @ </p>

<p>Failing that ping us!</p>]]>
      
   </content>
</entry>

<entry>
   <title>Gosh has it been that long?</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2009/03/gosh_has_it_been_that_long.html" />
   <id>tag:blogs.oracle.com,2009:/angelo//24.10622</id>
   
   <published>2009-03-06T07:21:25Z</published>
   <updated>2009-04-14T05:42:32Z</updated>
   
   <summary>Gosh, Ive been so busy recently I havent really had time to keep my blog up to date. I logged in today for a long time and realised its nearly a near since my last posting.. Must update it more...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Gosh, Ive been so busy recently I havent really had time to keep my blog up to date. I logged in today for a long time and realised its nearly a near since my last posting..  </p>

<p>Must update it more often.. </p>

<p>Anyway I've been busy working with out partner comunity doing all sorts of things, from highly available messaging systems, (did you know we can push over 5K messages through our service bus?) to helping a partner design and use our new WebCenter 11g Spaces product.. All rather cool..</p>

<p>The latest question I had was </p>

<p>' We are building a coherence grid to manage/process data and we need to persist the data. We are planning to use hibernate as our persistence store and was wondering if Oracle had any views on if we should generate a database schema from the java objects or generate java objects from a dataase schema...</p>

<p>Unfortunatly the answer is "It depends"..</p>

<p>Typically things like hibernate do a good job of generating a schema but its no way near as good if you got a good data architect to do it. Also you need to keep in mind what other applications are accessing the schema, things like ETL/ODI, BI etc.. Will they be happy with the generated schema??</p>

<p>This is why I tend to go the other way, generate the schema first, tune it (ie add indexes, denormalize it etc) and then expose it up to the java world using the persistence engine..</p>

<p>My view.. again it depends on the application usage, other application usage of the schema etc.</p>

<p>What are you views?</p>]]>
      
   </content>
</entry>

<entry>
   <title>Installing Service registry</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2008/04/installing_service_registry.html" />
   <id>tag:blogs.oracle.com,2008:/angelo//24.329</id>
   
   <published>2008-04-17T12:35:54Z</published>
   <updated>2008-06-24T01:25:13Z</updated>
   
   <summary>Some quick tips on installing service registryWhen it asks you for the JDBC Drivers selection , try ojdbc14.jar, this is in my SOASuite 10.1.3 directory (E:\as1\jdbc\ojdbc14.jar)Do not install the webclients into the same OC4J as Oracle SOASuite, if you do,...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Some quick tips on installing service registry<br><br><ol><li>When it asks you for the JDBC Drivers selection , try <span style="font-weight: bold;">ojdbc14.jar</span>, this is in my SOASuite 10.1.3 directory (<span style="font-weight: bold;">E:\as1\jdbc\ojdbc14.jar</span>)</li><li>Do not install the webclients into the same OC4J as Oracle SOASuite, if you do, it will install but when you try to publish a webservice you'll get the following error<br><br>WSDL error<br>Fault code: CONFIGURATION_ERROR<br>Message: WSDLException: faultCode=CONFIGURATION_ERROR: Problem instantiating<br>factory implementation.: oracle.j2ee.ws.wsdl.factory.WSDLFactoryImpl<br><br>Best practice is to create a seperate OC4J instance in the Oracle App Server and deploy it into that instance instead.<br><br />
<br></li><li>Ensure that the OC4J instance has the following Java options<span style="font-weight: bold;"><br><br>-Xmx1024m -XX:MaxPermSize=128m</span><br></li></ol><pre class="code-xml"><br>If you dont you might get out of memory errors.<br><br><br></pre>Finally, checkout the readme :-)<br><br>http://www.oracle.com/technology/tech/webservices/htdocs/uddi/readme.pdf<br><br></p>]]>
      
   </content>
</entry>

<entry>
   <title>A New Query Language to learn....</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2008/01/a_new_query_language_to_learn.html" />
   <id>tag:blogs.oracle.com,2008:/angelo//24.330</id>
   
   <published>2008-01-30T16:50:17Z</published>
   <updated>2008-06-24T01:25:13Z</updated>
   
   <summary>Working with some collegues of mine at a large SI, they asked me whats comming up in Fusion Middleware 11g, lots was my immediate answer...So then we went, and trawled through presentations at OOW, and a good one is&quot;Whats new...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Working with some collegues of mine at a large SI, they asked me whats comming up in Fusion Middleware 11g, lots was my immediate answer...<br><br>So then we went, and trawled through presentations at OOW, and a good one is<br><br><a href="http://www.oracle.com/technology/products/ias/bpel/techpreview/s291362-whats-new-in-oracle-soa-suite.pdf">"Whats new in Oracle SOA Suite"<br></a><br><br>If you have a peek at this you'll see that App. Server 11g has a lot of really good improvements but one which I looked at and thought, eh?? whats that? is a BAM feature called "CQL" or Continuous Query Language.<br><br>I'll be honest here I haven't tinkered much with AS11g, but this feature did catch my eye... In short your able to create a query which is constantly run and provides agregated data over a period of time.&nbsp; As its a query you can filter it before pumping it into BAM.<br><br><p>Here's an example from a post by <a href="http://www.it-eye.nl/weblog/2006/11/22/continuous-query-language-cql/#comment-18017">Andreq Koelewijn&nbsp;</a> <a href="%28http://www.it-eye.nl/weblog/2006/11/22/continuous-query-language-cql/#comment-18017%29"><small>at IT-Eye<br></small></a></p><p><br><br />
<code>select w.location,      avg(w.water_level)<br><br />
from   water_level_stream w<br><br />
[range by '10 minutes' slide by '10 minutes']<br><br />
where  w.state = 'zeeland'<br><br />
group  by w.location<br><br />
</code></p><br />
<p>From a continuous stream of water level data this query would calculate a water level average for every 10 minutes which can then be graphed by Oracle BAM.. <br></p>cool.. Look forward to tinkering with this.<br></p>]]>
      
   </content>
</entry>

<entry>
   <title>XSLT Support in our products</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/12/xslt_support_in_our_products.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.331</id>
   
   <published>2007-12-20T15:56:40Z</published>
   <updated>2008-06-24T01:25:13Z</updated>
   
   <summary>A little Xmas bit for you. Working with one of my clients I got the question.Is there an XSL reference from what Oracle has implemented?And the answer from development is For 10gR1, our XSLT 2.0 support was for the spec...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>A little Xmas bit for you. Working with one of my clients I got the question.<br><br style="font-weight: bold;"><span style="font-weight: bold;">Is there an XSL reference from what Oracle has implemented?</span><br style="font-weight: bold;"><br>And the answer from development is <br style="font-style: italic;"><br style="font-style: italic;"><span style="font-style: italic;">For 10gR1, our XSLT 2.0 support was for the spec at that time (working</span><span style="font-style: italic;"> draft dated 11th November 2002).&nbsp; For 10gR2, it was for working</span><span style="font-style: italic;"> draft dated 04 April 2005.&nbsp; There are some limitations documented </span><span style="font-style: italic;">in the readme.</span><br style="font-style: italic;"><br style="font-style: italic;"><span style="font-style: italic;">In XDK 11g XML Parser and XSLT engine&nbsp;&nbsp; we implement the XSLT 2.0 Recommendation.<br></span><br>Oh our BPEL Server uses the XDK which comes with 10gr2, and hence you can read up about it in the XDK home in the Oracle Home directory of SOA Suite.<br>i.e. &amp;lt;OracleHome&gt;/xdk/xdk_readme.htm<span style="font-style: italic;"><br><br><br></span></p>]]>
      
   </content>
</entry>

<entry>
   <title>Gosh is it almost Xmas ??</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/12/gosh_is_it_almost_xmas.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.332</id>
   
   <published>2007-12-19T15:15:18Z</published>
   <updated>2008-06-24T01:25:14Z</updated>
   
   <summary><![CDATA[Gosh its almost Xmas and I looked at my blog and thought its looking a little bare.. So I thought Id update it with some things, what have I been doing etc..&nbsp;Things have been incredibly busy recently with the launch...]]></summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Gosh its almost Xmas and I looked at my blog and thought its looking a little bare.. So I thought Id update it with some things, what have I been doing etc..<br><br>&nbsp;Things have been incredibly busy recently with the launch of the <a href="http://www.accenture.com/Global/Services/Innovation_Center/default.htm">Accenture Innovation Centre</a> which was launched in the UK last week. My role for this is to support Accenture as a dedicated Architect from Oracle, oh lets not forget a bit of presales, biz dev and generally running around.. I think someone described it like being at a .COM, exciting..<br><br>Anyway technology wise things are really shaping out. Oracle Fusion Middleware adoption continues to grow and so does our acquistions (Tangosol, Bridgestream, Bharossa, AppForge&nbsp; etc) , checkout this url http://www.oracle.com/corporate/acquisition.html for a list with a description....<br><br><h2>JDeveloper vs .Net and Web 2.0</h2>Our JDeveloper product is also evolving nicely with its new AJAX user interface. Id recommend anyone to download JDeveloper 11g Preview 2 and checkout the tutorials.. An interesting question I recently heard was how does Java compare with .NET?? Well basically using Java gives you the following "features"<br><ul><li>freedom of platform</li><li>freedom of app server vendor (Oracle,JBoss,IBM, BEA etc)</li><li>freedom of development tools (Eclipse/JBuilder etc)</li></ul>Its the last one where we Oracle really play a strong part. The ADF framework is really rich in its feature set from the bottom layer of where do I put my business logic (Toplink,EJB3.0, Business Components), to user interface decisions such as ADF Faces, JSF, JSP, Struts, Portal etc.. <br>To glue this all together we have my favourite layer called (ADFm), ADF Model...<br><br><img src="http://blogs.oracle.com/angeloSantagata/images/adfarchitecture.jpg" height="447" width="450" border="0" alt="ADF Architecture: "><br><br>With ADF Faces 11g (comes with JDeveloper 11g) we've taken the bull by the horns and made building AJAX applications even easier!<br><br>Here's a sample screen shot of a sample app Ive&nbsp; have used to demo the new features. Of interest is the accordian control on the left (Featured,Browse and Search), drag-n-drop support, stylesheets and "Templates!" (Something sorely missing in JSF) and lots of other goodies.. <br><br><br><img src="http://blogs.oracle.com/angeloSantagata/images/adffaces11pic.jpg" height="431" width="450" border="0" alt="ADF Faces 11g Example: "><br>Its all good.......<br><br><br></p>]]>
      
   </content>
</entry>

<entry>
   <title>BPEL : The effect of deliveryPersistPolicy</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/12/bpel_the_effect_of_deliveryper.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.333</id>
   
   <published>2007-12-19T14:36:17Z</published>
   <updated>2008-06-24T01:25:14Z</updated>
   
   <summary>Oracle BPEL has a number of knobs you can tweak to improve performance, one of the easiest tweaks is the deliveryPersistPolicy parameter.This parameter determines whether the delivery messages, entering BPEL, are persisted. That is when you call a BPEL process...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Oracle BPEL has a number of knobs you can tweak to improve performance, one of the easiest tweaks is the deliveryPersistPolicy parameter.<br><br>This parameter determines whether the delivery messages, entering BPEL, are persisted. That is when you call a BPEL process an row is inserted into the BPEL repository, and response is given to the client. After a short time worker threads are activated to process the request. <br><br>&amp;lt;Picture of request , message table , threads &gt;<br>If you look at your BPEL statistics page you'll see that this process can take a couple of hundred ms' so lets assume that your process is synchronous and can be repeated, do you want it to be persisted???<br><br>Fortunatly this is one of the knobs you can tweak to improve performance here..<br><br><br>deliveryPersistPolicy has three valid values<br><ul><li>on</li><ul><li>Client thread stores message in the database</li><li>Worker threads pick up the message and deliver it to the BPEL instance</li><li>This approach is a "Send and forget" approach, with the guarantee that once its submitted it will get processed<br></li></ul><li>off</li><ul><li>No database logging is done, the message is stored in memory cache <br></li><li>If the server crashes during the processing then the request will be lost.<br></li></ul><li>off.immediate (since 10.1.3.1)</li><ul><li>In this scenario the message isnt saved at all, and the request is passed directly to the BPEL instance.</li><li>"Send and Wait" approach</li><li>Great for Synchronous processes that can be repeated.</li></ul></ul><br>This parameter can be set in the BPEL Console parameters screen.<br><br><br></p>]]>
      
   </content>
</entry>

<entry>
   <title>Oracle Fusion Middleware and high availability....</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/09/oracle_fusion_middleware_and_h.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.334</id>
   
   <published>2007-09-26T11:05:48Z</published>
   <updated>2008-06-24T01:25:14Z</updated>
   
   <summary>Im currently on an Oracle High Availibility course and picking up a few gems which I thought Id share... J2EEWhen setting up J2EE state clustering you have three communication approaches for replicating state ;MulticastPeer-to-PeerDatabaseGenerally Multicast is the easiest to setup...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Im currently on an Oracle High Availibility course and picking up a few gems which I thought Id share... <br><br><ul><li>J2EE</li><ul><li>When setting up J2EE state clustering you have three communication approaches for replicating state ;</li><ul><li>Multicast</li><li>Peer-to-Peer</li><li>Database<br><br>Generally Multicast is the easiest to setup and gives the best out of the box performance however with some tuning peer to peer is more efficient. <br><br>We now also have a database option where the state is saved to an Oracle database. This approach is the most reliable, however there is obviously a performance penalty for this.</li></ul></ul></ul><br></p>]]>
      
   </content>
</entry>

<entry>
   <title>How to I programatically access the worklist application?</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/09/how_to_i_programatically_acces.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.335</id>
   
   <published>2007-09-17T17:24:02Z</published>
   <updated>2008-06-24T01:25:14Z</updated>
   
   <summary>I keep getting asked this question so today I thought Id blog it so its set out there for the various search engines to find..The worklist application is nothing more than a front end to the Oracle BPEL Workflow services,...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>I keep getting asked this question so today I thought Id blog it so its set out there for the various search engines to find..<br><br>The worklist application is nothing more than a front end to the Oracle BPEL Workflow services, and as of Oracle BPEL 10.1.3 (SOASuite) , there are three main routes to accessing it.<br><br><ul><li>Java API</li><li>EJB Interface <br></li><li>SOAP Webservices</li></ul>The first two are probably the most used interfaces, I think the worklist application uses one of these. <br><br>For more information see the documentation , specifically Section 15.12.1<br>http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/workflow.htm#sthref2594<br><br><br><br></p>]]>
      
   </content>
</entry>

<entry>
   <title>Using Oracle SOASuite with Oracle XE?</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/07/using_oracle_soasuite_with_ora.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.336</id>
   
   <published>2007-07-19T12:46:26Z</published>
   <updated>2008-06-24T01:25:15Z</updated>
   
   <summary>Its possible to use Oracle XE instead of Oracle Lite for Oracle SOA Suite, all you need to do is tweak it a bit!Check Antony&apos;s blog at http://blogs.oracle.com/reynolds/2006/11/02...</summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p>Its possible to use Oracle XE instead of Oracle Lite for Oracle SOA Suite, all you need to do is tweak it a bit!<br><br>Check Antony's blog at <span style="text-decoration: underline;">http://blogs.oracle.com/reynolds/2006/11/02</span><small><small></small></small></p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[Multiple JVMs &amp; Multiple OC4J Instance]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/angelo/2007/05/multiple_jvms_multiple_oc4j_in.html" />
   <id>tag:blogs.oracle.com,2007:/angelo//24.337</id>
   
   <published>2007-05-23T09:32:22Z</published>
   <updated>2008-06-24T01:25:15Z</updated>
   
   <summary><![CDATA[I've recently seen an email on&nbsp; our internal mail list which was entitled "Multiple JVMs vs Multiple Instances"The author of the original email was testing performance differences between multiple jvms on a single container vs multiple containers...&nbsp; He noticed (quite...]]></summary>
   <author>
      <name>angelo.santagata</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/angelo/">
      <![CDATA[<p><font size="3">I've recently seen an email on&nbsp; our internal mail list which was entitled <br><br>"Multiple JVMs vs Multiple Instances"<br><br>The author of the original email was testing performance differences between multiple jvms on a single container vs multiple containers...&nbsp; He noticed (quite correctly in my view) that the performance is virtually identical..<br><br>So whats the difference, well in my view one of the responses nailed it down, smack down style..<br></font><font size="3"><br></font><font size="3"><font style="font-style: italic; font-family: Times New Roman;"><span style="font-weight: bold;">Multiple JVMs:</span><br>The processes share the same configuration for the entire container (not<br>just for the JVM parameters).<br>Same applications, same container configuration etc.<br>This is a great way of scaling symmetrically to better utilize the CPUs and<br>still only having to manage one container.</font><br style="font-style: italic; font-family: Times New Roman;"><br style="font-style: italic; font-family: Times New Roman;"><span style="font-weight: bold; font-style: italic; font-family: Times New Roman;">Multiple OC4Js:</span><br style="font-style: italic; font-family: Times New Roman;"><span style="font-style: italic; font-family: Times New Roman;">You can individually control all of the container configurations, have</span><br style="font-style: italic; font-family: Times New Roman;"><span style="font-style: italic; font-family: Times New Roman;">different applications deployed etc. You can use this strategy in</span><br style="font-style: italic; font-family: Times New Roman;"><span style="font-style: italic; font-family: Times New Roman;">combination with multiple JVMs to scale while at the same time having a</span><br style="font-style: italic; font-family: Times New Roman;"><span style="font-style: italic; font-family: Times New Roman;">heterogeneous environment wrt. nr. of applications deployed, container</span><br style="font-style: italic; font-family: Times New Roman;"><span style="font-style: italic; font-family: Times New Roman;">configurations etc.</span><br><br>So it really falls down into a how do you want to deploy your oc4j application. <br><br>Now that reminds me of a different question I often get, its <br>"How many JVMs shall I have for my application?"<br><br>Now in the past the JVM had some limitations and if you had a large number of connections it was very very wise to have lots of jvms.. Nowadays the JVM has grown up and is quite a mature beast.. I remember for example 3 years ago I was working with a Israeli Consulting company and they were boasting that they had 2500 concurrent users running on a single jvm. Quite a large number it sounded but not so large when you dug a bit and discovered that the actualy pages/second wasnt huge (10's from memory) and that the clients were all effectively stateless.....<br><br>So back to the original question, lets assume I have an application with say 100 users, how many JVMs, well different people have different ideas, you really need to test it, but my rule of thumb to start with is :<br><br>- Minimum of <span style="font-weight: bold;">two </span>JVMs , this is to cope with JVM process failure<br>and then add 1.2 per available extra CPU in your box, then round it up/down depending on how you feel....<br><br>So a 4 CPU box would have&nbsp; 2+(round(3*1.2)) =&nbsp; 5&nbsp; <br><br>Now different CPUs/Operating systems/applications work differently so you <span style="font-weight: bold;">always need to load test </span>it and see what works best in your environment. <br> <br>Thankfully in Oracle Application Server Control its really easy to change the number of JVMs for a OC4J instance, simply navigate to the OC4J Instance / Server properties and then you'll see at the top of the page "JVM processes"<br><br><a href="%20http://buttso.blogspot.com/2006/11/creating-new-oc4j-instances-with-10131.html">Checkout this blog entry</a><br><br>Also dont forget the documentation!!!<br><a href="http://download-uk.oracle.com/docs/cd/B32110_01/core.1013/b28942/toc.htm"><br>Oracle Application Server 10.1.3.1 Performance Guide</a><br><br>and<br><a href="http://download-uk.oracle.com/docs/cd/B32110_01/web.1013/b28950/topology.htm#sthref382"><br>Oracle Application Server OC4J Config. &amp; Admin Guide</a><br><br><br>Enjoy</font></p>]]>
      
   </content>
</entry>

</feed>
