<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18952097</id><updated>2012-02-16T02:21:47.738-08:00</updated><category term='AIA'/><category term='Patterns'/><category term='Oracle SOA'/><title type='text'>Avijeet Dash</title><subtitle type='html'>Oracle SOA rambling</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18952097.post-543534884698392124</id><published>2011-09-28T02:00:00.000-07:00</published><updated>2011-09-28T02:45:43.970-07:00</updated><title type='text'>more on AIA2.4/10g</title><content type='html'>Last week while deploying some integration flows on AIA2.4/SOA10g/Weblogic, had two interesting errors -&lt;br /&gt;&lt;br /&gt;1) While deploying the ESB (EBS in AIA) got the error -&lt;br /&gt;&lt;br /&gt;A Service or ServiceGroup of name "XXXEBSV1" already exists under parent AIASystem&lt;br /&gt;&lt;br /&gt;Found a good blog on this &lt;a href="http://maheshnarayana.blogspot.com/2010_09_01_archive.html"&gt;here&lt;/a&gt;, which talks about an ESB bug - and the solution to that is &lt;br /&gt;Either you delete the esb before redeploying, or if you are doing it from a script - we can deploy a esb project with no routing and having the same GUIDs for all the services. Deploying the ESB with No routing firth and they deploying the ESB with routing will resolve the issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) The second issue was with correlation sets - we were running a huge loop across EBF -&gt; ESBV1 -&gt; Provider BPEL -&gt; ResponseESBV1 -&gt; EBF&lt;br /&gt;&lt;br /&gt;And it was important that the correlation sets work properly for the loop to continue. So we had 3 points in the EBF where callbacks were to be received. We created 3 correlation sets in each scope invoke with yes and receive with no, associated with property with type normalized string, for property alias we picked the EBM_ID, It needs 2 entries in the wsdl one for requestEBM and one for Response EBM. On the Provider BPEL part also we created correlation set on the first received activity (with yes) and then at the invoke ResponseEBS (with no) one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-543534884698392124?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/543534884698392124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=543534884698392124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/543534884698392124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/543534884698392124'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2011/09/more-on-aia2410g.html' title='more on AIA2.4/10g'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-1674870893051907735</id><published>2011-07-21T04:09:00.000-07:00</published><updated>2011-08-14T07:13:49.133-07:00</updated><title type='text'>AIA2.4FP installation on SOA10.1.3.4/Weblogic9.2</title><content type='html'>After a long hiatus, I am back with a useful blog. I had to install AIA2.4 (AIA2.3 downloads were not available on edelivery) on SOA10.1.3.4 on the WebLogic9.2. I tried to avoid doing it as much as possible, given there were no documentation on this, other than a few OTN forum entries and few other useful links &lt;a href="http://oraclefusionfacts.blogspot.com/2010/07/issues-and-resolution-during-oracle-aia.html"&gt;here&lt;/a&gt; and &lt;a href="http://orasoa.blogspot.com/2010/04/aia-2425-foundation-pack-quick-cluster.html"&gt;here &lt;/a&gt;, but finally after 3 days, it was successful.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://oraclefusionfacts.blogspot.com/2010/07/issues-and-resolution-during-oracle-aia.html"&gt;this&lt;/a&gt; blog already pointed to issues with this install and the metalink note#822831.1&lt;br /&gt;&lt;br /&gt;To start with - had to first set up SOA10.1.3.4 on Weblogic9.2. This is a pretty well established &lt;a href="http://oraclefusionfacts.blogspot.com/2010/01/installation-of-oracle-soa-10134-on.html"&gt;process&lt;/a&gt;, however I faced some challenges because of Windows7&lt;br /&gt;&lt;br /&gt;First issue was the 10g installer would not even run complaining SWAP file size issues, I commented the SWAP size checks following this &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=628194"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The second issue was a big issue, the installer kept failing at the OWSM step (Unable to locate a valid OC4J URI), the error was opmn would not stop properly, due to IP6 support in Windows7. Solution found from &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=2220185"&gt;here &lt;/a&gt; and &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=607987&amp;start=0&amp;tstart=0"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically I had to edit the opmn.xml file under opmn/config to change the stop-paramters as suggested in metalinknote#1206667.1. The other important step is to uncheck the IPv6 in the network properties.&lt;br /&gt;&lt;br /&gt;After that, things were smooth barring a few "Error occurred during initialization of VM", "OPATCH_JAVA_ERROR=OPatch Exception while trying" errors. For VM issue, closing some applications helped. For opatch issues, running the patch inside opatch directory once resolved the issues.&lt;br /&gt;&lt;br /&gt;So after installing &lt;br /&gt;Oracle XE (increase process count)&lt;br /&gt;irca.bat&lt;br /&gt;SOA 10.1.3.1.0 with Advance option&lt;br /&gt;Patch set 7272722 for 10.1.3.4&lt;br /&gt;Weblogic9.2&lt;br /&gt;Patch 7337034 &lt;br /&gt;Patch 7490612 For weblogic SOA Domain creation&lt;br /&gt;MLR #9 p8589928_101340_GENERIC&lt;br /&gt;No AIA patches required&lt;br /&gt;AIA installer only Software Copy mode&lt;br /&gt;&lt;br /&gt;(for all these ensure your directory names doesn't have spaces or else you might get "Unzip: No matching wildcard found for.." )&lt;br /&gt;&lt;br /&gt;Now was the time for AIAFP2.4 AIA 2.4 Installer V17393-01&lt;br /&gt;&lt;br /&gt;AIAFP install needs lot of prep work, I did the below&lt;br /&gt;1)increased JTA time out to 300&lt;br /&gt;2)setup AQJMS Startup class (getting the aqjms_v2.0.zip was a challenge, its no longer available on OTN, luckily I had it from a previous attempt)&lt;br /&gt;here only create the startup class, no need to add as a weblogic startup class&lt;br /&gt;3) setting up ADF libararies, downloaded adfinstaller10.1.3.4 and followed the instruction to copy the libararies to weblogic instance&lt;br /&gt;run setupadf.cmd, copy the classpath and add to the weblogic startup classpath&lt;br /&gt;4)copy the esbbootstrap.jar under the JVM_HOME/jre/lib/ext&lt;br /&gt;&lt;br /&gt;After this was ready to run AIAFP, first thing was to setup the property files&lt;br /&gt;1)set up the aiaenv.bat under AIA_HOME/bin&lt;br /&gt;2)deploy.properties under AIA_HOME/config&lt;br /&gt;3)FPwlInstall.proprties and server.properties under AIA_HOME/Infrastructure/install/wlscripts&lt;br /&gt;&lt;br /&gt;Templates for these property files are available under AIA_HOME/install/templates&lt;br /&gt;&lt;br /&gt;next was to run the install scripts under AIA_HOME/install/wlscripts&lt;br /&gt;&lt;br /&gt;If you are lucky the following line should do it all...&lt;br /&gt;ant -buildfile FPWLInstall.xml&lt;br /&gt;&lt;br /&gt;But that doesn't happen often, so I had following error&lt;br /&gt;Servlet: "AIAValidationSystemAPIServiceSoapHttpPort" failed to preload on startup in Web application&lt;br /&gt;&lt;br /&gt;It turned out, this is a known bug AIA 2.4 INSTALLATION ERROR ON WEBLOGIC [ID 1059780.1], this patch didn't work easily, so I just modified the AIAApplicationWL.EAR to change the ValidationSystemAPIService.xml under ValidationSystemAPIService.war&lt;br /&gt;&lt;br /&gt;So if your build fails in between, It's better to run the other sections separately, The ant scripts are well organized, you can run the DeployCAVS, DeployServices targets.&lt;br /&gt;&lt;br /&gt;That's it, then you can see the beautiful screen of http://localhost:9700/AIA :-)&lt;br /&gt;&lt;br /&gt;update26/July&lt;br /&gt;update the weblogic start arguments with -Daia.home={your AIA Home}, this is required otherwise the aia core code will not work and you will see FileNotFound for AIAConfigurationProperties.xml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-1674870893051907735?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/1674870893051907735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=1674870893051907735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/1674870893051907735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/1674870893051907735'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2011/07/aia24fp-installation-on.html' title='AIA2.4FP installation on SOA10.1.3.4/Weblogic9.2'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5381887265286097429</id><published>2011-03-07T23:00:00.000-08:00</published><updated>2011-03-25T03:23:26.496-07:00</updated><title type='text'>Random Thoughts -3</title><content type='html'>Last few months working on few pre-sales proposals, seeing couple of trends/patterns in many of them. Many of the projects customers are planning to start have a cloud piece. Many of the customers are using SFDC (Salesforce.com) or planning to move particularly in media, hospitality industries. Subscription based cost is driving a lot of technology choices. Customers are becoming very cost sensitive and want a very flexible costing model and execution models, where they can pay as they use in buy, build or cloud choices. &lt;br /&gt;&lt;br /&gt;From solution perspective, It becomes new challenges around how to integrate with cloud, how to handle security, how to handle RASP (Performance in particular).&lt;br /&gt;&lt;br /&gt;Other than the cloud trend, the other trend is the regular debate of orchestration vs choreography. So for every industry or cross-industry problem there are many packaged applications, now these applications also provide regular supporting peripheral/plumbing functionality. For example, an Order-Management App will have its own inbuilt workflow, will have OOB UI to manage the process flow or administration. Now the debate is whether to use the App's such in-built features or to use an esb/bpel layer to unify these functionalities centrally across applications. That's the choreography vs orchestration debate, ESB for stateless choreography and BPEL/BPM for stateful orchestration.&lt;br /&gt;&lt;br /&gt;Either way positioning an ESB is easy, with all the security and visibility story around services. Positioning the BPM story is a challenge, customers in hurry resort to point-to-point integrations and some even don't go for commercial esbs. That's another trend I saw open-source ESBs the entire story around JBI, Mule, Fuse, Spring, OSGi etc. &lt;br /&gt;&lt;br /&gt;Another trend I see is customers are more interested in data/dw, bi/reporting, mdm etc. And different compliance requirements are driving lot of strategic projects in this area.&lt;br /&gt;&lt;br /&gt;My next interest is to find architecture patterns, how soa/bpm/e2.0 can be used both strategically and tactically, particularly oracle soa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5381887265286097429?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5381887265286097429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5381887265286097429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5381887265286097429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5381887265286097429'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2011/03/random-thoughts-3.html' title='Random Thoughts -3'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3502074731353968929</id><published>2011-01-18T01:50:00.000-08:00</published><updated>2011-01-28T01:53:10.145-08:00</updated><title type='text'>Random Thoughts - 2</title><content type='html'>My random thoughts series continues in the new year as well, good time to look at Middleware Tech in general and SOA11g in particular. One specific step in this regard was my SOA Certification &lt;a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;p_exam_id=1Z0_451#3"&gt;1Z0-451&lt;/a&gt;, I took this in a hurry to avoid the pain of reading endless pdfs. Luckily I passed the test with an average score of 73%. The test did throw many new things about SOA11g which I discovered after reviewing the questions in the test. Few of them are below, otherwise the test is a 'developer-certification' and very broadly spread across all the products (BPEL, Mediator, HWF, Rules, OWSM etc)&lt;br /&gt;&lt;br /&gt;new features&lt;br /&gt;1. Mediator now supports a new validation called schematron validation&lt;br /&gt;2. Rules have the new feature of decision tables (bucketset is a new term)&lt;br /&gt;3. Rules have lot of new features functions, links etc.&lt;br /&gt;4. Fault-management framework has new features (at-least location of the files)&lt;br /&gt;5. OWSM is complete new territory&lt;br /&gt;6. SDO / Entity variable - brand new features&lt;br /&gt;7. Mediator externalizing routing rules to Business rules&lt;br /&gt;8. SpringContext integration support&lt;br /&gt;9. Lot of new features in Mediator&lt;br /&gt;10. EDN as configurable publish-subscribe infrastructure&lt;br /&gt;&lt;br /&gt;My next focus area is to deep-dive SOA11g and find best-practices/integration patterns. Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3502074731353968929?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3502074731353968929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3502074731353968929' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3502074731353968929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3502074731353968929'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2011/01/random-thoughts-2.html' title='Random Thoughts - 2'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-7454872268443123409</id><published>2010-12-17T02:13:00.000-08:00</published><updated>2010-12-17T02:57:18.393-08:00</updated><title type='text'>Random Thoughts</title><content type='html'>Recently I joined a Vendor-neutral Indian Services Company, where Oracle SOA is just another Middleware among TIBCO, WebMethods, IBM, Microsoft and all the BPM vendors like Pega, Lombardi(now IBM), MetaStorm etc.&lt;br /&gt;&lt;br /&gt;I had Couple of very interesting findings while interacting with people who have traditionally worked on EAI products like TIBCO, Webmethods and JCAPs etc.&lt;br /&gt;&lt;br /&gt;One thing I noticed people tend to relate Service with WebService and hence synchronous or real-time. So they were more comfortable with terms like Messaging, JMS, near real-time etc. I was getting a feel that EAI is a much better term than SOA. To justify the whole SOA story, I researched more and found some discussions like wrapping asynchronous service by synchronous services pattern and so ESB, which can do that. So that reminded of an Article I had read in 2007 SOA = ESB + EAI, how true, I thought.&lt;br /&gt;&lt;br /&gt;Moving away from SOA, I found strong discussions around BPM, I started goggling to understand what the BPM story is, and found that since 2009 BPM has gained more traction than SOA. Instead to put in other words BPM is front-ending SOA. Instead BPM and SOA are used in one breath like BPM/SOA. Also I found there are two types of BPM, pure-play BPM and the other BPM which is more like BPM/SOA.  My understanding of BPM was, it’s an alternative to packaged applications and custom development. It can provide the rapid development benefits + it's centered on the human centric workflow tasks and SOA complementing with the system centric integration tasks.&lt;br /&gt;&lt;br /&gt;Reading the book on Oracle BPM11g, It sounds perfect, unified platform, BPMN2.0 runtime in same server, my next quest is to find out what killer feature BPMN will do so that business folks will use it instead of Visio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-7454872268443123409?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/7454872268443123409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=7454872268443123409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7454872268443123409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7454872268443123409'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/12/random-thoughts.html' title='Random Thoughts'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-2273531729034881110</id><published>2010-11-11T02:16:00.000-08:00</published><updated>2010-11-11T03:56:34.787-08:00</updated><title type='text'>Migration to SOA11g</title><content type='html'>I had a sneak peek at SOA11g early this year, which I had blogged &lt;a href="http://avijeetd.blogspot.com/2010/01/soa-11g-fod-fusion-order-demo.html"&gt;here &lt;/a&gt; and &lt;a href="http://avijeetd.blogspot.com/2010/01/soa-11g-install.html"&gt;here&lt;/a&gt;. This time I wanted a migration-oriented approach to it, so I wanted to take a 10g bpel and migrate to 11g and check out. And what best 10g app to try other than SOA Order booking, and guess what, there is a tutorial on migrating SOA Orderbooking too. &lt;a href="http://download.oracle.com/docs/cd/E12839_01/upgrade.1111/e10127/soa_order_booking.htm#CEGCCAEJ"&gt;here &lt;/a&gt; it is. All this on 11gR1 PS1. Following the steps, I could migrate/deploy all the composites except the Customer Service which kept throwing&lt;br /&gt;&lt;br /&gt;10:50:52 AM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application CustomerService on soa_server1.: [J2EE:160149]Error while processing library references. Unresolved application library references, defined in weblogic-application.xml: [Extension-Name: oracle.soa.workflow.wc, exact-match: false]..&lt;br /&gt;&lt;br /&gt;However I could run the complete flow in 11g by keeping the webservices running in 10g.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So What I found was the migration efforts would depend on the components you have like bpel, esb, rules, tasks, java-webservices. Things are pretty straight-forward for bpel, esb, rules and tasks. However for webservices it’s somewhat tricky - based on the three kind of webservice implementations in Orderbooking the ways to migrate differed.&lt;br /&gt;&lt;br /&gt;Other than the new files composite.xml, xxx.ComponentType files for each component, I noticed the wsdls for adapter services are now split between abstract wsdls and xx.jca files and xx.mplan for esbs. Good Intro &lt;a href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/fod_intro2.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;One problem with such migrations would be that bpel and esbs from 10g will migrate as new composites, while if one would redesign them - they might be designed as one composite with both components. So migrations would defeat a major design aspect of composites. That is pretty evident if you look at the 11g design of SOA Orderbooking &lt;a href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/fod_hi_level_fod.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One complete wow factor is the rules editor - all integrated in JDev, and all migration of rules and tasks - worked just fine. However there was no task forms migrated as part of this demo. I could understand the services, components and references in the composite.xml, however didn't understand what wires are doing. One important point while migration was to keep all the partnerlinks up and running, so while migrating to 11g, the bpels should actually be working on a running 10g environment.&lt;br /&gt;&lt;br /&gt;High-level steps for migration, would be -&lt;br /&gt;&lt;br /&gt;1. Document all your external resource configurations like dbadapter, jmsadpater etc. And create them in 11g. &lt;br /&gt;2. Keep 10g running and migrate the bpels/esbs using JDev&lt;br /&gt;3. Make necessary changes for adapter configurations, partnerlink host:port information, esb to bpel routing endpoints.&lt;br /&gt;4. Compile/Deploy one by one and Test&lt;br /&gt;Additional effort will be required for webservices, rules, tasks and any other special case configurations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-2273531729034881110?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/2273531729034881110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=2273531729034881110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2273531729034881110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2273531729034881110'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/11/migration-to-soa11g.html' title='Migration to SOA11g'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4323349573916187168</id><published>2010-08-17T23:59:00.000-07:00</published><updated>2010-08-22T22:08:05.160-07:00</updated><title type='text'>WebService Oracle AS Vs Weblogic</title><content type='html'>I had this issue - "java.lang.IllegalStateException: could not find schema type named"  before(&lt;a href="http://avijeetd.blogspot.com/2009/01/10-days-challenge.html"&gt;here&lt;/a&gt;) faced it again while trying to deploy a webservice that came as part of a Hyperion product called DRM. Basically the webservices are not portable across OracleAS and Weblogic. Even I guess webservices are not portable between 9.2 and 10.3, so much about standards but it is not that straight forward.&lt;br /&gt;&lt;br /&gt;Anycase I could think of two ways to resolve the issue 1) to re build the web service using the WSDL or Java 2) using a different ANT script for weblogic build which can use wsdlc for the specific weblogic&lt;br /&gt;&lt;br /&gt;I didnt had much success either way, finally bumped into something called smartupgrade, these upgrade tools are provided as part of JDev to upgrade OracleAS J2EE apps to weblogic10.3.&lt;br /&gt;&lt;br /&gt;The smartupgrade tutorial &lt;a href="http://www.oracle.com/technetwork/middleware/upgrade-092995.html"&gt;here&lt;/a&gt;, can be downloaded &lt;a href="http://www.oracle.com/technetwork/middleware/downloads/smartupgrade-085160.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using this I could at least deploy my webservice to Weblogic10.3 and solved the problem temporarily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4323349573916187168?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4323349573916187168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4323349573916187168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4323349573916187168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4323349573916187168'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/08/webservice-oracle-as-vs-weblogic.html' title='WebService Oracle AS Vs Weblogic'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3141306437379529615</id><published>2010-07-30T01:15:00.000-07:00</published><updated>2010-07-30T01:40:23.258-07:00</updated><title type='text'>more Weblogic</title><content type='html'>I realized I have not blogged anything for over 60days now, also suggests not much quality findings, however I have been working on mostly weblogic setup. We did a portal cluster setup, also did a webcenter install - I see more and more weblogic in all these.&lt;br /&gt;&lt;br /&gt;Firstly on weblogic portal sever cluster setup, there were couple of issues in setting up the remote server and starting up the managed servers - the errors we encountered are generally&lt;br /&gt;&lt;br /&gt;1)weblogic.ldap.EmbeddedLDAPException: Empty initial replica&lt;br /&gt;&lt;br /&gt;This issue, I am still not sure why it happens, but with proper restarts it gets away.&lt;br /&gt;&lt;br /&gt;2)com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for WSRPIdentityAsserter is not specified..&lt;br /&gt;&lt;br /&gt;This issue was a big issue while starting the managed servers from nodemanager, what I saw was the managed servers could be started from prompt using startManagedServer scripts. While strting using script it starts in Development mode, uses slightly different Java arguments, and while starting from nodemanager it uses production mode. One of the arguments ALTERNATE_TYPES_DIRECTORY could cause this - see &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=4378456"&gt;this&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also in nodemanager.properties - there is a property called StartScriptenabled, setting that to true also might help.&lt;br /&gt;&lt;br /&gt;I am not sure how the domain/ servers and the nodemanager work together however all these issues are due to improper path settings.&lt;br /&gt;&lt;br /&gt;3)java.io.IOException: Executable /app/bea/wlp1032/user_projects/domains/f1domain_prod/common/nodemanager/bin/startWebLogic.sh does not exist&lt;br /&gt;&lt;br /&gt;Again this one another nodemanger issue, while enrolling a remote server in node manager, it creates the server under domain/common/nodemanger instead of domain/servers - and the start scripts are not there. I am yet to find what’s the correct way to avoid these.&lt;br /&gt;&lt;br /&gt;4)Caused By: weblogic.common.ResourceException: Failed to bind remote object (ClusterableRemoteRef(8770601822249760121S:amrndhl206.pfizer.com:f1domain_prod:AdminServer_prod null)/294  [weblogic.jdbc.common.internal.RemoteDataSource]) to replica aware stub at &lt;br /&gt;&lt;br /&gt;This was a issues with setting up datasources for RAC db, it needs all JNDI names to be unique, see &lt;a href="http://kr.forums.oracle.com/forums/thread.jspa?threadID=1080430&amp;tstart=1"&gt;this&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5) Connection reset Exception encountered while communicating with this node manager:&lt;br /&gt;Nodemanger unreachable&lt;br /&gt;&lt;br /&gt;This was a issue with setting up remote weblogic managed servers, there are wlst commands to enroll remote servers using nmEnroll(), this resolves this issue, however it may cause issues while startup if not done properly, steps &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=2965779"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also I installed webcenter for adf and spaces development, It is another product on weblogic, some interesting stuff, more on this later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3141306437379529615?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3141306437379529615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3141306437379529615' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3141306437379529615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3141306437379529615'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/07/more-weblogic.html' title='more Weblogic'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3937745555599508329</id><published>2010-05-16T23:03:00.000-07:00</published><updated>2010-06-02T03:48:39.508-07:00</updated><title type='text'>Java Clients for Workflow services</title><content type='html'>You can build clients for workflow services using the APIs exposed by the workflow service. The APIs enable clients to communicate with the workflow service using local and remote EJBs, SOAP, and HTTP. Worklistapp is one such Client which uses the local EJBs to access the services. When we access worklfow services from bpel it uses the WSIF bindings which is nothing but native Java wrapped as WSDL. From any Java client code we can use either Remote or SOAP client types.&lt;br /&gt;&lt;br /&gt;Good example from Oracle is &lt;a href="http://download-west.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/worklist.htm#CIHGEABG"&gt;here&lt;/a&gt;, however this is for OC4J based, for weblgic there will be slight changes in the wf_client_config.xml and the JAR files. In wf_client_config.xml we can use t3:// instead of ormi and weblogic.jndi.WLInitialContextFactory. For JAR files better to put all the ones mentioned also in specific order, a good discussion &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=491828"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another useful link &lt;a href="http://technology.amis.nl/blog/1496/invoking-bpel-worklist-api-from-remote-server-with-java"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;API Java DOC rerference &lt;a href="http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28985/toc.htm"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Very useful discussion here if you are getting Nullpointer while trying to update task outcomes obtained using ITaskQueryService &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=462976"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;update-2/june/10&lt;br /&gt;While using the java client code from portal, for a logged in user, we were getting &lt;br /&gt;java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[dasha&lt;br /&gt;02, BusinessUnitController, SoaGroup]&lt;br /&gt;        at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)&lt;br /&gt;        at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef&lt;br /&gt;.java:348)&lt;br /&gt;        at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef&lt;br /&gt;.java:259)&lt;br /&gt;It turned out, the portal server and soa server weblogic domains needed to be enabled for global trust. And it worked by setting same credential at the Domain/Securty/Advanced page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3937745555599508329?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3937745555599508329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3937745555599508329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3937745555599508329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3937745555599508329'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/05/java-clients-for-workflow-services.html' title='Java Clients for Workflow services'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4489806454063130683</id><published>2010-05-06T23:33:00.000-07:00</published><updated>2010-05-16T23:13:21.993-07:00</updated><title type='text'>Weblogic Custom-Authenticator</title><content type='html'>While creating the SSO solution between weblogic portal server and soa server, we used the OAM/Webgate approach, very well explained &lt;a href="http://talkidentity.blogspot.com/2010/02/integrating-oracle-access-manager-with.html"&gt;here &lt;/a&gt;and &lt;a href="http://fusionsecurity.blogspot.com/2010/01/integrating-oracle-access-manager-oam.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However we realized that integrating with webgate was not enough, the user has to be authenticate in the weblogic container also, in order that different deployed web applications can use the same container authentication/authorization services.&lt;br /&gt;&lt;br /&gt;Interesting posts on this &lt;a href="http://fusionsecurity.blogspot.com/2010/01/worlds-most-dangerous-weblogic-identity.html"&gt;here &lt;/a&gt;and &lt;a href="http://peterlaird.blogspot.com/2007/01/implementing-single-sign-on-sso-with.html"&gt;here &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The options for us was to use SSPI connector to OAM, however we couldn't use that as the enterprise-wide OAM deployment was not supporting it yet. &lt;br /&gt;&lt;br /&gt;So the other option was to use weblogic custom identity assertion and authentication. To understand identity assertion good post &lt;a href="http://weblogic.sys-con.com/node/48219"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;so we got the sample code from &lt;a href="http://fusionsecurity.blogspot.com/2009/07/building-custom-security-providers-with.html "&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After making necessary code changes to read our header variable (Please check the readme.pdf to build/deploy the jar), we were ready to go. We didn't use token or cookie decryption and for authentication we used a LDAP authenticator. This is a bit of duplication on authentication but we need the roles/groups that the user belongs. And for creating a LDAP authenticator very good entry &lt;a href="http://blogs.oracle.com/jamesbayer/2007/12/using_ldap_as_a_userstore_for.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next is to build the portal and see how it performs with these users/groups.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;update:may17&lt;br /&gt;I had to SSO ruleauthor applictaion which is on SOA10.1.3.4/Weblogic9.2. So easiest way to SSO weblogic applications was to use the Identity assertion. The Default weblogic identity assertion would work fine, only requirement was to use &lt;login:config&gt; as CLIENT-CERT in the web.xml for the ruleauthor. However I had to do SSO with the OAM/WebGate infrastructure. So as per the OAM policy we configured the ruleauthor URL, and when its accessed through the Apache OAM sends the header variables and obSSOCookie, Using a custom identity asserter built using as described above, we could SSO ruleauthor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4489806454063130683?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4489806454063130683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4489806454063130683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4489806454063130683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4489806454063130683'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/05/weblogic-custom-authenticator.html' title='Weblogic Custom-Authenticator'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-8874788452782354859</id><published>2010-04-27T07:52:00.000-07:00</published><updated>2010-04-29T02:14:01.208-07:00</updated><title type='text'>Worklistapp, Weblogic, Webgate, LDAP, SSO</title><content type='html'>All the items in my subject were a good challenge for me over last month, finally some success and so the blog-post. Generally all worklistapp customization documents which is &lt;a href="http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/worklist.htm#BHACDDFJ"&gt;here&lt;/a&gt; is on OC4J, only weblogic documentaion I could find is &lt;a href="http://download.oracle.com/docs/cd/E10291_01/doc.1013/e11848/title.htm"&gt;this&lt;/a&gt;. I had to get the worklistapp do authentication against LDAP and SSO with a weblogic portal application.&lt;br /&gt;&lt;br /&gt;Now first some basics, worklistapp works out-of-box with JAZN (even with the SOA10.1.3.4 on Weblogic9.2). JAZN is a XML-file based user/group repository, this cannot work with any enterprise-wide deployment. All enterprises have centralized LDAP/OAM (Oracle Access Manager) for managing all their user identities. Now to change worklistapp to use LDAP was actually easy following &lt;a href="http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/service_config.htm"&gt;this&lt;/a&gt;, only catch was metalink ID[729163.1], you need to make sure is_config.xml have all the correct attributes. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next challenge was installing webgate on our 64bit linux, I tried with 64-bit webgate, correct libraries but the following error persisted -&lt;br /&gt;httpd: Syntax error on line 425 of /app/soatst/apache2.2.6/conf/httpd.conf: API module structure 'obWebgateModule' in file /app/soatst/netpoint05/webgate/access/oblix/apps/webgate/bin/webgate.so is garbled - expected signature 41503232 but saw 41503230 - perhaps this is not an Apache module DSO, or was compiled for a different Apache version?&lt;br /&gt;&lt;br /&gt;Finally I got the solution in metlaink ID [982922.1], which basically suggested compiling the apache in a 32 bit linux and moving the binaries, and then use 32bit webgate, and that just worked perfect. Not to forget the target 64bit linux cannot be a lower Linux version than the source.&lt;br /&gt;&lt;br /&gt;Doing SSO was the last and final challenge, it took a good amount of discussion as how SSO works with webgate/OAM. We had a portal app running on a portal server, and worklistapp running on a different soa server both weblogic. We fronted both servers with webgate agent/apache, so when any protected URL is accessed webgate pushed the Login page in the portal, provided with userid/password, webgate did authentication, and set an obSSOCoockie and some header variables in the request. Same with SSO, when the SSOed application URL is accessed, webgate provided the same header variables and Cookie.&lt;br /&gt;&lt;br /&gt;For worklistapp SSO, we had to deploy the customworklistapp, the code comes with the samples, it has to be built and deployed. Again to build and deploy in weblogic, one major error we faced was the local ejb references, which got resolved by using hot deployment of the customworklist.war directly under /soaApps/BPELPM and making an entry in META-INF/application.xml. Looking at the already deployed worklistapp.war helped package the customworklist.war with the weblogic.xml and weblogic-application.xml.&lt;br /&gt;&lt;br /&gt;Anyway, to make SSO work, Login.Java required to be changed. The change I did is to introduce a usercn that I read from the header and use authenticate on behalf of admin user which required only the userid, which I could get from the header variables set by Webgate.&lt;br /&gt;&lt;br /&gt;Using SSPI or SAML was not possible as the authentication was directly with LDAP and not through the weblogic realm. So for Identity assertions probably a custom authenticator could be required, need to explore that. good article &lt;a href="http://fusionsecurity.blogspot.com/2010/01/worlds-most-dangerous-weblogic-identity.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-8874788452782354859?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/8874788452782354859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=8874788452782354859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/8874788452782354859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/8874788452782354859'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/04/worklistapp-weblogic-webgate-ldap-sso.html' title='Worklistapp, Weblogic, Webgate, LDAP, SSO'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-2303146538393812867</id><published>2010-03-13T20:42:00.000-08:00</published><updated>2010-10-01T02:43:41.652-07:00</updated><title type='text'>Business Rules, WebDAV</title><content type='html'>I am working on a weblogic portal integration with workflow/rules (SOA10.1.3.4 on weblogic9.2) project, so good opportunity to deep-dive into workflow/rules in bpel engine. The first candidate was rules. Oracle business rules has two important parts 1)rule author 2)decisionservice. More details about rules here in the &lt;a href="http://download-uk.oracle.com/docs/cd/B31017_01/web.1013/b28965.pdf"&gt;Userguide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I faced 2 distinct challenges&lt;br /&gt;&lt;br /&gt;1) to use WebDAV repository, as using files repository was not the solution for production/clusters. To set up WebDAV on Apache2.2.15, &lt;a href="http://httpd.apache.org/docs/2.0/install.html"&gt;here &lt;/a&gt;is a link to how to install. Take special care to enable all the six modules webDAV needs (./configure --prefix /app/soadev/apache --enable-dav=shared --enable-dav-fs=shared --enable-setenvif=shared --enable-alias=shared --enable-auth-digest=shared  --enable-authn-file=shared). &lt;a href="http://tldp.org/HOWTO/Apache-WebDAV-LDAP-HOWTO/config-webdav.html"&gt;here &lt;/a&gt;is a good link to test WebDAV. Make sure you assign the user.group properly for /var and /uploads folders. In my case it was 'daemon'. I used auth type digest, and no SSL.&lt;br /&gt;&lt;br /&gt;Once WebDav was set up, you can test it from browser (open with web folder option) to be able to write or not, From ruleauthor as well it connects, and you can create/import dictionaries.&lt;br /&gt;&lt;br /&gt;2)The other challenge is to deploy the decision services after proper changes, for weblogic9.2 there are special instructions &lt;a href="http://download.oracle.com/docs/cd/E14101_01/doc.1013/e15828/postinstall.htm#CJHBCGFF"&gt;here&lt;/a&gt;. Also need to make sure to correct the context-root in application.xml, as I had multiple rules in multiple rule-sets, one decisionservice for rule-set was deployed and the context-root has to be modified to be specific for that ear.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After making sure some of these challenges, it worked just perfect. Next would be to look at workflow integration with rules.&lt;br /&gt;&lt;br /&gt;update:Apr27&lt;br /&gt;good &lt;a href="http://kaukovuo.blogspot.com/2008/03/switching-bpel-process-file-based.html"&gt;article &lt;/a&gt;on migarting between file based and Webdav based repositories&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-2303146538393812867?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/2303146538393812867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=2303146538393812867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2303146538393812867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2303146538393812867'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/03/business-rules-webdav.html' title='Business Rules, WebDAV'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5727486778456213657</id><published>2010-03-06T05:43:00.000-08:00</published><updated>2010-03-06T06:06:29.974-08:00</updated><title type='text'>SOA Projects</title><content type='html'>I could have named this post as SOA entry points, basically I wanted to list down the different flavors of SOA projects, which also indicate the different SOA Entry points.&lt;br /&gt;&lt;br /&gt;SOA Entry points and the product line -&lt;br /&gt;&lt;br /&gt;1.Process Automation - BPA / BPM / BPEL / ESB / Rules / Workflow&lt;br /&gt;2.EAI - BPEL / ESB / AIA&lt;br /&gt;3.B2B - B2B / BPEL / ESB&lt;br /&gt;4.Process Portal - Portal / BPEL / ESB / Rules / Workflow&lt;br /&gt;5.MDM - BPEL / ESB / MDM&lt;br /&gt;6.BAM - BAM / BPEL&lt;br /&gt;7.GOV - OER / OSR / BPEL / AIA&lt;br /&gt;8.Data Services - ODI / OSB / BPEL&lt;br /&gt;9.Appgrid/XTP - Weblogic / Coherence / BPEL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Looks like BPEL is the common thread, however with the other product mix the Solution Offering gets very unique and different. The other product OSB can be used in many of these projects. So while doing SOA projects, one should keep cognizance of the kind-of SOA project it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5727486778456213657?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5727486778456213657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5727486778456213657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5727486778456213657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5727486778456213657'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/03/soa-projects.html' title='SOA Projects'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3651032444803179005</id><published>2010-02-25T00:00:00.000-08:00</published><updated>2010-02-25T00:09:06.184-08:00</updated><title type='text'>SOA 10.1.3.4 on Weblogic 9.2</title><content type='html'>I had installed SOA10.1.3.4 on Weblogic9.2 on Windows platform in 2008, when it was out first time. I had to install it on linux (single node) few days back, and it was simply perfect. I got it up and running in less than 2days. &lt;a href="http://theoracleway.blogspot.com/2010/01/steps-to-install-oracle-soa-10134-on.html"&gt;This &lt;/a&gt;blog entry is of good help. Also since I had a 11g DB, &lt;a href="http://blogs.oracle.com/reynolds/2009/05/using_11g_database_with_soa_su.html"&gt;this &lt;/a&gt;entry is crucial. &lt;br /&gt;&lt;br /&gt;I was stuck at one point while applying a patch to SOA10.1.3.4, and was getting opatch error - ERROR: "The Oracle Home does not meet OUI version requirement. OPatch failed with error code 73" [ID 729218.1]. This got resolved by using the 10.1 version of opatch patch#6880880.&lt;br /&gt;&lt;br /&gt;It will be interesting to upgrade customer platforms running on 10g (10.1.3.4) to 10g (10.1.3.5) / weblogic10.3 or to 11g. The installation for sure is much simplified.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3651032444803179005?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3651032444803179005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3651032444803179005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3651032444803179005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3651032444803179005'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/02/soa-10134-on-weblogic-92.html' title='SOA 10.1.3.4 on Weblogic 9.2'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3346100352183492204</id><published>2010-01-22T02:48:00.000-08:00</published><updated>2010-01-22T03:25:35.619-08:00</updated><title type='text'>SOA 11g FOD (Fusion Order Demo)</title><content type='html'>FOD or Fusion Order Demo is the platform to learn any new Oracle product, I had used it while learning 10gR3, also AIA2.0, and now for 11g. I downloaded the FOD from &lt;a href="http://www.oracle.com/technology/products/jdev/samples/fod/index.html"&gt;here&lt;/a&gt;, the packaged deployment scripts were great and it just went through besides few hick-ups, tips &lt;a href="http://blogs.oracle.com/soabpm/2009/11/fusion_order_demo_-_tips_trick.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However I couldn't execute the Order-booking demo end to end (some or other errors crop up oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation, or Caused By: javax.xml.soap.SOAPException: Message send failed: Connection refused), I could run the composite and played around em to learn the essential new concepts.&lt;br /&gt;&lt;br /&gt;So from 10gR3(weblogic-based), 11g is much different and many important changes, let me try summarize some&lt;br /&gt;&lt;br /&gt;1. Earlier we were creating 3 schema (orabpel, oraesb, oraowsm), now it’s more - mds, soainfra, bam and user messaging. MDS is the new thing, which is the metadata storage for all composites.&lt;br /&gt;&lt;br /&gt;2. The terminology has changed, In one soa_server there are 4 service engines bpel, mediator (earlier esb), workflow and rules. The same server also has b2b, owsm. The bam server is separate and that’s new Java version.&lt;br /&gt;&lt;br /&gt;3. The em is completely new, its shows all the composites, there instances, traces, component traces etc. I couldn't find test screens for components, its there at composite level. Admin stuff by right clicking on soa_infra.&lt;br /&gt;&lt;br /&gt;4. Of course the whole idea of composite is new, and a composite has 3 parts service, components and References. So a lot of new config files, deployment fils etc. Complete new composite editor in JDev11g.&lt;br /&gt;&lt;br /&gt;5. New frameworks around EDN (even driven networks), SDO (Service Data Objects), Spring etc. to make coding a different experience.&lt;br /&gt;&lt;br /&gt;More details as and when I work on them, for now 11g looks just great!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3346100352183492204?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3346100352183492204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3346100352183492204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3346100352183492204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3346100352183492204'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/01/soa-11g-fod-fusion-order-demo.html' title='SOA 11g FOD (Fusion Order Demo)'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3413698045366173879</id><published>2010-01-12T20:23:00.000-08:00</published><updated>2010-05-20T01:11:50.376-07:00</updated><title type='text'>SOA 11g install</title><content type='html'>finally I got some time to look at 11g and the first set of challenges were to 1) set Jdev 11g and 2) to install SOA 11g on Linux&lt;br /&gt;&lt;br /&gt;1) For Jdev we need 11.1.1.2.0 above to be able to see SOA projects, After installing JDev the SOA composite editor can be installed using -&gt; help -&gt; check for updates&lt;br /&gt;&lt;br /&gt;2) Installing 11g on Linux is covered in couple of blogs one &lt;a href="http://onlineappsdba.com/index.php/2009/07/08/oracle-fusion-middleware-soa-suite-11g-r1-installation/"&gt;here&lt;/a&gt;, official site &lt;a href="http://download.oracle.com/docs/cd/E12839_01/doc.1111/e13925/toc.htm"&gt;here&lt;/a&gt;, broadly 5 steps&lt;br /&gt;a) installing DB - 11.1.0.7 (linux_11gR1_database_1013.zip and patch 6890831)&lt;br /&gt;b) using RCU for SOA schemas (ofm_rcu_linux_11.1.1.2.0_disk1_1of1.zip)&lt;br /&gt;c) installing weblogic 10.3.2.0 (ope111130_wls1032_linux32.bin) using bundled Sun JDK&lt;br /&gt;d) installing SOA 11g (ofm_soa_generic_11.1.1.2.0_disk1_1of1.zip)&lt;br /&gt;e) configuring SOA for Weblogic&lt;br /&gt;&lt;br /&gt;Good thing is this install is much easier that 10gR3 on weblogic9.2 as all configurations are wizard based.&lt;br /&gt;&lt;br /&gt;For DB install all the steps are covered &lt;a href="http://www.oracle.com/technology/pub/articles/smiley-11gr1-install.html"&gt;here&lt;/a&gt; - make sure all steps r followed also as in patch 6890831. For additional linux packages &lt;a href="http://public-yum.oracle.com/"&gt;yum &lt;/a&gt;can be used. While dbconsole stop/start there will be an OC4J Configuration errror, the solutions is &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=3943908"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For weblogic/soa set up create a Middleware directory, chowner to the oracle user created as part of db install, as OUI will not work with root user.&lt;br /&gt;&lt;br /&gt;While starting weblogic admin server if you see following error - your weblogic version is not proper, use 10.3.2.0&lt;br /&gt;&lt;br /&gt;Failed to initialize the application 'em' due to error java.lang.NoSuchMethodError: weblogic.application.ApplicationLifecycleEvent.getDeploymentOperation()Lweblogic/application/DeploymentOperationType;.java.lang.NoSuchMethodError: weblogic.application.ApplicationLifecycleEvent.getDeploymentOperation()Lweblogic/application/DeploymentOperationType&lt;br /&gt;&lt;br /&gt;While starting managed serevrs if you see errors like -&lt;br /&gt;BEA-000386 Server subsystem failed. Reason: java.lang.NullPointerExceptionjava.lang.NullPointerException at weblogic.management.bootstrap.BootStrap.find(BootStrap.java:473)&lt;br /&gt;or&lt;br /&gt;BEA-000286 Failed to invoke startup class "JPS Startup Class", java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsStartupClassjava.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsStartupClass at java.lang.Class.forName0(Native Method)&lt;br /&gt;&lt;br /&gt;start the servers as root user and best way to start the managed servers is from the admin console, and for that start nodemanager, also make sure to modify nodemanger.properties under wlserver_10.3/common/nodemanager/ with StartScriptEnabled to true.&lt;br /&gt;&lt;br /&gt;Next is to understand the big-bang changes in 11g and appreciate the value it has to offer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3413698045366173879?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3413698045366173879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3413698045366173879' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3413698045366173879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3413698045366173879'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2010/01/soa-11g-install.html' title='SOA 11g install'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4759529768999231325</id><published>2009-12-18T20:58:00.000-08:00</published><updated>2009-12-21T00:15:27.585-08:00</updated><title type='text'>bpel tuning, best practices and troubleshooting</title><content type='html'>Last week we went to production on SOA10.1.3.4 on Weblogic9.2, 3 node cluster, with lot of interfaces, and It was a very good exercise to prepare the servers, here are some references, if you read through all of them then you can avoid most of the issues ;)&lt;br /&gt;&lt;br /&gt;1. tuning&lt;br /&gt;check the apache-weblogic plugin parameters &lt;a href="http://download.oracle.com/docs/cd/E13222_01/wls/docs81/plugins/plugin_params.html"&gt;here&lt;/a&gt;&lt;br /&gt;Oracle 10g tuning guide &lt;a href="http://download.oracle.com/docs/cd/B31017_01/core.1013/b28942/toc.htm"&gt;here &lt;/a&gt;(however lot of info here doesn't apply to weblogic)&lt;br /&gt;tuning bpel quartz scheduler mentioned &lt;a href="http://orasoa.blogspot.com/2007/01/tuning-bpel-in-nutshell.html"&gt;here&lt;/a&gt;&lt;br /&gt;weblogic tuning guide &lt;a href="http://download.oracle.com/docs/cd/E13222_01/wls/docs92/perform/index.html"&gt;here&lt;/a&gt;&lt;br /&gt;linux parameters &lt;a href="http://www.frozentux.net/ipsysctl-tutorial/ipsysctl-tutorial.html"&gt;here&lt;/a&gt; (some good benchmark data &lt;a href="http://www.spec.org/jAppServer2004/results/jAppServer2004.html"&gt;here&lt;/a&gt;)&lt;br /&gt;JVM parameters &lt;a href="http://puchaanirudh.blogspot.com/2009/01/jvm-tuning-for-soa-suite-applications.html"&gt;here&lt;/a&gt; (JVM Proxy settings &lt;a href="http://ws.apache.org/axis/java/client-side-axis.html#NetworkConfiguration"&gt;here&lt;/a&gt;)&lt;br /&gt;dehydation db tuning already covered as part of bpel tuning, however make sure DBAs tune processes, sessions, sga space, tablespace properly&lt;br /&gt;&lt;br /&gt;2. best practices&lt;br /&gt;if you have heavy batch jobs make sure you understand optSoapShortcut in cluster scenario, pls check &lt;a href="http://blogs.oracle.com/reynolds/2009/10/what_i_learnt_about_clustering.html"&gt;this&lt;/a&gt;&lt;br /&gt;metalink IDs for esb-bpel communication optimizations (780822.1 (esb-bpel) 726490.1 (bpel-esb))&lt;br /&gt;bpel performance best practices &lt;a href="http://download.oracle.com/technology/tech/soa/soa_best_practices_1013x_drop3.pdf"&gt;here&lt;/a&gt;&lt;br /&gt;esb performance best practices &lt;a href="http://www.oracle.com/technology/products/integration/esb/files/oracleesbperformancebestpractices.pdf"&gt;here&lt;/a&gt; , one more &lt;a href="http://www.oracle.com/technology/products/integration/esb/files/esb-transactions-errorhandling.pdf"&gt;ppt&lt;/a&gt;, one &lt;a href="http://www.oracle.com/technology/products/integration/esb/files/oracleesb10-1-3performanceguide.pdf"&gt;more&lt;/a&gt;&lt;br /&gt;a must read on bpel-adapter Integration &lt;a href="http://iasdocs.us.oracle.com/iasdl/101202fulldoc/integrate.1012/b14058/intgn.htm#CJHGAHGJ"&gt;here&lt;/a&gt; and optimizations metalink id [565944.1 and 730580.1]&lt;br /&gt;&lt;br /&gt;3. troubleshooting&lt;br /&gt;&lt;a href="http://www.tagtraum.com/gcviewer-vmflags.html"&gt;gcviewer&lt;/a&gt; to monitor gc memory issues&lt;br /&gt;threaddump can be created on weblogic console, also can be created by kill -QUIT to monitor socket, thread issues&lt;br /&gt;ORA-600 Errors Metalink ID [754336.1,18485.1, 333338.1 and 460244.1]&lt;br /&gt;Cannot deserialize DOM element" Error When Running a BPEL Process [ID 559261.1]&lt;br /&gt;FOTY0001: TYPE Error Using ORA:PARSEESCAPEDXML() and "&amp;amp;" in Input [ID 861637.1]&lt;br /&gt;ORABPEL-11802 Error Calling Stored Procedure Using a Database Adapter [ID 887736.1]&lt;br /&gt;BPEL waits well after expiry time set by wait or retry by fault policy[ID: 561172.1]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4759529768999231325?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4759529768999231325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4759529768999231325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4759529768999231325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4759529768999231325'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/12/tuning-best-practices-and-trouble.html' title='bpel tuning, best practices and troubleshooting'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4862275743529038973</id><published>2009-11-30T21:56:00.000-08:00</published><updated>2010-02-11T21:03:04.925-08:00</updated><title type='text'>Careers in SOA</title><content type='html'>As the erstwhile EAI jobs become SOA jobs, it’s interesting to see how many dimensions are there to this job and how to enhance one's skill to be on top of it.&lt;br /&gt;&lt;br /&gt;Technical (Type 1-4) - It is also possible that one person might have to be involved in all these types (also to be occupied through-out the project life-cycle), so one has to prepare for it. Also some of the work is product specific roles. By the way, learning the technology might not guarantee success, as they say attitude is the key :)&lt;br /&gt;&lt;br /&gt;Work-Type1- This goes to the folks good in linux/unix, mostly the unix admin or dba - they can help in installing all the software (linux, database, app servers, jdk, etc.), RAC install, DR setup, backup activities, code migration, system upgrades, applying patches. These people can grow to be Infrastructure/Data Architects or Cloud Architects :)&lt;br /&gt;&lt;br /&gt;Work-Type2- This goes to folks good in JVM, App Server, SOA Server, product architecture, call them 'Specialists' - they can configure the SOA/App servers, clusters, tune them as required, monitor system health, read log file, create SRs, finding patches, system sizing, create solutions for a product stack etc. These people can grow to be Technical/Solution Architects.&lt;br /&gt;&lt;br /&gt;Work-Type3- This goes to the folks good in Java, XSLT, JMS, EJBs, transactions, SQL, PL/SQL, BPEL API, Adapters, they are the Developers - (Here I am not including the skills which are more primary in a E2.0 space including JSF, Spring, Hibernate, Struts etc., however a Developer may have to work on some of these if the project demands) . This group can grow to be Application/Solution Architects.&lt;br /&gt;&lt;br /&gt;Work-Type4- Lets say this is the group of Architects, who take care governance aspects of the organization, including documentations as per Enterprise standards, coming up with the physical/logical architectures, enterprise security, hardware provisioning, roadmaps, big picture etc. This group is the Enterprise Architects.&lt;br /&gt;&lt;br /&gt;Work-Type5- This is the group of project managers, sponsors who take care of planning, budgeting/financials, status tracking, business users reporting etc. This group is the Managers/Leaders of organizations.&lt;br /&gt;&lt;br /&gt;I have not included the sales, testing, business analyst, training roles in these categories. Also assumed all role types know SOA and its principles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4862275743529038973?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4862275743529038973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4862275743529038973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4862275743529038973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4862275743529038973'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/11/careers-in-soa.html' title='Careers in SOA'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-2376351321789945326</id><published>2009-11-02T03:52:00.000-08:00</published><updated>2009-12-07T04:47:01.587-08:00</updated><title type='text'>Email CSV File As Attachment</title><content type='html'>I had to create a bpel, which gets data from couple of db tables, and create a csv file and send it as email attachment. I bumped into couple of interesting challenges, luckily google is always there to help :), let me capture some of the lessons learnt.&lt;br /&gt;&lt;br /&gt;1. creating a csv file in append mode&lt;br /&gt;2. setting/getting filename in the fileadapter&lt;br /&gt;3. handling multiple records, nillable fields in nxsd&lt;br /&gt;4. interesting xslt, xpath functions&lt;br /&gt;5. sending email with attachment&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creating a csv file using file adapter was quite straightforward, you have to get a sample csv file that you want to crate and give that to the fileadapter wizard to create an &lt;a href="http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28994/nfb.htm"&gt;nxsd &lt;/a&gt;(native xsd). more on it creating csv file &lt;a href="http://www.oracle.com/technology/architect/soa-suite-series/wli_file_control_oracle_file_adapter_04.html"&gt;here&lt;/a&gt; reading csv file &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=838611"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As the file was created in append mode (how-to &lt;a href="http://www.customware.net/repository/display/FUSION/File+Adapter+-+Appending"&gt;here&lt;/a&gt;), the file name has to be unique, it had to be set by creating a fileadapter header variable and passing it in invoke. If the file name is created by fileadapter, its name can be obtained as prescribed in technotes 10.1.3.3 by adding an output of header type to the write operation.&lt;br /&gt;&lt;br /&gt;I had to write a header to the file, and fileadpater supports multiple record types, however all these record types need a &lt;a href="http://kr.forums.oracle.com/forums/thread.jspa?threadID=503070"&gt;condition &lt;/a&gt;Value for each record type to follow, which was not possible to define for data w/o starting with any fixed value, so I had to abandon the idea of using records, I printed the header separately as all my fields were string type. So the nxsd can be tweaked to change datatypes or making fields as optional (nillable=true). more &lt;a href="http://blogs.oracle.com/rammenon/2007/11/specifying_null_content_in_you.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;While working thru transformations came across very effective xslt functions like translate, which replaces any specific character in the string with any other value. function create-delimited-string creates a delimited string out of a particular node in a repeating XML structure.&lt;br /&gt;&lt;br /&gt;Finally sending the file as email attachment, bpel sample sendEMailWithAttchment clearly shows how to do it, however I faced two challenges. One was if the ora:readFile cannot find the file it will throw XSLT error (&lt;a href="http://soa-howto.blogspot.com/2008/06/orabpel-09500.html"&gt;here&lt;/a&gt; ), which is difficult to debug. And some reason my text/html data was overwriting the csv data, for which I changed the order or data setting, setting csv first and then text/html.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;update-Nov10&lt;/p&gt;&lt;p&gt;I could not use the translate method to replace newline characters, the sql replace(col,chr(10),null) helped there.&lt;/p&gt;&lt;p&gt;Also if you get javax.xml.xpath.XPathExpressionException: FOTY0001: type error for nothing wrong in XSLT, its because you edited the XSLT even before bpel loaded the parts in the Xform activity, so always wait till the parts load before clicking edit for the XSLT.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Update Dec-7&lt;/p&gt;&lt;p&gt;In order to make the directory to which we write the file as dynamic, we can edit the Outboundheader xsd to add 'directory' there after fileName. And send te directory name as a preference to the bpel at runtime.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-2376351321789945326?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/2376351321789945326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=2376351321789945326' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2376351321789945326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2376351321789945326'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/11/email-csv-file-as-attachment.html' title='Email CSV File As Attachment'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4733411902449940857</id><published>2009-10-20T22:13:00.000-07:00</published><updated>2009-10-26T22:35:07.158-07:00</updated><title type='text'>transaction=participate</title><content type='html'>The first thing to note is global transactions will only work among sync processes, so an async bpel/esb cannot participate in a global transaction, so the way to make an async process sync is set delievryPersistPolicy to off.immediate.&lt;br /&gt;&lt;br /&gt;Now partnerlinks in sync processes participate in global tx in 2 ways&lt;br /&gt;1. set transaction=participate at the partnerlink (child BPEL or esb call) level&lt;br /&gt;2. set transaction=participate at global level under &lt;configurations&gt;in bpel.xml (It seems default in 10.1.3.4) - This is for all adapter calls (DBAdapter, AQ, JMS etc.) to participate in global tx&lt;br /&gt;&lt;br /&gt;Now for the global tx to work, you have to use datasource with global tx enabled and using an XA driver(may not be true XA).&lt;br /&gt;&lt;br /&gt;So when there is error (bindingfault) from dbadapter calls, it will mark the tx for rollback, but it will actually not rollback.&lt;br /&gt;&lt;br /&gt;What we have seen is you have to set handleTopLevelFault=false in the configurations/bpel.xml so that rollback works. The other approach is to throw rollback exception in catch-all block.&lt;br /&gt;&lt;br /&gt;The following seems to be best-way for global tx handling (10.1.3.4 on weblogic 9.2)&lt;br /&gt;1. XA driver with Global tx enabled&lt;br /&gt;2. in catch-all throwing rollback exception&lt;br /&gt;&lt;br /&gt;This is rolling back the db inserts, as well dehydrating the bpel.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6666;"&gt;&lt;span style="color:#333333;"&gt;As bpel dehydration is happening, it seems it’s happening in a separate thread/tx (need to check if its a supported feature in 10.1.3.4).&lt;/span&gt; However we also saw the instance getting into recover(invoke) while using handleTopLevelFault=false.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;a good discussion in OTN &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=487703"&gt;here &lt;/a&gt;and &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=847099"&gt;here&lt;/a&gt;&lt;br /&gt;some good bpel tx details &lt;a href="http://blogs.oracle.com/reynolds/2008/09/transaction_processing_in_bpel.html"&gt;here &lt;/a&gt;and &lt;a href="http://www.oracle.com/technology/architect/soa-suite-series/wli-bpel-transactions.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;update on 23/10&lt;br /&gt;10.1.3.4 does support audit in a seprate thread in async mode as per release notes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4733411902449940857?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4733411902449940857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4733411902449940857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4733411902449940857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4733411902449940857'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/10/transactionparticipate.html' title='transaction=participate'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5780258770077246575</id><published>2009-10-12T02:15:00.000-07:00</published><updated>2009-10-12T02:29:25.396-07:00</updated><title type='text'>ORABPEL-11825Attempt to use an unsupported database platform.</title><content type='html'>&lt;p&gt;If you get this error -&lt;/p&gt;&lt;p&gt;WSIF JCA Execute of operation 'T' failed due to: Attempt to use an unsupported database platform.Database platform is not supported: oracle.toplink.platform.database.DatabasePlatform; nested exception is: ORABPEL-11825Attempt to use an unsupported database platform.&lt;/p&gt;&lt;p&gt;Then DBAdpater configuration needs set the PlatformClassName, sample values&lt;/p&gt;&lt;ul&gt;&lt;li&gt;oracle.toplink.platform.database.Oracle9Platform&lt;/li&gt;&lt;li&gt;&lt;/n&gt;oracle.toplink.platform.database.DB2Platform&lt;/li&gt;&lt;li&gt;&lt;/n&gt;oracle.toplink.platform.database.SQLServerPlatform&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/n&gt;you can also take this value from the MCF property settings. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5780258770077246575?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5780258770077246575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5780258770077246575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5780258770077246575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5780258770077246575'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/10/orabpel-11825attempt-to-use-unsupported.html' title='ORABPEL-11825Attempt to use an unsupported database platform.'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-389877344200992241</id><published>2009-10-11T22:15:00.000-07:00</published><updated>2009-10-11T22:41:00.323-07:00</updated><title type='text'>Dynamic partnerlink</title><content type='html'>While crating EAI flows involving many bpels/esbs one common requirement is to be able to call some dynamic logic at run-time. For example say we have a set of requester and provider bpels, which transform the source-format to canonical and canonical to destination-format respectively. However we also have a requirement to do certain enrichment to the data if the source is A and some other enrichment if the source is B. since our requester bpel is common to both the sources we need to extend it in a manner that both the specific enrichment requirements for A and B are taken care while creating the canonical. So one-way to do this is to create source specific or "whatever" (which needs extension) specific bpels and call them from the common requester or provder bpels. And which bpel to call gets decided at run-time. This is a typical requirement for creating dynamic partnerlinks. This is covered in detail in &lt;a href="http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html"&gt;this&lt;/a&gt; article&lt;br /&gt;&lt;br /&gt;So lets say your master bpel is M and you need to call either A or B based on the source system. In order to create a dynamic link to A or B, roughly below are the steps&lt;br /&gt;1. A and B should be based on same wsdl/xsd&lt;br /&gt;2. In M we need to include this wsdl/xsd with an service endpoint url (this url doesn't matter as at runtime it will be replaced with actual url)&lt;br /&gt;3. Creating a variable of type EndpointReference - and set the following XML fragment&lt;br /&gt;[wsa:EndpointReference xmlns:wsa="&lt;a href="http://schemas.xmlsoap.org/ws/2003/03/addressing"&gt;http://schemas.xmlsoap.org/ws/2003/03/addressing&lt;/a&gt;"] [wsa:Address/][/wsa:EndpointReference]&lt;br /&gt;4. The actual address has to be obtained from somewhere, either from database or from a config file&lt;br /&gt;5. Once the actual address is obtained, set it to the EndpointReference address&lt;br /&gt;6. Assign the EndpointReefrence to the partnerlink directly&lt;br /&gt;&lt;br /&gt;Please refer to the article for sceenshots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-389877344200992241?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/389877344200992241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=389877344200992241' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/389877344200992241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/389877344200992241'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/10/bpel-extensibility.html' title='Dynamic partnerlink'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-7324420741125869502</id><published>2009-10-11T22:11:00.000-07:00</published><updated>2009-11-22T05:21:43.251-08:00</updated><title type='text'>JSM Cluster in Weblogic</title><content type='html'>When we had to deploy queues/topics in Weblogic cluster, there were two challenges, how to make the queues load balance and how to failover between nodes. Both the challenges are taken care by creating distributed queues (uniformly) and deploying to the jms servers in soa cluster (using a subdeployment module). For internal JMS clients like bpel both load-balance and failover are taken care by the server. However for external JMS clients (weblogic) we used provider url as t3://host1name,host2name:port to achieve HA and it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-7324420741125869502?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/7324420741125869502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=7324420741125869502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7324420741125869502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7324420741125869502'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/10/jsm-cluster-in-weblogic.html' title='JSM Cluster in Weblogic'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-6854399149190335913</id><published>2009-10-04T23:40:00.000-07:00</published><updated>2009-10-22T01:01:13.107-07:00</updated><title type='text'>Sync DBAdpater call time-out</title><content type='html'>While working on a real-time interface to sync receipts to Oracle EBS by using pl/sql apis, I got a sense that DBAdapter is probably the epicenter of all EAI/SOA work (not to forget the fileadapter). There is so much to the DBAdapter. We had to do two things. Firstly to create a DBAdpater partnerlink to call a custom pl/sql api to insert data to open interface tables, Secondly call another custom pl/sql api (which in tern calls a standard oracle api) to move the data from open interface tables to base tables.&lt;br /&gt;&lt;br /&gt;The partnerlink creation was quite straight forward using the wizard, we had the customary issues of recreating the partnerlinks again and again when the signature of the api was changing. Since the API had complex data types such as record type and table type the wizard created wrapper packages for the bpel. While recreating we had to take care of the name and namespaces, so that it doesn’t conflict with the mappings we had created. One thing to take care was the order in mapping has to be same as mapping in the XSD. We didn’t use DetectOmission or DirectSQL optimizations in these calls as these were api calls and not direct db inserts.&lt;br /&gt;&lt;br /&gt;One major challenge we faced was when the second api was taking too long to respond and the bpel instance went into manual Recover(invokes). In the logs we saw timeout errors for more than 120 secs. So We increased the time-out based on &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=543701"&gt;this post &lt;/a&gt;also &lt;a href="http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/app_trblshoot.htm"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This improved the issue, but we still were not getting bpel time-out errors the instance was going into recovery. As it turned out timeout properties on partnerlink only works for soap calls, as suggested &lt;a href="http://oraclesoa.blogspot.com/2008/04/why-timeout-property-is-not-working.html"&gt;here&lt;/a&gt;. The next option is to set the DBStoredProcedureInteractionSpec property &lt;span style="color:#ff6666;"&gt;QueryTimeout (set this in your adapter WSDL, jca operation) this option works for store proc calls in 10.1.3.4, it didn't work for me.&lt;/span&gt; We also tried to set deliverypersistpolicy to off.immeidate for the partnerlink.&lt;br /&gt;&lt;br /&gt;However some optimizations on the Oracle API side like index creation, and process thread increases improved the performance form bpel drastically.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-6854399149190335913?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/6854399149190335913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=6854399149190335913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/6854399149190335913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/6854399149190335913'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/10/dbadapter.html' title='Sync DBAdpater call time-out'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-2794599418282740365</id><published>2009-09-06T22:51:00.000-07:00</published><updated>2009-10-22T02:29:09.894-07:00</updated><title type='text'>inside bpel pm</title><content type='html'>The most common question in bpel is what is sync vs async. And the answer is mostly sync is request-response in a blocking thread and async is non blocking one-way request with a callback later. From the bpel pm perspective the simple answer is sync is two-way invoke and async is one-way invoke. So if your operation has only [input] its async and if it has [input], [output] both then its sync.&lt;br /&gt;&lt;br /&gt;Now how does it make a difference performance wise? async requests go through what is called invoke_message table in bpel pm. So when an async request is made this is basically a two-step process -&lt;br /&gt;&lt;br /&gt;Step1 - the message is persisted to dehydaration store / invoke_message table and also sent to a JMS queue&lt;br /&gt;Step2- a worker MDB picks up the message from JMS queue and invokes the bpel&lt;br /&gt;&lt;br /&gt;Both these steps happen in two separate threads/transactions.&lt;br /&gt;&lt;br /&gt;The configuration property which make all these happen is DeliveryPersistPolicy=on&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So whenever there is a one-way invoke, its important to recognize that from the client perspective only step1 happens. Step2 happens internally and performance depends on resources (threads, MDBs) availability.&lt;br /&gt;&lt;br /&gt;One more property to keep in mind is CompletionPersistPolicy, this policy basically says how much to write while dehydration.&lt;br /&gt;&lt;br /&gt;Dehydration happens during 7 different points (middle of the bpel)&lt;br /&gt;1. receive (if first node and transaction=participate set)&lt;br /&gt;2. pick (on message, on alarm)&lt;br /&gt;3. wait&lt;br /&gt;4. invoke (idempotent=false)&lt;br /&gt;5. flow/flowN (nonblockingInvoke = true)&lt;br /&gt;6. reply (idempotentreply=false)&lt;br /&gt;7. dspMaxRequestDepth has reached (default 600)&lt;br /&gt;&lt;br /&gt;dehydration happens at two levels, metadata and auditdata.&lt;br /&gt;&lt;br /&gt;If there is dehydration in between the bpel flow, its called a durable process else transient. Dehydration helps recover processes in case of any node failures.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will cover some bpel best practices, esb internals, tuning parameters in coming up posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-2794599418282740365?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/2794599418282740365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=2794599418282740365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2794599418282740365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2794599418282740365'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/09/inside-bpel-pm.html' title='inside bpel pm'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4000629488735828126</id><published>2009-08-13T06:48:00.000-07:00</published><updated>2009-08-19T01:23:51.538-07:00</updated><title type='text'>XML Schema extension</title><content type='html'>Recently working on a ARIBA-EBS integration, we decided to use/extend oagis schema. The approach was to create project specific wrapper xsds with the project specfic namespaces. Wherever there was need to extend a type, the [xsd:extension] was used. An example &lt;a href="http://www.w3schools.com/schema/el_complexcontent.asp"&gt;here&lt;/a&gt;, &lt;a href="http://www.xfront.com/ExtensibleContentModels.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.acooke.org/schema.pdf"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However whether to use the UserArea to put extension type or to define new types in the extension type - was a open question. Also by replacing the UserArea of type 'any' with our own custom type, in my opinion is defeating the purpose, as it would not be possible to accept any dynamic content at runtime.&lt;br /&gt;&lt;br /&gt;One approach for dynamic xml content at runtime xsd polymorphic type [ xsi:type ]&lt;br /&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4000629488735828126?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4000629488735828126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4000629488735828126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4000629488735828126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4000629488735828126'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/08/xml-schema-extension.html' title='XML Schema extension'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-6804996430288774889</id><published>2009-08-02T11:37:00.000-07:00</published><updated>2009-08-19T02:47:00.783-07:00</updated><title type='text'>BPEL -  Java</title><content type='html'>Coming from a Java/J2EE background, one would think bpel is just drag and drop, however while working on an EAI type project on would definitely need Java. There are three types of Java extension in bpel&lt;br /&gt;&lt;br /&gt;1. Custom XSL function for XSLT and XPATH&lt;br /&gt;This fits best for any lookup functionalities, a good article &lt;a href="http://blogs.oracle.com/tejas/2009/07/custom_xpath_function_in_bpel.html"&gt;here &lt;/a&gt;on how to do it.&lt;br /&gt;&lt;br /&gt;The xslt function can return a nodelist, documentfragment, string, date, boolean. Nodelist is proper when a hashmap kind of collection is required. documentFragment can be used to return a dom tree. While calling the function from bpel/assign documentfragment works better.&lt;br /&gt;&lt;br /&gt;for error handling, we are wrapping all exceptions as some error code in form of a nodelist.&lt;br /&gt;&lt;br /&gt;2. Java Embedding&lt;br /&gt;This fits best for invoking any Java from within bpel, If the Java code is developed in a layered manner, the same code can be used from XSLT or from bpel.&lt;br /&gt;&lt;br /&gt;3. WSIF to Java Web Service&lt;br /&gt;This is the web service approach to expose Java as service, and if it is co-located in the same server, WSIF can be used to optimize the call.&lt;br /&gt;&lt;br /&gt;From a deployment perspective all the Java code/jar has to be deployed to all servers in a cluster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-6804996430288774889?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/6804996430288774889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=6804996430288774889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/6804996430288774889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/6804996430288774889'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/08/bpel-java.html' title='BPEL -  Java'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-7288272738786830351</id><published>2009-07-14T18:43:00.000-07:00</published><updated>2009-07-14T19:01:09.418-07:00</updated><title type='text'>Scheduling BPEL jobs</title><content type='html'>last month, we worked on an interesting assignment where we used two 3rd party libraries in bpel, one was &lt;a href="http://www.lowagie.com/iText/docs.html"&gt;itext&lt;/a&gt; for creating pdf files using java and the other one was &lt;a href="http://www.opensymphony.com/quartz/wikidocs/Tutorial.html"&gt;quartz&lt;/a&gt; for &lt;a href="http://clemensblog.blogspot.com/2006/04/bpel-scheduling-reoccuring-processes.html"&gt;scheduling bpel jobs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;creating pdf files using itext libraries was very straight forward and using java embedding it worked fine, though formatting the pdf was some challenge.&lt;br /&gt;&lt;br /&gt;Using quartz to schedule bpel jobs, there is a sample &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=390725"&gt;here &lt;/a&gt;and &lt;a href="http://www.oracle.com/technology/products/ias/bpel/pdf/orabpel-Tutorial7-InvokingBPELProcesses.pdf"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We deployed a web-app, where in the web.xml the triggering pattern was specified for the scheduler servlet. The servlet creates a singleton scheduler and adds all the jobs, which are nothing but java classes. We had a job class where we used BPEL client API to call a BPEL.&lt;br /&gt;&lt;br /&gt;There were couple of challenges in deploying the web-app to weblogic from Jdev10.1.3.4, which got resolved by making sure the property files are under web-inf/classes, sandeep has blogged this &lt;a href="http://sandeepseshan.blogspot.com/2009/06/oracle-bpel-and-weblogic-and-java-jar.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While deploying this web-app to a cluster, we deployed it to admin server and used load-balanced url to call the bpels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-7288272738786830351?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/7288272738786830351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=7288272738786830351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7288272738786830351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7288272738786830351'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/07/last-month-we-worked-on-interesting.html' title='Scheduling BPEL jobs'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3582603066964726682</id><published>2009-06-17T22:10:00.000-07:00</published><updated>2009-08-19T04:05:02.554-07:00</updated><title type='text'>JMS Adapter Stories - SOA on Weblogic</title><content type='html'>Last month, many interesting SOA on weblogic issues came up, here are some of them -&lt;br /&gt;&lt;br /&gt;issue#1. Connecting JMS Queues (hosted on SOA Suite10.1.3.4 on Weblogic9.2) from SOA Suite10.1.3.4 on OC4J MLR#8&lt;br /&gt;&lt;br /&gt;The steps mentioned &lt;a href="http://blogs.oracle.com/learnwithpavan/2008/10/steps_to_connect_to_weblogic_9_2.html"&gt;here&lt;/a&gt;, should have just worked fine, however we found that postMLR#2 there is a bug and it was not working, which got fixed by removing WLclient classes from the orabpel-thirdparty.jar&lt;br /&gt;&lt;br /&gt;issue#2 &lt;span style="color:#ff6666;"&gt;no connection available in JMS Adapter Connection pool, this issue is still open,&lt;/span&gt; we really don’t know why the pool was getting full with 100 active connections and not releasing any. We retired/off all the bpels except the one we need to test and the error didn't happen. Also we were using weblogic.jms.ConnectionFactory, we need to change it to a proper JNDI referenced connection factory and try.&lt;br /&gt;&lt;br /&gt;We tried setting ‘cacheConnections’ outbound partnerlink property in bpel.xml to false, but no visibile differnce was noticed.&lt;br /&gt;&lt;br /&gt;issue#3 Cannot call Connection.commit in distributed transaction.&lt;br /&gt;Transactions are a big topic and needs special attention and research. however quick findings was if there are commits in pl/sql, the datasource used in dbadapter has to be non-xa. On a separate note there is a LLR option if selected causes error. Also JMS Adapter doesn't start unless it’s XA, the connection factory can be non-xa. The transaction topic i will try elaborate in new posts later.&lt;br /&gt;&lt;br /&gt;issue#4 We tried looking up AQ/JMS from weblogic using the steps &lt;a href="http://avijeetd.blogspot.com/2009/03/aq-jms-on-soa-suite10134-on-weblogic92.html"&gt;here&lt;/a&gt;, however on one server it was not working, throwing Caused by: oracle.jms.AQjmsException: JMS-204: An error occurred in the AQ JNI layer&lt;br /&gt;However, it turned out it was a access privilage issue with the userid, need to investigate more what access issues the user has. A good discussion &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=1343334"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3582603066964726682?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3582603066964726682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3582603066964726682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3582603066964726682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3582603066964726682'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/06/bpel-strories.html' title='JMS Adapter Stories - SOA on Weblogic'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-1616027624668640042</id><published>2009-05-18T04:12:00.000-07:00</published><updated>2009-11-02T21:06:31.094-08:00</updated><title type='text'>Changing an Async BPEL to Sync (Calling WS from pl/sql)</title><content type='html'>This week I got an interesting task of calling a BPEL from PL/SQL. It seemed much easier than I initially thought. There are utilities available to do it and I got the references &lt;a href="http://orasoa.blogspot.com/2006/11/calling-bpel-process-with-utldbws.html"&gt;here &lt;/a&gt;and &lt;a href="http://orasoa.blogspot.com/2006/10/calling-bpel-process-from-raw-plsql.html"&gt;here&lt;/a&gt;. Initially the code as mentioned &lt;a href="http://www.orafaq.com/forum/t/99528/0/"&gt;here &lt;/a&gt;didn't work. Then marC's blog code worked fine. One caveat to this whole exercise was this web service invocation from pl/sql only works for synchronous services. As for async services the client needs have the capability to receive a callback soap call.&lt;br /&gt;&lt;br /&gt;Initially my bpel service was a asycn one and the pl/sql code though was able to invoke it was not able to recieve the callback. So I thought of changing it to synchronous. What followed was an interesting discovery. So firstly some basics, In bpel what makes a partnerlink async or sync is the role definition. For async you would see both partner role and my role, however for sync you will see only my role(for inbound) and partner role (for outbound).&lt;br /&gt;&lt;br /&gt;I tried to change my asycn bpel to sycn, by just removing the call back porttype/operations/bindings from wsdl, added a reply activity, changed the initiate operation to process and added a output message. From wsdl/bpel perspective everything was fine, but It didn't work. I was getting in bpel-console - Failed to get the WSDL operation definition of "process" in portType&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After some googling, It seems there is a problem, after changing the operation name or async to sync, refreshing the wsdl, it might not work, the solution is to deploy a new version 2.0 - It worked for me. Then just deploy the 2.0 as 1.0 (In Jdev we can do this) - everything gets right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-1616027624668640042?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/1616027624668640042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=1616027624668640042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/1616027624668640042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/1616027624668640042'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/05/making-async-bpel-to-sync.html' title='Changing an Async BPEL to Sync (Calling WS from pl/sql)'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-8064526500407374062</id><published>2009-05-06T01:17:00.000-07:00</published><updated>2010-06-30T21:28:49.746-07:00</updated><title type='text'>Plain Vanilla BPEL #2 (Adapters)</title><content type='html'>I noted some of the day1 bpel issues &lt;a href="http://avijeetd.blogspot.com/2009/04/plain-vanilla-bpel.html"&gt;here&lt;/a&gt;, there are also some interesting gotchas on the adapter side. Adapters are a big area covering various issues over file/ftp, database/aq adapters, JMS and Apps Adapters.&lt;br /&gt;&lt;br /&gt;ftp adapter - I had used an outbound ftp adapter w/o much issues, inbound ftp adapters in cluster environments have to be made singleton, refer to &lt;a href="http://www.oracle.com/technology/tech/soa/pdf/oracle-soa-suite-ha-faq.pdf"&gt;this&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;db adapter - db adapter one can do 4 types of things 1) call stored proc 2)execute Insert/Update, Delete, Select operations 3) poll database table 4) execute custom sql&lt;br /&gt;&lt;br /&gt;While using select operation parameters can be passed using #parametername to the generated SQL. While using custom sql XSD is automatically generated as per the SQL.&lt;br /&gt;&lt;br /&gt;aq adapter - aqs can be created of type multi-consumers, in such cases consumer name has to be used while creating adapters to send/receive messages.&lt;br /&gt;&lt;br /&gt;I will add more as we go along.&lt;br /&gt;&lt;br /&gt;update on May/28/09&lt;br /&gt;In the mean time a lot of adapter issues have been found, so that needs a mention here. Firstly FileAdapter/FtpAdapter, we had some good challenge around getting append to work for FtpAdapter. The format of the file was based on nxsd. We tried a bunch of things around making sure the transformation is correct to nsxd, making sure ftpadapter configuration (messagecount=1, unique filename, opaque schema) are correct, but append just didn’t work. After further debugging it turned out the ftp server didn’t support append in that particular directory. So a good learning was to test the ftp server configurations by doing simple ftp operations like put/get/app etc. from the prompt and then test from the ftpadapter. &lt;br /&gt;&lt;br /&gt;One other learning was the schema used in ftp adpater can be opaque or xsd. If it’s opaque, we need to send a base64 encoded string. And the following is code snippet to do that, make sure your MXL is converted to string by using getContentAsString()&lt;br /&gt;String inString = (String)getVariableData("XMLString");   &lt;br /&gt;sun.misc.BASE64Encoder encoder =   new sun.misc.BASE64Encoder();                     &lt;br /&gt;String encodedStr=encoder.encode(inString.getBytes())&lt;br /&gt;&lt;br /&gt;JMSAdpater, We had to connect weblogic JMSAdapter from OC4J and this &lt;a href="http://blogs.oracle.com/learnwithpavan/2008/10/steps_to_connect_to_weblogic_9_2.html"&gt;blog&lt;/a&gt; had all that we need. And it worked. A good learning was we were using weblogic.jms.Connectionfactory which is a default connectionfactory, so we don’t see it in the admin console, so making the right configurations on oc4j-ra.xml and putting the right entries while creating the JMS Adapter wizard are the key points. &lt;br /&gt;&lt;br /&gt;an erlier post on &lt;a href="http://avijeetd.blogspot.com/2009/03/aq-jms-on-soa-suite10134-on-weblogic92.html"&gt;aq-jms &lt;/a&gt;on Weblogic.&lt;br /&gt;&lt;br /&gt;Another day#1 issue is JCA port configuration in the adapter wsdl configuration is to use mcf (connection details as created by Jdev) or the JNDI url created in admin console. If you have both how will it behave? best thing we found is to use the one in server and not use mcf at all.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update on Aug/19/09&lt;br /&gt;DBAdapter if the mapping order is different in toplink mapping and XSLT, it throws cannot insert null error, the solution to that was to use detectomission to false in the dbadpater wsdl.&lt;br /&gt;&lt;br /&gt;On another note, its possible to change the JNDI for outbound adapters, by using similar mechanism as per dynamic partner links, for dynamic partnerlinks &lt;a href="http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html"&gt;here &lt;/a&gt;is a link.&lt;br /&gt;&lt;br /&gt;On DBAdaper pooling, there is a distributedpolling setting for it to work in clusters.&lt;br /&gt;&lt;br /&gt;FTPAdapter, one catch is the directory specified is relative to the user default directly after login.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;update 1/7/2010&lt;br /&gt;While creating nxsd for a file with header/detail structure, the file had lot of field length element separated by space, and using the wizard the lengths had to be specified, I noticed while using the ruler, you should not put the last position which is the length of the line or else it throws error. good reference &lt;a href="http://blogs.oracle.com/reynolds/2007/06/batch_processing_with_bpel.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-8064526500407374062?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/8064526500407374062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=8064526500407374062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/8064526500407374062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/8064526500407374062'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/05/plain-vanilla-bpel-2.html' title='Plain Vanilla BPEL #2 (Adapters)'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5018635741760243982</id><published>2009-04-15T23:46:00.000-07:00</published><updated>2010-07-02T04:19:28.095-07:00</updated><title type='text'>Plain Vanilla BPEL</title><content type='html'>This month I had to work on couple of bpel processes and it reminded me last yr when I was working on my first bpel. Anyone starting on bpel development goes through a series of similar hick-ups to get a comfort feel on the subject.&lt;br /&gt;&lt;br /&gt;A plain vanilla bpel is one, which takes an input xml in one format and sends another xml in a different format. So there are 3 areas of challenge that we learn about bpel on day1 namely 1)xsd of the messages 2)transformation 3)adapter details&lt;br /&gt;&lt;br /&gt;Each area has some unique challenges, XSD needs some good understanding of XML namespaces, creating elements and types, importing/extending xsd and wsdls etc. Generally biggest challenge in bpel lies in XSLT, particularly if you have complex mapping requirements. JDev's XSL Mapper is a good starting point, It helps you visually verify both the XSDs and do some preliminary mappings, how ever if you have to use some if-else kind of logic, the mapper doesn't work, so we need to fallback on the source view and do hand coding of XSLT. XSLT is a functional language and it doesn't follow the Java coding principles, and you will first be surprised at how you cannot do many things that you easily do in Java. For example, you cannot change a variable value in XSLT, it’s like a constant. Then there would be many learning around XPATH expressions, how to &lt;a href="http://soaranch.wordpress.com/2008/09/08/passing-parameters-from-bpel-to-xslt/"&gt;pass parameters to XSLT&lt;/a&gt;, single quote, double quote issues etc.&lt;br /&gt;&lt;br /&gt;Also many XSLT methods like ora:getInstanceId() or ora:getFaultString() doesn’t work in XSLT, so they have to be assigned separately to the resulting xml.&lt;br /&gt;&lt;br /&gt;One best practice is to ‘test the XSLT outside of bpel’ and then use in bpel to avoid the endless loops of build/deploy/test the bpel. On the Console the XSLT error will also not be clear, it will give a FOTY0001 kind of code, and we have to check the actual error in server log.&lt;br /&gt;&lt;br /&gt;One other best practice is to use addAuditTrailEntry or System.out.println to verify the variable values in bpel runtime.&lt;br /&gt;&lt;br /&gt;I will cover the adapter issues that we face on day1 in another blog.&lt;br /&gt;&lt;br /&gt;update7/2/10&lt;br /&gt;good article on using the position() as a variable while selecting something in XSLT &lt;a href="http://www.biglist.com/lists/xsl-list/archives/200101/msg00114.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5018635741760243982?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5018635741760243982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5018635741760243982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5018635741760243982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5018635741760243982'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/04/plain-vanilla-bpel.html' title='Plain Vanilla BPEL'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-6755106459996875571</id><published>2009-03-31T22:28:00.000-07:00</published><updated>2009-07-22T03:06:47.502-07:00</updated><title type='text'>SOA Suite Skill Map</title><content type='html'>While working on SOA Suite various areas of technology criss-cross each other, Its sometimes overwhelming to look at issues in a structured manner. From a Reference Architecture perspective, things are clear, they stack up as follow&lt;br /&gt;&lt;br /&gt;1. User Interaction Layer (Portal, Composite Applications, BAM)&lt;br /&gt;2. Connectivity Layer (Security, ESB, OWSM)&lt;br /&gt;3. Integration Layer (SOA Suite, BPM, B2B, ODI)&lt;br /&gt;4. Infrastructure Layer (Weblogic Suite, Coherence)&lt;br /&gt;&lt;br /&gt;Also the cross-cutting Layers of IDE, management and Governance&lt;br /&gt;&lt;br /&gt;Coming back to SOA Suite - I divide it into four major buckets&lt;br /&gt;-BPEL&lt;br /&gt;-ESB&lt;br /&gt;-Adapters&lt;br /&gt;-App Server (OC4J or Weblogic)&lt;br /&gt;&lt;br /&gt;Here is the list of items that would come under each category, I have split each category/area into Development and Administration parts - This can help to map issues to one of these areas/items and so in troubleshooting. I plan to keep adding to the list, basically very high-level taxonomy that in turn will have lot of details in the development/administration guides.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href="http://3.bp.blogspot.com/_lpTZ8-InE50/SdMElIDZL4I/AAAAAAAAAVY/93oM1ARxRj0/s1600-h/SOA.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5319600620718075778" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 159px" alt="" src="http://3.bp.blogspot.com/_lpTZ8-InE50/SdMElIDZL4I/AAAAAAAAAVY/93oM1ARxRj0/s320/SOA.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;updates on 7/22/09&lt;br /&gt;Two other aspects of SOA Suite are increasingly being used and require skills on are&lt;br /&gt;-BAM&lt;br /&gt;-B2B&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-6755106459996875571?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/6755106459996875571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=6755106459996875571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/6755106459996875571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/6755106459996875571'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/03/soa-suite-skill-map.html' title='SOA Suite Skill Map'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lpTZ8-InE50/SdMElIDZL4I/AAAAAAAAAVY/93oM1ARxRj0/s72-c/SOA.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3495247726018708457</id><published>2009-03-23T23:56:00.000-07:00</published><updated>2009-04-30T04:10:34.336-07:00</updated><title type='text'>Error Handling in BPEL #2</title><content type='html'>As I noted about BPEL Error handling &lt;a href="http://avijeetd.blogspot.com/2009/03/error-handling-in-bpel.html"&gt;here&lt;/a&gt;, SOA Suite 10.1.3.3 higher has a Error handling framework in form of fault policies, which is very useful to set up automatic recovery requirements in bpel.&lt;br /&gt;&lt;br /&gt;Basically a fault policy says what to do (action) for which fault (condition). And it can be attached to a partnerlink, port type, process or domain. Attaching a fault policy to partnerlink, porttype or process can be done by including it in the bpel.xml. Domain level fault policy attaching can be done in fault-bindings.xml under each domain in $BPELHOME/bpel/domains/"domain-name"/config&lt;br /&gt;&lt;br /&gt;Any error happening while invoking a partnerlink, will get captured by this framework and based on the fault policy, action will be taken. The pre-defined actions are retry, rethrow, human-intervention etc.&lt;br /&gt;&lt;br /&gt;If we use rethrow as action, the fault will go back to bpel and will be handled by any catch/catch all blocks.&lt;br /&gt;&lt;br /&gt;By default, the error handling framework doesn't do anything, as out of box, no policy is configured.&lt;br /&gt;&lt;br /&gt;please check &lt;a href="http://www.oracle.com/technology/products/ias/bpel/pdf/10133technotes.pdf"&gt;this &lt;/a&gt;for more information&lt;br /&gt;&lt;br /&gt;Update on 6/Apr:&lt;br /&gt;to refresh fault policy changes, server restart is not required, we can use the following link http://host:port/BPELConsole/domain_name/doReloadFaultPolicy.jsp. Also while creating a faultpolicy file, dont forget to put the correct Id name in the faultPolicy tag same as in bpel.xml&lt;br /&gt;&lt;br /&gt;Update on 30/Apr&lt;br /&gt;While showcasing faultpolicy to a customer, it became clear that businessfaults couldn’t be handled by fault policies, only technical faults. Which is quite a disadvantage, however its possible to handle business faults by converting the partnerlinks to separate bpel processes and then throwing the businessfault. &lt;span style="color:#ff6666;"&gt;Also for customizing fault-policy to do requirements like notification or calling another bpel also seems to be a challenge. Can we get the ora-java in the actions available in bpel console? need to check that.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3495247726018708457?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3495247726018708457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3495247726018708457' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3495247726018708457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3495247726018708457'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/03/error-handling-in-bpel-2.html' title='Error Handling in BPEL #2'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3252150320510367125</id><published>2009-03-16T22:42:00.000-07:00</published><updated>2009-08-19T03:58:56.540-07:00</updated><title type='text'>AQ-JMS on SOA Suite10.1.3.4 on WebLogic9.2</title><content type='html'>There are 3 options in SOA Suite on Weblogic for messaging&lt;br /&gt;-AQ Adapter&lt;br /&gt;-AQ with JMS&lt;br /&gt;-JMS Providers&lt;br /&gt;--OC4J JMS Provider (only on OC4J)&lt;br /&gt;--Weblogic JMS Provider&lt;br /&gt;--Any other 3rd party JMS provider&lt;br /&gt;&lt;br /&gt;Aq is the native queuing mechanism in Oracle, which uses database to create queue tables and queues/topics.&lt;br /&gt;&lt;br /&gt;Other JMS Providers primarily use a in-memory/file based approach to create queues and topics.&lt;br /&gt;&lt;br /&gt;To create Aq/JMS adapters on SOA Suite on Weblogic, here are the steps -&lt;br /&gt;&lt;br /&gt;AQ/JMS basically means AQ queues with JMS message type. AQ/JMS supports SYS.AQ$_JMS_TEXT_MESSAGE, SYS.AQ$_JMS_BYTES_MESSAGE, SYS.AQ$_JMS_STREAM_MESSAG, SYS.AQ$_JMS_MAP_MESSAGE, SYS.AQ$_JMS_MESSAGE.&lt;br /&gt;&lt;br /&gt;For the sqls to create the queue tables/ queues here is a &lt;a href="http://download.oracle.com/docs/cd/B12037_01/server.101/b10785/jm_exmpl.htm"&gt;reference&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next what we realized AQ/JMS is not supported on weblogic yet, so we had to use a custom code created by &lt;a href="http://rhpatrick.blogspot.com/"&gt;Robert Patrick&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The code is also available &lt;a href="http://biemond.blogspot.com/2008/11/using-aq-in-weblogic-103.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically - we need to create a Weblogic startup class AQJMSStartupClass.jar, and use one property file, couple of user credential files, and a couple of jars (aqapi13.jar and ojdbc14.jar), we followed the readme file and created the required files.&lt;br /&gt;&lt;br /&gt;Next we created a weblogic startup class with the necessary parameters, and restarted the soa server, and it basically used the startup class to create the AQJMS JNDI entries for QueueConnectionFactories, Queue etc.&lt;br /&gt;&lt;br /&gt;Then we created a JMS Adapter entry in weblogc-ra.xml to use the AQJMS_QueueConnectionFactory. Used this JMS Adapter JNDI name in the bpel wsdl.&lt;br /&gt;&lt;br /&gt;This just worked great, we have seen some AQ related errors in log, which I will cover in next post.&lt;br /&gt;&lt;br /&gt;update on Aug/19/09&lt;br /&gt;The AQ realted error like 'Cannot delist resource when transaction state is committed' got fixed after applying MLR#8&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3252150320510367125?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3252150320510367125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3252150320510367125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3252150320510367125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3252150320510367125'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/03/aq-jms-on-soa-suite10134-on-weblogic92.html' title='AQ-JMS on SOA Suite10.1.3.4 on WebLogic9.2'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-1396750634509163809</id><published>2009-03-10T03:38:00.000-07:00</published><updated>2009-03-13T03:51:24.689-07:00</updated><title type='text'>Error Handling in BPEL</title><content type='html'>Error handling is always a key core service on BPEL and there are always confusions around how to handle it,&lt;br /&gt;&lt;br /&gt;There are various aspects to error handling in BPEL/ESB&lt;br /&gt;1. esb errors&lt;br /&gt;2. bpel partner link errors&lt;br /&gt;3. bpel non-partnerlink errors&lt;br /&gt;&lt;br /&gt;The simple answer is catch and catch-all&lt;br /&gt;&lt;br /&gt;catch is for system defined faults like bindingfault, remotefault, selectionfailure etc. There are 12 of them that we can see in the Fault explorer. Once we catch them, we create a variable of type RuntimeFaultMessage from RuntimeFault.wsdl (under SOA_HOME\bpel\system\xmllib)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;catchall is for everything else, and we can get the error String by ora:getFaultAsString()&lt;br /&gt;&lt;br /&gt;The best practice to handle these faults in catch/catch-all blocks is to do the following steps&lt;br /&gt;&lt;br /&gt;1. create a custom fault message, based on all the values we need to capture for example processid, instanceid etc.&lt;br /&gt;&lt;br /&gt;2. send the fault message to a custom error handler, which basically can log the error, send it to worklist or send an email&lt;br /&gt;&lt;br /&gt;3. send a reply back to client about the error message, this would need the wsdl to have provisions for sending fault data as part of response or fault&lt;br /&gt;&lt;br /&gt;4. Terminate&lt;br /&gt;&lt;br /&gt;Alternatives we can also use ThrowFault in step#3 if the wsdl has provisions for faults. However I found that &lt;span style="color:#ff6666;"&gt;while using throwFault step#2 gets rolled back&lt;/span&gt;, so adding a checkpoint() resolves it.&lt;br /&gt;&lt;br /&gt;SOA Suite10.1.3.3 onwards also has the built in fault policy to handle errors. Basically whenever partnerlink errors happen, bpel checks with fault policy to decide what to do. In the fault policy we can configure different actiontypes like retry, rethrowfault etc.&lt;br /&gt;&lt;br /&gt;I will cover fault policies and error handling frameworks in more detail in another post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-1396750634509163809?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/1396750634509163809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=1396750634509163809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/1396750634509163809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/1396750634509163809'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/03/error-handling-in-bpel.html' title='Error Handling in BPEL'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-609996177731486912</id><published>2009-03-02T22:11:00.000-08:00</published><updated>2010-12-09T05:06:45.720-08:00</updated><title type='text'>Clusters Vs Grids</title><content type='html'>Recently I worked on a Coherence data grid and then to set up a SOA cluster on Weblogic. That made me wonder what is the difference between Grid and Clusters. So couple of goggling and there are many &lt;a href="http://www.jatit.org/research/introduction_grid_computing.htm"&gt;links &lt;/a&gt;that explain it. However here it is in my own understanding.&lt;br /&gt;&lt;br /&gt;Grids: Grid computing would be something to do with to optimize the resource usage like CPU, memory or IO. When we built a Coherence Data grid, It’s basically a cache server to cache the data so that we can avoid the expensive database trip. So we reduce the IO and make the application faster.  And these cache servers can be started many in number across machines, they all talk to each other using multicast communication. Which is actually the same technology used in the Weblogic clusters to keep the managed servers in sync. Similarly other grids optimize CPU usage, which would otherwise be unused and so waste of money to keep and maintain them. Server &lt;a href="http://searchservervirtualization.techtarget.com/sDefinition/0,,sid94_gci1032820,00.html#"&gt;Virtualization &lt;/a&gt;is a Grid solution.&lt;br /&gt;&lt;br /&gt;Clusters: on the other hand basically provide scalability, so that the application can support more a more user requests, also with high availability due to failover support in cluster aware managed servers. Clusters are an extension to distributed computing and it lets scale the application dynamically meaning add more managed servers anytime you have more demand. Similar failover and dynamically adding more servers is supported in Coherence Grids as well. Coherence Cache servers also partitions the data across multiple servers thus providing more scalability.&lt;br /&gt;&lt;br /&gt;Interesting thread on weblogic clusters &lt;a href="http://soa.sys-con.com/node/345580"&gt;here&lt;/a&gt;&lt;br /&gt;Interetsting discussion on scalability &lt;a href="http://www.infoq.com/news/2007/10/whatisscalability"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So basically the underline technology like multicast communication could be same, and the results like performance (response time), scalability (throughput) could be same, however Grids and Clusters differ in the basic goals they work on. It would not be wrong to say Grids will help you scale up while Clusters will help to Scale out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-609996177731486912?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/609996177731486912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=609996177731486912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/609996177731486912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/609996177731486912'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/03/clusters-vs-grids.html' title='Clusters Vs Grids'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3017729563985647041</id><published>2009-02-17T00:51:00.000-08:00</published><updated>2009-03-17T22:15:57.239-07:00</updated><title type='text'>SOA Suite 10.1.3.4 on Weblogic HA installation</title><content type='html'>Recently we did SOA Suite 10.1.3.4 on Weblogic simple HA installation following the &lt;a href="http://www.oracle.com/technology/deploy/availability/pdf/soa10134-oweblogicserver.pdf"&gt;enterprise deployment guide&lt;/a&gt;. This went quite smoothly without much issues. However we had to redo it once, as one key thing doing this installation is - the directory structure of SOA_HOME and BEA_HOME has to be same in both the nodes.&lt;br /&gt;&lt;br /&gt;We were doing this remotely so, to start with we got the &lt;a href="http://nodivisions.com/tech/vnc/"&gt;vnc access&lt;/a&gt; to the both the boxes, also make sure 8001, 9700, 9701, 9702 ports are open for you.&lt;br /&gt;&lt;br /&gt;steps are quite straight forward&lt;br /&gt;1. set up RAC DB, we went for a single DB, make sure all DB initialization parameters are set&lt;br /&gt;2. install SOA Suite 10.1.3.1, patch 10.1.3.4 basic install, remember that if you try to access EM after these steps, it will not come up as ascontrol webapp by default is not enabled, so you can do that using &lt;a href="http://puchaanirudh.blogspot.com/2007/02/application-server-control-of-oracle.html"&gt;this&lt;/a&gt;&lt;br /&gt;3. install weblogic, then run the weblogic scripts to configure the domain, clusters, nodes, datasources, and deployapps&lt;br /&gt;couple of things here to note are - make sure to deploy the datasources to cluster, if you get error in any scripts related to unable to get lock you can follow &lt;a href="http://www.coderanch.com/t/427074/BEA-Weblogic/Getting-error-while-starting-weblogic"&gt;this&lt;/a&gt;. Also start SOA Server from Admin console and remmeber we dont need to use opmnstart/stop here.&lt;br /&gt;4. after setting up apphost2 as per the document, we were successfully able to bring up all the consoles, we did one deviation form document for esb_dt setup, instead of setting 9700 in esb_parameter table we set 9702&lt;br /&gt;5. next was webhost and loadbalancer setup&lt;br /&gt;&lt;br /&gt;From a deployment perspective, we are deploying our bpels to both the nodes and using roundrobin for load balancing to both the nodes.&lt;br /&gt;&lt;br /&gt;We will be exploring more to validate the setup and failover scenarios.&lt;br /&gt;&lt;br /&gt;Update on 2/mar/09:&lt;br /&gt;We faced a major issue when we installed one more SOA/HA/Weblogic Environment and by mistake we used the same multicast ip/port. We had to reinstall both the setups the earlier one and the new one again. We got some multicast errors while starting server2, which is&lt;br /&gt;Error: Cluster: BEA-000110 Multicast socket receive error: java.io.EOFException&lt;br /&gt;java.io.EOFException&lt;br /&gt;at java.io.DataInputStream.readFully(DataInputStream.java:178)&lt;br /&gt;at java.io.DataInputStream.readLong(DataInputStream.java:380)&lt;br /&gt;at java.io.ObjectInputStream$BlockDataInputStream.readLong(ObjectInputStream.java:2744)&lt;br /&gt;at java.io.ObjectInputStream.readLong(ObjectInputStream.java:941)&lt;br /&gt;at weblogic.cluster.HeartbeatMessage.readExternal(HeartbeatMessage.java:55)&lt;br /&gt;Truncated. see log file for complete stacktrace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So one has to be very careful with multicast ip/port being unique with every install at the install time itself, changing it later on doesn't help.&lt;br /&gt;&lt;br /&gt;updated on 13/mar/09&lt;br /&gt;&lt;br /&gt;While our weblogic cluster was working fine, we found some issues while accessing one of the bpel consoles as 404 - Not Found. This made us look into BPEL Clustering on top of Weblogic clustering. The &lt;a href="http://www.oracle.com/technology/tech/soa/pdf/oracle-soa-suite-ha-faq.pdf"&gt;SOA-HA Faq &lt;/a&gt;document is very useful to understand this. Basically the BPEL nodes talks to each other to sync processes, any changes in bpel.xml, adapter state etc. And it uses the jGroups configuration to do this. collaxa-config xml has to be updated with 4 changes as per the EDG. The jGroup changes are little tricky. Basically jgroups-protocol xml file has to have a unique multicast ip address (while using UDP not TCP) and if the servers have multiple ips then bind_to_all_interfaces can be made false and bind_addr can be added with the one ip. While our jGroup settings are fine and bpel nodes seem to propagate new processes without restart, &lt;span style="color:#ff6666;"&gt;we still have a 404 issue, which seems to be something to do with the network ips.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3017729563985647041?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3017729563985647041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3017729563985647041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3017729563985647041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3017729563985647041'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/02/soa-suite-10134-on-weblogic-ha.html' title='SOA Suite 10.1.3.4 on Weblogic HA installation'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5829141805422063307</id><published>2009-01-29T22:03:00.000-08:00</published><updated>2009-03-13T03:49:27.525-07:00</updated><title type='text'>BPEL-Weblogic ClassLoader issue for Coherence</title><content type='html'>I had to deploy some existing code developed on SOA Suite on OC4J to SOA Suite on Weblogic, It was a good struggle for me, so here it goes -&lt;br /&gt;&lt;br /&gt;The code basically is a bpel calling a java web service using wsif. And the java service uses the caching software coherence to read/write to an in memory cache.&lt;br /&gt;&lt;br /&gt;1. First of all the &lt;span&gt;&lt;span style="color:#ff6666;"&gt;java web service in Jdev didn't get deployed to weblogic -&lt;/span&gt;&lt;/span&gt; It gave me - java.lang.IllegalStateException: could not find schema type named {http}//weblogic/types/}getHelloResponse" (edited the actual type).&lt;br /&gt;&lt;br /&gt;After some googling, it seems there r interoperability issues - so I had to use weblogic ant tasks to create/deploy the web service. Though the ant tasks like wsdlctask etc. were available my ant script didn’t run as it didn’t get xmlbean libraries, which I too couldn’t find in weblogic/lib. So my next attempt was to try develop this in workshop, which I am still trying as workshop didn't like my localhost weblogic server SOA domain, created as part of the SOA Suite on Weblogic installation scripts.&lt;br /&gt;&lt;br /&gt;2. Since my java web service attempts were not getting anywhere, I decided to package the Java class (which would be called by WSIF anyway) in the bpel itself. That went pretty well, my wsif binding started working after a few issues with the namespace in my schema, bam code in bpel (which I removed later as it was throwing JCE Error asking to put new jars in jre/lib/ext at deployment). I couldn't find a jaxb ant task to replace the schemac, so I had to go with schemac to generate the java binding classes form the wsdl/schemas. Here too I faced compilation issues with the classes generated, so I had to edit the schema to remove the (maxOccurs="100000") entries. So finally when my bpel was ready with everything else, I had to test the coherence part.&lt;br /&gt;&lt;br /&gt;3. The coherence part was the real hurdle to cross, by packaging the coherence.jar in my bpel output jar, I couldn't start the CacheFactory - It was complaining - Caused by: (Operation failed!; nested exception is: (Wrapped: Failed to load the factory) java.lang.reflect.InvocationTargetException - Wrapped: Failed to load configuration resource: coherence-cache-config.xml) java.io.IOException: Configuration is missing: "coherence-cache-config.xml", loader=null. So I tried putting the coherence.jar in the weblogic server classpath, and then it was working fine. I was able to create the CacheFactory and just then when I thought its done, the put/get to cache started throwing - (Wrapped) java.io.IOException: readObject failed: java.lang.ClassNotFoundException: com.schemas.Customer.CustomerQueryResultSet&lt;br /&gt;at java.net.URLClassLoader$1.run(URLClassLoader.java:200)&lt;br /&gt;at java.security.AccessController.doPrivileged(Native Method).&lt;br /&gt;&lt;br /&gt;Finally with the help of Coherence support, I learnt that I need to pass the classloader to CacheFactory.getCache() as the Classloaders get different when we go out of bpel domain to the coherence code and vice-versa. After passing the classloader, the whole thing worked fine.&lt;br /&gt;sample code below -&lt;br /&gt;NamedCache cache;&lt;br /&gt;Thread thread = Thread.currentThread();&lt;br /&gt;ClassLoader loaderPrev = thread.getContextClassLoader();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;thread.setContextClassLoader(com.tangosol.net.NamedCache.class.getClassLoader());&lt;br /&gt;cache = CacheFactory.getCache(sName);&lt;br /&gt;}&lt;br /&gt;finally&lt;br /&gt;{&lt;br /&gt;Thread.currentThread().setContextClassLoader(loaderPrev);&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5829141805422063307?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5829141805422063307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5829141805422063307' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5829141805422063307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5829141805422063307'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/01/10-days-challenge.html' title='BPEL-Weblogic ClassLoader issue for Coherence'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-4401939222737642966</id><published>2009-01-17T08:52:00.000-08:00</published><updated>2009-01-20T03:02:00.939-08:00</updated><title type='text'>Oracle Middleware</title><content type='html'>Oracle Products are primarily of 3 types&lt;br /&gt;-Database&lt;br /&gt;-Packaged Applications&lt;br /&gt;-Middleware&lt;br /&gt;&lt;br /&gt;Oracle Middleware products are categorized as &lt;br /&gt;&lt;br /&gt;-SOA/BPM&lt;br /&gt;I have already written about SOA/BPM line of products &lt;a href="http://avijeetd.blogspot.com/2008/12/oracle-soa-offerings-oracle-soa.html"&gt;here&lt;/a&gt;&lt;br /&gt;-Web2.0&lt;br /&gt;Under this Enterprise Content management, portal servers from both the oracle and bea products.&lt;br /&gt;-Application Grid&lt;br /&gt;This has basically the app server (weblogic, oc4j) and the various grid technology products like Coherence, web cache etc.&lt;br /&gt;-Identity management&lt;br /&gt;-BI/EPM&lt;br /&gt;&lt;br /&gt;Each category has lot of products for any kind of customer requirements and application patterns.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-4401939222737642966?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/4401939222737642966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=4401939222737642966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4401939222737642966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/4401939222737642966'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/01/oracle-products-oracle-products-are.html' title='Oracle Middleware'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5499451457554638490</id><published>2009-01-13T10:30:00.000-08:00</published><updated>2009-01-20T03:02:21.426-08:00</updated><title type='text'>2009++</title><content type='html'>Recently I worked on a POC to call coherence java code from SOA Suite using WSIF binding, while trying to google up on the subject, found an &lt;a href="http://www.ebizq.net/topics/soa/features/10393.html"&gt;interesting article&lt;/a&gt;, on 'real-time SOA'. This term 'real-time SOA' kind of hit me and I started googling up more, and hit upon many articles in &lt;a href="http://soa.sys-con.com/"&gt;sys-con&lt;/a&gt; on cloud computing. After Going through couple of you-tube videos on cloud computing and looking at the list &lt;a href="http://cloudcomputing.sys-con.com/node/770174"&gt;100s of companies &lt;/a&gt;working on related technologies like SaaS, Virtulaization etc. - I am amazed what the future holds. &lt;br /&gt;&lt;br /&gt;I just completed 10yrs in IT as a developer in the outsourcing industry, and as I understand this decade (98-08) is what can be branded as web1.0, soa1.0, cloud computing1.0 - all 1.0 - and the next decade is going to be 2.0. We are already seeing it - be it SOA/BPM or Web2.0/AJAX, the 2.0 is starting to unfold.&lt;br /&gt;&lt;br /&gt;After Listening to &lt;a href="http://cloudcomputing.sys-con.com/node/235836"&gt;Bill Coleman here&lt;/a&gt; - I am right now just sleepless thinking how exciting the future looks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5499451457554638490?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5499451457554638490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5499451457554638490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5499451457554638490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5499451457554638490'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/01/2009-recently-i-had-to-work-on-poc-to.html' title='2009++'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-7523834368133762459</id><published>2009-01-06T00:58:00.000-08:00</published><updated>2009-02-12T08:14:41.958-08:00</updated><title type='text'>My Oracle SOA Experience log -</title><content type='html'>From Apr/08&lt;br /&gt;&lt;br /&gt;Installation of SOA Suite 10.1.3.3 &lt;br /&gt;Installation of AIA FP2.0.1&lt;br /&gt;MDM PIP Development&lt;br /&gt;Upgrading SOA Suite to 10.1.3.4 on Weblogic9.2&lt;br /&gt;&lt;br /&gt;BPA suite installation&lt;br /&gt;OSB installation and POC&lt;br /&gt;Oracle Coherence&lt;br /&gt;&lt;br /&gt;All installations on Windows laptop.&lt;br /&gt;&lt;br /&gt;SOA Suite HA installation on Weblogic9.2/Linux&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-7523834368133762459?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/7523834368133762459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=7523834368133762459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7523834368133762459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/7523834368133762459'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2009/01/my-oracle-soa-experience-log-from-apr08.html' title='My Oracle SOA Experience log -'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-5704126502218859782</id><published>2008-12-22T22:02:00.000-08:00</published><updated>2009-01-20T03:03:02.535-08:00</updated><title type='text'>Oracle SOA Offerings -</title><content type='html'>Oracle SOA Products are packaged with multiple related products as Suites like..&lt;br /&gt;&lt;br /&gt;1. SOA Suite&lt;br /&gt;2. BPA Suite&lt;br /&gt;3. EDA Suite&lt;br /&gt;4. ODI Suite&lt;br /&gt;5. BPM Suite&lt;br /&gt;&lt;br /&gt;SOA Suite has&lt;br /&gt;-BPEL Process Manager&lt;br /&gt;This is the primary product used for orchestration of services. This is BPEL standards compliant product with support for management, high-availability and hot-plugability.&lt;br /&gt;-ESB&lt;br /&gt;There are 2 ESBs in Oracle product offerings, OSB (this is the earlier Aqualogic service bus) and OESB (Oracle ESB). OSB is for more standalone enterprise-wide connectivity requirements and OESB can be used a project based mediation requirements.&lt;br /&gt;-Rules&lt;br /&gt;-human workflow&lt;br /&gt;-OWSM&lt;br /&gt;Oracle Webservice Manager is the Gateway product, which provides security to the webservices hosted on BPEL or ESB.&lt;br /&gt;&lt;br /&gt;SOA Suite runs on Weblogic and OC4J.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BPA Suite&lt;br /&gt;-Business Process Architect/ Publisher / Simulator / Repository&lt;br /&gt;&lt;br /&gt;BPM suite&lt;br /&gt;-Oracle BPM (this was earlier Aqualogic BPM)&lt;br /&gt;-Oracle BAM&lt;br /&gt;&lt;br /&gt;EDA Suite&lt;br /&gt;-Oracle CEP (earlier Aqualogic Event Server)&lt;br /&gt;&lt;br /&gt;SOA Governance products&lt;br /&gt;-Enterprise Repository&lt;br /&gt;-SOA Management pack&lt;br /&gt;&lt;br /&gt;ODI Suite&lt;br /&gt;-Oracle Data Integrator&lt;br /&gt;ODI is for bulk data load requirements.&lt;br /&gt;-Oracle Data Quality and Profiling&lt;br /&gt;-Oracle Coherence&lt;br /&gt;-Oracle Adapters&lt;br /&gt;&lt;br /&gt;Based on the customer applications requirements, the right product mix should be used to realize the enterprise goals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-5704126502218859782?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/5704126502218859782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=5704126502218859782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5704126502218859782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/5704126502218859782'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2008/12/oracle-soa-offerings-oracle-soa.html' title='Oracle SOA Offerings -'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-2907647847234099910</id><published>2008-12-18T22:25:00.000-08:00</published><updated>2009-01-20T03:03:20.669-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patterns'/><title type='text'>Patterns</title><content type='html'>I love this word 'Patterns', It kind of summarizes everything that we learn in IT world. We have seen so many categorizations of patterns over last 10-15 yrs -&lt;br /&gt;Design Patterns (GoF , Gang of four)&lt;br /&gt;J2EE Patterns&lt;br /&gt;EJB Patterns&lt;br /&gt;SOA Patterns&lt;br /&gt;Architecture Patterns&lt;br /&gt;Integration Patterns&lt;br /&gt;Application Patterns&lt;br /&gt;&lt;br /&gt;In 2003, my friend Satya and I used to write a tutorial on GOF Patterns, Its still available &lt;a href="http://www.ciol.com/content/developer/languages/2003/10304081.asp"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-2907647847234099910?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/2907647847234099910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=2907647847234099910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2907647847234099910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/2907647847234099910'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2008/12/patterns-i-love-this-word-patterns-it.html' title='Patterns'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3030316148058311856</id><published>2008-10-31T00:13:00.000-07:00</published><updated>2009-01-20T03:03:48.919-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='AIA'/><title type='text'>AIA</title><content type='html'>&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;AIA&lt;/span&gt; - Oracle's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SOA&lt;/span&gt; Architecture for PIP development.&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AIA&lt;/span&gt; - application integration architecture&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SOA&lt;/span&gt; - Service oriented architecture&lt;br /&gt;PIP - P&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;rocess &lt;/span&gt;Integration packs&lt;br /&gt;&lt;br /&gt;In the journey from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;EAI&lt;/span&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SOA&lt;/span&gt;, somewhere people started using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;BPEL&lt;/span&gt; for building integration flows. XML, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;XSLT&lt;/span&gt;, Adapters are the common technologies, whats new is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;WebServices&lt;/span&gt; or more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;specifically&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WSDLs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In the Oracle &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;eco&lt;/span&gt; system, there are many packaged Applications like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Ebusiness&lt;/span&gt; suite, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Siebel&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Jd&lt;/span&gt; Edwards , &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Peoplesoft&lt;/span&gt; etc. And It's a common requirement to have integration flows between them in various customer &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;implementations&lt;/span&gt;. So in Oracle we offer &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;PIPs&lt;/span&gt; build over &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;SOA&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;middleware&lt;/span&gt; using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;AIA&lt;/span&gt; architecture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3030316148058311856?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3030316148058311856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3030316148058311856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3030316148058311856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3030316148058311856'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2008/10/aia-oracles-soa-architecture-for-pip.html' title='AIA'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-3065230617384755590</id><published>2008-10-31T00:00:00.000-07:00</published><updated>2009-01-20T03:04:13.795-08:00</updated><title type='text'>10</title><content type='html'>I just completed 10 yrs in Indian IT industry starting as a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;developer&lt;/span&gt; and growing to Architect roles. Most of my experience was in the J2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;EE&lt;/span&gt; application development space. Last 2 years I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;have&lt;/span&gt; been working in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SOA&lt;/span&gt; space. Started with learning about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SOA&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Methodology&lt;/span&gt;, Maturity Models, Technology Standards and Governance. looked at IBM &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Stack&lt;/span&gt; of products and now working using Oracle/BEA &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SOA&lt;/span&gt; stack products for last 6 months.&lt;br /&gt;&lt;br /&gt;Oracle/BEA Stack of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SOA&lt;/span&gt; products looks very exciting and I feel very passionate about its &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;roadmap&lt;/span&gt; and also hoping doing exciting work in this space.&lt;br /&gt;&lt;br /&gt;I am planning to write my experience in this blog from day to day development issues to architectural insights.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-3065230617384755590?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/3065230617384755590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=3065230617384755590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3065230617384755590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/3065230617384755590'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2008/10/i-just-completed-10-yrs-in-indian-it.html' title='10'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18952097.post-116220643912271813</id><published>2006-10-30T03:01:00.000-08:00</published><updated>2009-01-20T03:04:30.465-08:00</updated><title type='text'>SOA blog</title><content type='html'>SOA - Service Oriented Architecture&lt;br /&gt;&lt;br /&gt;SOA is an IT architecture around creating services for the business processes for maximum reuse, faster time-to-market and cost reductions. Web Services would be the key technology for the service implementation. Web Services are based on communication using standards like SOAP, WSDL, UDDI and many others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18952097-116220643912271813?l=avijeetd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://avijeetd.blogspot.com/feeds/116220643912271813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18952097&amp;postID=116220643912271813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/116220643912271813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18952097/posts/default/116220643912271813'/><link rel='alternate' type='text/html' href='http://avijeetd.blogspot.com/2006/10/soa-service-oriented-architecture-soa.html' title='SOA blog'/><author><name>Avijeet</name><uri>http://www.blogger.com/profile/08309423206659089305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_lpTZ8-InE50/TCLfnn5sLDI/AAAAAAAAA-E/hLJ0wny7UtI/S220/Avijeet.jpg'/></author><thr:total>0</thr:total></entry></feed>
