<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Dk4BRHY7fSp7ImA9WhRbEE4.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388</id><updated>2012-01-31T10:35:55.805-08:00</updated><category term="JDeveloper" /><category term="Oracle JMS Adapter" /><category term="WebLogic Server" /><category term="Governance" /><category term="Oracle SOA Suite" /><category term="Cloud Computing" /><category term="Web Services" /><category term="Oracle SOA Suite 11g" /><category term="Oracle Application Server" /><category term="JAX-WS" /><category term="JRockit" /><category term="Oracle Enterprise Repository" /><category term="OpenSuse" /><category term="DOAG" /><category term="Oracle Application Integration Architecture (AIA)" /><category term="WS-AtomicTransaction" /><category term="BPEL" /><category term="Load balancer" /><category term="Enterprise Architecture" /><title>Stefan's SOA &amp; Enterprise Architecture Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/StefansSoaEnterpriseArchitectureBlog" /><feedburner:info uri="stefanssoaenterprisearchitectureblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry gd:etag="W/&quot;AkMMRX8_fSp7ImA9WhZRF0o.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-1809988985541341445</id><published>2011-04-14T01:36:00.001-07:00</published><updated>2011-04-14T03:54:44.145-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-14T03:54:44.145-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Enterprise Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing" /><title>New German Article about Enterprise Architecture Management and Cloud Computing</title><content type="html">&lt;p&gt;Today we published a new article about the role of Enterprise Architecture in Cloud Computing. (This is german-only)&lt;/p&gt;  &lt;p&gt;More Information in German:&lt;/p&gt;  &lt;p&gt;Heute ist ein neues Online-Special des Objektspektrum erschienen mit dem Themenschwerpunkt Enterprise Architecture Management. Mit enthalten ist ein Artikel von mir und meinen Kollegen aus dem Oracle Architekturboard, Nicole Holthöfer und Berthold Maier, mit dem Titel “&lt;a href="http://www.sigs-datacom.de/fachzeitschriften/objektspektrum/online-themenspecials/artikelansicht.html?tx_mwjournals_pi1%5Bpointer%5D=0&amp;amp;tx_mwjournals_pi1%5Bmode%5D=1&amp;amp;tx_mwjournals_pi1%5BshowUid%5D=6849"&gt;Cloud Enterprise-Architekturen: Die Rolle von EA für Cloud Computing-Infrastrukturen&lt;/a&gt;”.&lt;/p&gt;  &lt;p&gt;Siehe &lt;a href="http://www.sigs-datacom.de/fachzeitschriften/objektspektrum/online-themenspecials/artikelansicht.html?show=2884" target="_blank"&gt;Link zum Online-Special&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Direkter Download des Artikels als PDF &lt;a href="http://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/EAM/holthoefer_koser_OS_EAM_11.pdf" target="_blank"&gt;hier&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-1809988985541341445?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/1809988985541341445/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2011/04/new-article-about-enterprise.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/1809988985541341445?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/1809988985541341445?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2011/04/new-article-about-enterprise.html" title="New German Article about Enterprise Architecture Management and Cloud Computing" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkEDSX88eyp7ImA9Wx5REEo.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-5174377288304735049</id><published>2010-08-17T11:38:00.001-07:00</published><updated>2010-08-17T11:44:38.173-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-17T11:44:38.173-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DOAG" /><title>DOAG 2010: German User's Group Conference Program Online!</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;The program of this years DOAG 2010 Conference from Nov 16 to 19,2010 in Nuremberg, Germany is online!&lt;br /&gt;See &lt;a href="http://www.doag.org/konferenz/doag/2010/programm"&gt;http://www.doag.org/konferenz/doag/2010/programm&lt;/a&gt; (currently German only)&lt;br /&gt;Please don't miss my presentation on day 2 (Nov 17th) about "&lt;b&gt;Oracle BPEL PM - Performance Tuning and Clustering Best Practises".&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;See you in Nuremberg!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-5174377288304735049?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/5174377288304735049/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2010/08/doag-2010-german-user-group-conference_17.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5174377288304735049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5174377288304735049?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2010/08/doag-2010-german-user-group-conference_17.html" title="DOAG 2010: German User&amp;#39;s Group Conference Program Online!" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkMFRXs8fyp7ImA9Wx5REEo.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-2218550257355557174</id><published>2010-08-17T00:59:00.001-07:00</published><updated>2010-08-17T11:40:14.577-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-17T11:40:14.577-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DOAG" /><title>Announcement: Next DOAG Regional Meeting 8.9.2010 covers Enterprise Architecture</title><content type="html">&lt;p&gt;The next regional meeting of DOAG in Berlin happens on September 8th in the Oracle Office in Berlin-Tegel. See &lt;a title="http://www.doag.org/regio/berlin/i_text" href="http://www.doag.org/regio/berlin/i_text"&gt;http://www.doag.org/regio/berlin/i_text&lt;/a&gt; for full details. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;18:15 - 19:15 Topic 1: Enterprise Architecture &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Presenter: Thomas Baumgart, Enterprise Architect / Oracle Germany&lt;/em&gt;    &lt;br /&gt;&lt;strong&gt;    &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;19:30 - 20:15 Topic 2: ORACLE Enterprise Content Management     &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Presenter: Tino Albrecht, Oracle Germany&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-2218550257355557174?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/2218550257355557174/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2010/08/announcement-next-doag-regional-meeting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/2218550257355557174?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/2218550257355557174?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2010/08/announcement-next-doag-regional-meeting.html" title="Announcement: Next DOAG Regional Meeting 8.9.2010 covers Enterprise Architecture" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUEMRXsyeyp7ImA9Wx5SGUg.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-5415370320736010953</id><published>2010-08-16T03:03:00.001-07:00</published><updated>2010-08-16T04:21:24.593-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-16T04:21:24.593-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite 11g" /><category scheme="http://www.blogger.com/atom/ns#" term="WS-AtomicTransaction" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><title>Web Service Transactions Part 3: Testing Rollback between multiple SOA composites</title><content type="html">&lt;h4&gt;Overview&lt;/h4&gt;  &lt;p&gt;The previous sample (&lt;a href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-with-ws_13.html"&gt;Part 2&lt;/a&gt;) only contained a call to one web service from a SOA composite. It really gets interesting only when multiple distributed web services join one atomic transaction. To be able to execute this including rollbacks, we will implement 2 web services using SOA composites and the Oracle Database adapter.&lt;/p&gt;  &lt;p&gt;Lets assume we have a CRM System (CustomerService) and and Order Fulfillment System (OrderService). The requirement should be that an order is only stored in the Order System if the customer has been stored successfully in the CRM system. Also, if a new order is placed incorrectly, the customer should not be stored in the CRM System.&lt;/p&gt;  &lt;p&gt;Please be aware that with a single Weblogic server domain and when not using TcpMon, you will not see any WS-AT transactions because the local optimization kicks in and SOAP will not be used….&lt;/p&gt;  &lt;p&gt;Lets design first the CustomerService.&amp;#160; You can find the complete source code &lt;a href="http://groups.google.com/group/stefansbloggroup/web/Test-WS-AT.zip"&gt;here&lt;/a&gt;. (Again please click on any image to enlarge)&lt;/p&gt;  &lt;h4&gt;Create the Database User and Schema &lt;/h4&gt;  &lt;p&gt;For the 2 services we will need one schema with 2 tables:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;create user wstest identified by wstest;&lt;/p&gt;    &lt;p&gt;grant connect, resource to wstest;&lt;/p&gt;    &lt;p&gt;connect wstest/wstest@XE&lt;/p&gt;    &lt;p&gt;create table orders (orderid varchar2(255) primary key, quantity int, description varchar2(20));&lt;/p&gt;    &lt;p&gt;create table customers (customerid varchar2(255) primary key, firstname varchar2(20), lastname varchar2(20))&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Modify Weblogic Configuration&lt;/h4&gt;  &lt;p&gt;Create a new data source “jdbc/wstest” in the Weblogic console and enter the connection settings. Be sure to add a target Weblogic server/domain…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkMqjH_MxI/AAAAAAAAAQ8/SIPhreiIi-Y/s1600-h/image%5B56%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkMrR7YrVI/AAAAAAAAARA/e-mWpp9tY8g/image_thumb%5B28%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After that, create a new connection factory in the deployed DBAdapter and point this to the wstest data source:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkMs8q8VEI/AAAAAAAAARI/ua6vZcZmLD0/s1600-h/image%5B60%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkMtrUp5dI/AAAAAAAAARM/ZR5QBsX1Esc/image_thumb%5B32%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkMu5fG_OI/AAAAAAAAARU/O8e1XZ8xiQ0/s1600-h/image%5B61%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGkMverjpsI/AAAAAAAAARY/WzXNG_Tq8kk/image_thumb%5B33%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Design and test of the CustomerService&lt;/h4&gt;  &lt;p&gt;First create an new SOA composite named CustomerService with one synchronous BPEL component:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkMv3X-45I/AAAAAAAAARc/AeSmdTeq2lU/s1600-h/image%5B64%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="441" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkMwTysd0I/AAAAAAAAARo/8Vf2iDiGQgw/image_thumb%5B36%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Change the CustomerService.xsd to pass customerid, first name and last name as parameters:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;        &lt;br /&gt;&amp;lt;schema attributeFormDefault=&amp;quot;unqualified&amp;quot;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; elementFormDefault=&amp;quot;qualified&amp;quot;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; targetNamespace=&amp;quot;&lt;/font&gt;&lt;a href="http://xmlns.oracle.com/Test_WS_AT_jws/CustomerService/CustomerService&amp;quot;"&gt;&lt;font face="Courier"&gt;http://xmlns.oracle.com/Test_WS_AT_jws/CustomerService/CustomerService&amp;quot;&lt;/font&gt;&lt;/a&gt;       &lt;br /&gt;&lt;font face="Courier"&gt;&amp;#160;&amp;#160;&amp;#160; xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2001/XMLSchema&amp;quot;"&gt;&lt;font face="Courier"&gt;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier"&gt;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;element name=&amp;quot;process&amp;quot;&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;complexType&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sequence&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;element name=&amp;quot;customerid&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;element name=&amp;quot;firstname&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;element name=&amp;quot;lastname&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sequence&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/complexType&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/element&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;element name=&amp;quot;processResponse&amp;quot;&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;complexType&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sequence&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;element name=&amp;quot;result&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sequence&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/complexType&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/element&amp;gt;         &lt;br /&gt;&amp;lt;/schema&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then create a new Database Adapter on the right hand composite side:&lt;/p&gt;  &lt;p&gt;Select the db connection and schema wstest which you have created before and select CUSTOMERS as target. Select Insert or Update as operation. After the DB Adapter wizard, create an Input Variable as inidicated below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkMw9Z4TTI/AAAAAAAAARw/8g6KStZ-Mgc/s1600-h/image%5B65%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkMxbTuTYI/AAAAAAAAAR4/iK8aSvt8N08/image_thumb%5B37%5D.png?imgmax=800" width="553" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Your SOA Composite should now look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkMysE4HaI/AAAAAAAAASE/aBZDRhjZM6Q/s1600-h/image%5B66%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkMzl_08gI/AAAAAAAAASI/InmvN17HmDE/image_thumb%5B38%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Edit the BPEL Process to insert an Invoke activity to call the newly created Partnerlink:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkM00kuOjI/AAAAAAAAASQ/u92oGVutZCM/s1600-h/image%5B67%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGkM1Z-TNEI/AAAAAAAAASU/ISOL9O5G8fw/image_thumb%5B39%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Use a Transform activity before the Invoke to map the input parameters to the variables of the Invoke:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGkM2i7mxUI/AAAAAAAAASg/uJ3E7HB8N2U/s1600-h/image%5B68%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkM3Kg6_EI/AAAAAAAAASk/6yudJCn0N4o/image_thumb%5B40%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You now can deploy and test the CustomerService using the SOA Console Test Page and should see a inserted row in the customers table.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h4&gt;Design and test of the OrderService&lt;/h4&gt;  &lt;p&gt;Repeat each step of CustomerService to create a similar OrderService. Just select in the DB Adapter Wizard the table ORDERS.&lt;/p&gt;  &lt;p&gt;In addition to the CustomerService I have selected the genuid function as input for the orderid variable. So add an additional copy rule in an&amp;#160; Assign activity before the Transform.&lt;/p&gt;  &lt;p&gt;This leaves only the Order Item Description as input (for simplicity each time “one “ is assumed for the order amount).&lt;/p&gt;  &lt;p&gt;The resulting SOA composite should look like&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkM40CbiVI/AAAAAAAAASs/lmJQsLTenNs/s1600-h/image%5B69%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkM5Z39PDI/AAAAAAAAASw/SMeK4RN-ji0/image_thumb%5B41%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Deploy and the the OrderService using the SOA Console and verify that an Order has been created in the ORDERS table.&lt;/p&gt;  &lt;h4&gt;Configure TcpMon&lt;/h4&gt;  &lt;p&gt;Start TcpMon with 8081 as forwarding port and the server:port where you have deployed the CustomerService (i.e. &lt;a href="http://localhost:7001"&gt;http://localhost:7001&lt;/a&gt;) as target.&lt;/p&gt;  &lt;h4&gt;Testing both webservice in one atomic transaction&lt;/h4&gt;  &lt;p&gt;Create a new SOA composite CreationService using a synchronous BPEL component which calls both web services – CustomerService and OrderService – sequentially:&lt;/p&gt;  &lt;p&gt;Insert 2 web service references in the right side of the SOA composite editor and enter the WSDL URLs of CustomerService and OrderService – but be sure to use the port where TcpMon listens (8081).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkM6jBIkpI/AAAAAAAAAS4/gn9jodCXvUA/s1600-h/image%5B70%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkM7aOaSqI/AAAAAAAAATA/KfeqlMKxjvA/image_thumb%5B42%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Edit the XSD of CreationService and modify it to use customerid, firstname, lastname and orderitem as input parameters.&lt;/p&gt;  &lt;p&gt;Then edit the BPEL process, insert 2 Invoke activities, calling the Partnerlinks – first for CustomerService, then Orderservice.&lt;/p&gt;  &lt;p&gt;Map the variables so that customerid, firstname and lastname are fed into teh input variable for CustomerService and orderitem for OrderService.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGkM83dtEmI/AAAAAAAAATM/MTXFFqd_QpY/s1600-h/image%5B71%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkM9jZEfaI/AAAAAAAAATU/9RQVhghP6gk/image_thumb%5B43%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Last 2 steps are:&lt;/p&gt;  &lt;p&gt;Insert bpel.config.transaction=RequiresNew (or Required) in the CreationService BPEL component to start the transaction when the composite is called (see Part 2).&lt;/p&gt;  &lt;p&gt;Modify the WS-AT settings to a MANDATORY transaction flow&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkM-LAneDI/AAAAAAAAATc/y68zKVM4aUQ/s1600-h/image%5B72%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkM-txBdnI/AAAAAAAAATk/XW29-1s52GI/image_thumb%5B44%5D.png?imgmax=800" width="604" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGkM_cGvPnI/AAAAAAAAATo/ABC1PBWFmxk/s1600-h/image%5B73%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGkM_xO8CMI/AAAAAAAAATw/wVHgTpV6m3I/image_thumb%5B45%5D.png?imgmax=800" width="604" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now you can deploy and test the CreationService. &lt;/p&gt;  &lt;p&gt;Try first one Order Item (a arbitrary string) with less than 20 characters. This should create a new customer and a new order.&lt;/p&gt;  &lt;p&gt;Then try with an Order Item string longer than 20 chars: this results in an SQL exception at the OrderService call and also roll backs the CustomerService as designed:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkNBgZzpJI/AAAAAAAAAT4/2PPXip7xFZ4/s1600-h/image%5B74%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGkNCX4VTvI/AAAAAAAAAUA/kY_44VtPQDk/image_thumb%5B46%5D.png?imgmax=800" width="577" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can verify in TcpMon that the SOAP request used WS-AT.&lt;/p&gt;  &lt;p&gt;This concludes the hands-on parts on WS-AtomicTransaction.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-5415370320736010953?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/5415370320736010953/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-part-3-testing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5415370320736010953?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5415370320736010953?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-part-3-testing.html" title="Web Service Transactions Part 3: Testing Rollback between multiple SOA composites" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGkMrR7YrVI/AAAAAAAAARA/e-mWpp9tY8g/s72-c/image_thumb%5B28%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUAGR3Yyeip7ImA9Wx5SGUg.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-4124410368775607893</id><published>2010-08-13T04:57:00.001-07:00</published><updated>2010-08-16T04:22:06.892-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-16T04:22:06.892-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite 11g" /><category scheme="http://www.blogger.com/atom/ns#" term="WS-AtomicTransaction" /><category scheme="http://www.blogger.com/atom/ns#" term="JAX-WS" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><title>Web Service Transactions Part 2: WS-AtomicTransaction with SOA Composite calling EJB-Web Service</title><content type="html">&lt;p&gt;In the &lt;a href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-with-ws.html"&gt;first part&lt;/a&gt; we have looked at web service transactions between JAX-WS web services without any SOA composite/component.&lt;/p&gt;  &lt;p&gt;The next scenario where we will look at is a SOA composite calling the web service WsatBankTransferService deployed in part 1. (click on each image to display in full quality):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU8MqLbF7I/AAAAAAAAAJE/WmPnp4NGi_Q/s1600-h/image%5B53%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="150" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGU8NMS0XWI/AAAAAAAAAJI/z7AoVERL80k/image_thumb%5B31%5D.png?imgmax=800" width="526" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Enable WS-AT on the SOA domain&lt;/h4&gt;  &lt;p&gt;The installation of the 11.1.1.3 Patch Set of Oracle SOA unfortunately does not update the file policy-accessor-config.xml in the created domain or WLS instance to the required WS-AT settings.&lt;/p&gt;  &lt;p&gt;The definition of policy interceptors is however mandatory for WS-AT to work. If you did not configure anything in policy-accessor-config.xml yourself, this means that you will need to replace your version of the file with &lt;a href="http://groups.google.com/group/stefansbloggroup/web/policy-accessor-config.xml"&gt;this&lt;/a&gt; version. (The original file can the found &lt;a href="http://groups.google.com/group/stefansbloggroup/web/policy-accessor-config.xml.old"&gt;here&lt;/a&gt; for comparison).&lt;/p&gt;  &lt;p&gt;Rename you file to .old and copy the downloaded file to the directory. Restart the Weblogic server. &lt;/p&gt;  &lt;h4&gt;Design and Deploy the Composite&lt;/h4&gt;  &lt;p&gt;First start the Weblogic samples server and use a port different than the SOA instance. I use port 8001 for the examples WLS domain and port 7001 for the admin server where the soa domain is deployed.&lt;/p&gt;  &lt;p&gt;Then start TcpMon – to be able to monitor the SOAP request lateron and tunnel all request from port 8081 to port 8001:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGU57aQqCgI/AAAAAAAAAH8/wEwYF3iTr90/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="354" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU58OQl2NI/AAAAAAAAAIA/yFhuJHaJndU/image_thumb%5B4%5D.png?imgmax=800" width="434" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We will create a BPEL based SOA composite with the SOA designer. &lt;/p&gt;  &lt;p&gt;Create a new SOA project and a new composite with a BPEL component. Choose a synchronous BPEL process type and name it like you want.&amp;#160; &lt;/p&gt;  &lt;p&gt;After that, drop a web service from the resource palette into the right part of the composite editor to create a reference. Fill in the details of the WsatBankTransferService but use the port set with TcpMon. Paste the WSDL URL of the WsatBankTransferService into the form and select MANDATORY and DEFAULT for WS-AT transaction propagation and version&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGU59qfCPtI/AAAAAAAAAIM/vKr6dlIH91I/s1600-h/image%5B13%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="506" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU5-Uig1hI/AAAAAAAAAIQ/nrxypnrnBnk/image_thumb%5B7%5D.png?imgmax=800" width="624" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Next edit the bpel process to include a Invoke activity for “CreateAccount” using the newly created Partnerlink and pass the input parameter with an Assign activity to the invoke:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGU_2ZrCH3I/AAAAAAAAANE/O6SGib63DC4/s1600-h/image%5B95%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="443" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGU_3BUXAQI/AAAAAAAAANI/1BzRrYIh1FI/image_thumb%5B69%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The result should look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGVLM_TqVoI/AAAAAAAAAO4/ASXO7D5Yp8o/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="431" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGVLNmdMPsI/AAAAAAAAAO8/XFXJ1ygu_rc/image_thumb%5B2%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now you can deploy and test the composite, right?&lt;/p&gt;  &lt;p&gt;No, because at this point, the BPEL component would not automatically start a transaction. To achieve this, edit the composite.xml and insert the bpel.config.transaction property like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;component name=&amp;quot;WSATBPELClient&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;implementation.bpel src=&amp;quot;WSATBPELClient.bpel&amp;quot;/&amp;gt;       &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;#160; &amp;lt;property name=&amp;quot;bpel.config.transaction&amp;quot;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; many=&amp;quot;false&amp;quot; type=&amp;quot;xs:string&amp;quot;&amp;gt;requiresNew&amp;lt;/property&amp;gt;           &lt;br /&gt;&amp;lt;/component&amp;gt;           &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&amp;lt;reference name=&amp;quot;BankAccountService&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ui:wsdlLocation=&amp;quot;&lt;a href="http://192.168.56.110:8081/WsatBankTransferService/WsatBankTransferService?WSDL&amp;quot;"&gt;http://192.168.56.110:8081/WsatBankTransferService/WsatBankTransferService?WSDL&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;interface.wsdl interface=&amp;quot;&lt;a href="http://tempuri.org/#wsdl.interface(WsatBankTransferService)&amp;quot;/"&gt;http://tempuri.org/#wsdl.interface(WsatBankTransferService)&amp;quot;/&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;binding.ws port=&amp;quot;&lt;a href="http://tempuri.org/#wsdl.endpoint(WsatBankTransferService/WSHttpBindingIService)&amp;quot;"&gt;http://tempuri.org/#wsdl.endpoint(WsatBankTransferService/WSHttpBindingIService)&amp;quot;&lt;/a&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; location=&amp;quot;&lt;a href="http://192.168.56.110:8081/WsatBankTransferService/WsatBankTransferService?WSDL&amp;quot;"&gt;http://192.168.56.110:8081/WsatBankTransferService/WsatBankTransferService?WSDL&amp;quot;&lt;/a&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; soapVersion=&amp;quot;1.1&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;property name=&amp;quot;weblogic.wsee.wsat.transaction.flowOption&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; type=&amp;quot;xs:string&amp;quot; many=&amp;quot;false&amp;quot;&amp;gt;MANDATORY&amp;lt;/property&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;property name=&amp;quot;weblogic.wsee.wsat.transaction.version&amp;quot; type=&amp;quot;xs:string&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; many=&amp;quot;false&amp;quot;&amp;gt;DEFAULT&amp;lt;/property&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/binding.ws&amp;gt;       &lt;br /&gt;&amp;lt;/reference&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;At this point it does not matter if you used “RequiresNew” or “Required”, any of the two will start a new transaction because we do not pass any to the inbound “client” partnerlink.&lt;/p&gt;  &lt;p&gt;Now you can deploy the composite to the SOA domain.&lt;/p&gt;  &lt;h4&gt;Testing and Debugging WS-Atomic Transactions&lt;/h4&gt;  &lt;p&gt;Execute the composite in the EM Test page (&lt;a href="http://host:7001/em"&gt;http://host:7001/em&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;You should see a successfully completed instance and several SOAP or https calls in TcpMon. The latest should be the SOAP request to create the account – with the same WS-Coordination Context as seen in part 1:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;env:Envelope xmlns:env=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/soap/envelope/&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&lt;/font&gt;&lt;/a&gt;       &lt;br /&gt;&lt;font face="Courier" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns:wsa=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;env:Header&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:To&amp;gt;&lt;/font&gt;&lt;a href="http://127.0.0.1:8081/WsatBankTransferService/WsatBankTransferService"&gt;&lt;font face="Courier" size="1"&gt;http://127.0.0.1:8081/WsatBankTransferService/WsatBankTransferService&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/wsa:To&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;/font&gt;&lt;a href="http://tempuri.org/WsatBankTransferService/createAccountRequest"&gt;&lt;font face="Courier" size="1"&gt;http://tempuri.org/WsatBankTransferService/createAccountRequest&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/wsa:Action&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:73432EF0A5E911DFBFAC43B9B866DC33&amp;lt;/wsa:MessageID&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:RelatesTo&amp;gt;urn:73432EF0A5E911DFBFAC43B9B866DC33&amp;lt;/wsa:RelatesTo&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:ReplyTo&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address&amp;gt;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing/anonymous"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing/anonymous&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/wsa:Address&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:ReferenceParameters&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;instra:tracking.ecid xmlns:instra=&amp;quot;&lt;/font&gt;&lt;a href="http://xmlns.oracle.com/sca/tracking/1.0&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://xmlns.oracle.com/sca/tracking/1.0&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;0000Id_N1rj3n3WjLxZR8A1COuk800001X&amp;lt;/instra:tracking.ecid&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;instra:tracking.conversationId xmlns:instra=&amp;quot;&lt;/font&gt;&lt;a href="http://xmlns.oracle.com/sca/tracking/1.0&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://xmlns.oracle.com/sca/tracking/1.0&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;urn:73432EF0A5E911DFBFAC43B9B866DC33&amp;lt;/instra:tracking.conversationId&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;instra:tracking.parentComponentInstanceId xmlns:instra=&amp;quot;&lt;/font&gt;&lt;a href="http://xmlns.oracle.com/sca/tracking/1.0&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://xmlns.oracle.com/sca/tracking/1.0&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;reference:50001&amp;lt;/instra:tracking.parentComponentInstanceId&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsa:ReferenceParameters&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsa:ReplyTo&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns3:CoordinationContext xmlns:ns3=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/10/wscoor&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://schemas.xmlsoap.org/ws/2004/10/wscoor&amp;quot;&lt;/font&gt;&lt;/a&gt;       &lt;br /&gt;&lt;font face="Courier" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns:ns4=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://schemas.xmlsoap.org/ws/2004/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;       &lt;br /&gt;&lt;font face="Courier" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; env:mustUnderstand=&amp;quot;1&amp;quot;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns3:Identifier&amp;gt;urn:uuid:BEA1-02783739A26FB5C280E1&amp;lt;/ns3:Identifier&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns3:Expires&amp;gt;298000&amp;lt;/ns3:Expires&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns3:CoordinationType&amp;gt;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/10/wsat"&gt;&lt;font face="Courier" size="1"&gt;http://schemas.xmlsoap.org/ws/2004/10/wsat&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/ns3:CoordinationType&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns3:RegistrationService&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns4:Address&amp;gt;&lt;/font&gt;&lt;a href="http://192.168.56.110:7001/wls-wsat/RegistrationPortTypeRPC"&gt;&lt;font face="Courier" size="1"&gt;http://192.168.56.110:7001/wls-wsat/RegistrationPortTypeRPC&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/ns4:Address&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns4:ReferenceParameters&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wls-wsat:txId xmlns:wls-wsat=&amp;quot;&lt;/font&gt;&lt;a href="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;BEA1-02783739A26FB5C280E1&amp;lt;/wls-wsat:txId&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wls-wsat:routing xmlns:wls-wsat=&amp;quot;&lt;/font&gt;&lt;a href="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;AdminServer&amp;lt;/wls-wsat:routing&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns4:ReferenceParameters&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns3:RegistrationService&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns3:CoordinationContext&amp;gt;         &lt;br /&gt;&amp;#160; &amp;lt;/env:Header&amp;gt;         &lt;br /&gt;&amp;#160; &amp;lt;env:Body&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;createAccount xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://tempuri.org/&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://tempuri.org/&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;wwewe&amp;lt;/createAccount&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;/env:Body&amp;gt;         &lt;br /&gt;&amp;lt;/env:Envelope&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Debugging of all WS-AT related actions on server-side can be switched on with the java command line flag&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-Dweblogic.debug.DebugWSAT=true&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You will see a lot of 2PC handshake requests like for example:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224575&amp;gt; &lt;b&gt;&amp;lt;WS-AT transaction id is BEA1-45D0D4EFBBE0B5C280E1 and time to live is 299,000 for transaction Name=…&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224504&amp;gt;&lt;b&gt; &amp;lt;registerOperation entered with …&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224503&amp;gt; &lt;b&gt;&amp;lt;Registering Durable2PC Participant &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224538&amp;gt; &amp;lt;&lt;b&gt;Durable2PC WS-AT Participant created for Address&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224539&amp;gt; &lt;b&gt;&amp;lt;Prepare called for Address &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224603&amp;gt; &lt;b&gt;&amp;lt;Successfully created participant port &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224602&amp;gt; &lt;b&gt;&amp;lt;Durable participant port placed in cache for&lt;/b&gt;&lt;/p&gt;   &lt;b&gt;&lt;/b&gt;&lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224510&amp;gt; &lt;strong&gt;&amp;lt;preparedOperation Xid:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224511&amp;gt; &lt;b&gt;&amp;lt;preparedOperation exited with Notification&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224546&amp;gt; &lt;b&gt;&amp;lt;Commit called for Address&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224590&amp;gt; &lt;b&gt;&amp;lt;About to send commit for durable participant with&lt;/b&gt; &lt;strong&gt;Xid&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224518&amp;gt; &lt;b&gt;&amp;lt;committedOperation entered with Notification&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224591&amp;gt; &lt;b&gt;&amp;lt;Commit sent for durable participant w&lt;/b&gt;ith Xid&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224547&amp;gt; &amp;lt;&lt;b&gt;Commit call received reply COMMITTED before wait was entered for Address&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224583&amp;gt; &lt;b&gt;&amp;lt;Durable participant port removed from cache&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;WseeWsat&amp;gt; &amp;lt;BEA-224584&amp;gt; &lt;b&gt;&amp;lt;Durable participant XAResource removed from cache&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Monitoring and Management&lt;/h4&gt;  &lt;p&gt;In the SOA Control web administration frontend, you can set or change the WS-AT settings for all endpoints. Right-click on the SOA composite and select “Service/Reference Properties”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGU8zaw9yDI/AAAAAAAAANM/_2Vx4Grdv_Q/s1600-h/image%5B91%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="368" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU80CaNbII/AAAAAAAAANU/xdWAMuYq1-g/image_thumb%5B65%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In our case, we only see the client-side composite endpoint because we do not have a SOA on the callee side.&lt;/p&gt;  &lt;p&gt;Under “Properties” you have access to the Transaction Flow and WS-AT Version settings.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU6BNa98VI/AAAAAAAAANc/l149IzKI7jo/s1600-h/image%5B97%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="425" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGU6BsjFufI/AAAAAAAAANk/BezE8-nZUZU/image_thumb%5B71%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For the JAX-WS Webservice published on the Samples Server you can see the settings in the WLS console:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGU6CIyCtCI/AAAAAAAAANs/SkaumXudyMs/s1600-h/image%5B99%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGU6DJqDdBI/AAAAAAAAANw/GOTSTnXZTno/image_thumb%5B73%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Navigate to the webservicesWsatSimpleEar deployment, expand the WsatBankTransferService web service and click on it. You will see the WS-AT setting under “Configuration”, “Ports”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGU6DksO8ZI/AAAAAAAAAN0/higb0ZaawhU/s1600-h/image%5B101%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU6EeOMKoI/AAAAAAAAAN4/3xI_iA0u8fA/image_thumb%5B75%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on any operation or the whole web service to modify this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGU6FS3gF_I/AAAAAAAAAN8/pIwgHpGPZH0/s1600-h/image%5B103%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="421" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TGU6GbbhhKI/AAAAAAAAAOA/izkMKhJ7fNQ/image_thumb%5B77%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can also verify the WS-AT setting in the WSDL on the web service:&lt;/p&gt;  &lt;p&gt;If you look at the &lt;a href="http://groups.google.com/group/stefansbloggroup/web/WsatBankTransferService.wsdl"&gt;WSDL&lt;/a&gt; then you see for every binding the attached WS-AT policy:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;operation name=&amp;quot;createAccount&amp;quot;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;wsp:PolicyReference URI=&amp;quot;#WSAT10&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This scenario was a single operation “CreateAccount”. In the next part we will create a sample using 2 SOA composites being called by another composite in one atomic transactions. Both callees use DBAdapter, so we can play around with rollbacks easily.&lt;/p&gt;  &lt;p&gt;Stay tuned!&lt;/p&gt;  &lt;h4&gt;Troubleshooting&lt;/h4&gt;  &lt;p&gt;If you receive the following exception when testing the composite, then you did not copy the new policy-accessor-config.xml&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="1"&gt;&lt;font size="2"&gt;Caused by: javax.xml.ws.soap.SOAPFaultException: transaction context is required to be inflowed at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:955) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:750) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:234) at ...&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-4124410368775607893?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/4124410368775607893/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-with-ws_13.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/4124410368775607893?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/4124410368775607893?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-with-ws_13.html" title="Web Service Transactions Part 2: WS-AtomicTransaction with SOA Composite calling EJB-Web Service" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Tkz-1yXp6NI/TGU8NMS0XWI/AAAAAAAAAJI/z7AoVERL80k/s72-c/image_thumb%5B31%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUABRHY4fSp7ImA9Wx5SGUg.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-5801713394855891108</id><published>2010-08-12T08:15:00.001-07:00</published><updated>2010-08-16T04:22:35.835-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-16T04:22:35.835-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WS-AtomicTransaction" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="JAX-WS" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><title>Web Service Transactions Part 1: WS-AtomicTransaction with EJB-based Webservices and WLS 11gR1</title><content type="html">&lt;p&gt;To make it clear at first: I am not a fan of web service transactions. They contradict the principle of loose coupling in a SOA. But it is like with XA and 2PC – there are situations where you want to use them or where it is almost mandatory.&lt;/p&gt;  &lt;p&gt;In SOA there have been concepts like compensation in BPEL to avoid atomic transactions spanning several SOAP calls (before they were possible and available technically) but some business requirements do not allow to commit at first and undo later on.&lt;/p&gt;  &lt;p&gt;Also, Oracle SOA Suite optimizes local calls, so transactions were possible over multiple service invocations if they are on the same application server instance (see optSoapShortcut property in 10g)&lt;/p&gt;  &lt;p&gt;To allow web services with SOAP using transactions like in EJB-based distributed applications the following standards have been published by OASIS (&lt;a title="http://www.oasis-open.org/specs/" href="http://www.oasis-open.org/specs/"&gt;http://www.oasis-open.org/specs/&lt;/a&gt;):&lt;/p&gt;  &lt;li&gt;&lt;a href="http://www.oasis-open.org/specs/#wstx-wsatv1.2"&gt;WS-AtomicTransaction v1.2&lt;/a&gt; &lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.oasis-open.org/specs/#wstx-wsbav1.2"&gt;WS-BusinessActivity v1.2&lt;/a&gt; &lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.oasis-open.org/specs/#wstx-wscoorv1.2"&gt;WS-Coordination v1.2&lt;/a&gt;     &lt;p&gt;The latest version 1.2 was published in February 2009 and WS-Coordination and WS-AtomicTransaction support started in Weblogic Server 11gR1 (10.3.3) and Oracle Soa Suite 11g PS2 (11.1.1.3). WS-BusinessActivity is for long running business transactions and therefore not covered here.&lt;/p&gt;    &lt;p&gt;With WS-AtomicTransaction (abbreviated WS-AT) it is possible to call another web service (callee) from a web service (caller) within the same transaction. The transaction context is passed to the other web service via soap in a CoordinationContext structure in the SOAP header. Some other components work together as outlined &lt;a href="http://download.oracle.com/docs/cd/E14571_01/web.1111/e15184/transaction.htm#BABIHFFF"&gt;here&lt;/a&gt; to let the second web service participate in the transaction.&lt;/p&gt;    &lt;p&gt;Let’s have a look at how you can setup a transaction spanning 2 or more web services.&lt;/p&gt;    &lt;p&gt;The first scenario we will look at is when you have implemented 2 web service based on JAX-WS EJBs in Weblogic and you want to call the one from the other.&lt;/p&gt;    &lt;p&gt;A good startup example for WS-AtomicTransaction is included in the Weblogic Server 11gR1 installation when you select custom install and include the &amp;quot;Server Samples” for installation. Then you can move to %WLS_HOME%\wlserver_10.3\samples\server\examples\src\examples\webservices\jaxws\wsat.&lt;/p&gt;    &lt;p&gt;After setting the examples environment, compiling and deploying with ant you will see the Bank application:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TGQQKWFbm-I/AAAAAAAAAH0/tD7CmDu4YnY/s1600-h/ws-at-sample%5B4%5D.jpg"&gt;&lt;img title="ws-at-sample" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="314" alt="ws-at-sample" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGQQLO8KdcI/AAAAAAAAAH4/G_d9m2cgGsM/ws-at-sample_thumb%5B2%5D.jpg?imgmax=800" width="391" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You can enter for example local account number 100 and remote account number 100 with initial amounts of 100 USD.Then try to transfer 20 USD from local to remote account. This is done in one atomic transaction.&lt;/p&gt;    &lt;p&gt;The application consists of one servlet which makes modifications on the local account and then calls the web service for the remote&amp;#160; located at&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://host:port/WsatBankTransferService/WsatBankTransferService"&gt;http://host:port/WsatBankTransferService/WsatBankTransferService&lt;/a&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;The wsdl is available at&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://192.168.56.110:7001/WsatBankTransferService/WsatBankTransferService?WSDL"&gt;&lt;/a&gt;&lt;a href="http://host:port/WsatBankTransferService/WsatBankTransferService?WSDL"&gt;http://host:port/WsatBankTransferService/WsatBankTransferService?WSDL&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;To be able to see the SOAP request to the web service I have put &lt;a href="http://ws.apache.org/commons/tcpmon/index.html"&gt;TcpMon&lt;/a&gt;&amp;#160; inbetween: change the following lines in WsatBankTransferServlet.java to map the TcpMon port (i.e. 8081):&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;font face="Courier" size="1"&gt;public void doPost(HttpServletRequest request,HttpServletResponse response) &lt;/font&gt;&lt;/p&gt;      &lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; throws ServletException, IOException { &lt;/font&gt;&lt;/p&gt;      &lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;#160;&amp;#160;&amp;#160; // define remote Webservice server          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; String url = &amp;quot;&lt;/font&gt;&lt;a href="http://localhost:8081&amp;quot;;"&gt;&lt;font face="Courier" size="1"&gt;http://localhost:8081&amp;quot;;&lt;/font&gt;&lt;/a&gt;         &lt;br /&gt;&lt;font face="Courier" size="1"&gt;&amp;#160;&amp;#160;&amp;#160; URL wsdlURL = new URL(url + &amp;quot;/WsatBankTransferService/WsatBankTransferService&amp;quot;);&lt;/font&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;The SOAP request looks like follows – the WS-AT specific parts are contained in the CoordinationContext structure:&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;          &lt;br /&gt;&amp;lt;S:Envelope xmlns:S=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/soap/envelope/&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;          &lt;br /&gt;&amp;#160; &amp;lt;S:Header&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;To xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;&lt;/font&gt;&lt;a href="http://localhost:8081/WsatBankTransferService/WsatBankTransferService"&gt;&lt;font face="Courier" size="1"&gt;http://localhost:8081/WsatBankTransferService/WsatBankTransferService&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/To&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Action xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;&lt;/font&gt;&lt;a href="http://tempuri.org/WsatBankTransferService/createAccountRequest"&gt;&lt;font face="Courier" size="1"&gt;http://tempuri.org/WsatBankTransferService/createAccountRequest&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/Action&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ReplyTo xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Address&amp;gt;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing/anonymous"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing/anonymous&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/Address&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ReplyTo&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FaultTo xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Address&amp;gt;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing/anonymous"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing/anonymous&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;lt;/Address&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/FaultTo&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;MessageID xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2005/08/addressing&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;&lt;font face="Courier"&gt;&amp;gt;uuid:a64a702b-0ce6-40fc-9b12-71a494c41520&amp;lt;/MessageID&amp;gt;            &lt;br /&gt;&lt;font color="#ff0000"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;CoordinationContext xmlns:ns3=&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/soap/envelope/&amp;quot;"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&lt;/font&gt;&lt;/a&gt;         &lt;br /&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns:ns2=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/08/addressing&amp;quot;"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://schemas.xmlsoap.org/ws/2004/08/addressing&amp;quot;&lt;/font&gt;&lt;/a&gt;         &lt;br /&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/10/wscoor&amp;quot;"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://schemas.xmlsoap.org/ws/2004/10/wscoor&amp;quot;&lt;/font&gt;&lt;/a&gt;         &lt;br /&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ns3:mustUnderstand=&amp;quot;1&amp;quot;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Identifier&amp;gt;urn:uuid:BEA1-0070D4A7F05CBD76B51F&amp;lt;/Identifier&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expires&amp;gt;900000&amp;lt;/Expires&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;CoordinationType&amp;gt;&lt;/font&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/10/wsat"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://schemas.xmlsoap.org/ws/2004/10/wsat&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;&amp;lt;/CoordinationType&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;RegistrationService&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns2:Address&amp;gt;&lt;/font&gt;&lt;a href="http://192.168.56.110:7001/wls-wsat/RegistrationPortTypeRPC"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://192.168.56.110:7001/wls-wsat/RegistrationPortTypeRPC&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;&amp;lt;/ns2:Address&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns2:ReferenceParameters&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wls-wsat:txId xmlns:wls-wsat=&amp;quot;&lt;/font&gt;&lt;a href="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;&amp;gt;BEA1-0070D4A7F05CBD76B51F&amp;lt;/wls-wsat:txId&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wls-wsat:routing xmlns:wls-wsat=&amp;quot;&lt;/font&gt;&lt;a href="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;"&gt;&lt;font face="Courier" color="#ff0000" size="1"&gt;http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;&lt;font face="Courier"&gt;&lt;font color="#ff0000"&gt;&amp;gt;examplesServer&amp;lt;/wls-wsat:routing&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns2:ReferenceParameters&amp;gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/RegistrationService&amp;gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/CoordinationContext&amp;gt;&lt;/font&gt;             &lt;br /&gt;&amp;#160; &amp;lt;/S:Header&amp;gt;             &lt;br /&gt;&amp;#160; &amp;lt;S:Body&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns2:createAccount xmlns:ns2=&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;a href="http://tempuri.org/&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://tempuri.org/&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;arg0&amp;gt;222&amp;lt;/arg0&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;arg1&amp;gt;0&amp;lt;/arg1&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns2:createAccount&amp;gt;           &lt;br /&gt;&amp;#160; &amp;lt;/S:Body&amp;gt;           &lt;br /&gt;&amp;lt;/S:Envelope&amp;gt;&lt;/font&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;More details regarding the implementation:&lt;/p&gt;    &lt;p&gt;The WsatBankTransferService bean contains the following annotations to enable WS-AT:&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;font face="Courier" size="1"&gt;@WebService(serviceName = &amp;quot;WsatBankTransferService&amp;quot;, targetNamespace = &amp;quot;&lt;/font&gt;&lt;a href="http://tempuri.org/&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://tempuri.org/&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;, portName = &amp;quot;WSHttpBindingIService&amp;quot;)          &lt;br /&gt;&lt;font color="#ff0000"&gt;@Transactional(value=Transactional.TransactionFlowType.MANDATORY,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; version=weblogic.wsee.wstx.wsat.Transactional.Version.WSAT10)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Each method of the webservice looks up the JTA user transaction (if available):&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;font face="Courier" size="1"&gt;ctx = new InitialContext();          &lt;br /&gt;tx = (UserTransaction)ctx.lookup(&amp;quot;javax.transaction.UserTransaction&amp;quot;);&lt;/font&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;The servlet passes the TransactionalFeature to the web service as documented in&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;a href="http://download.oracle.com/docs/cd/E14571_01/web.1111/e13734/transaction.htm"&gt;Oracle® Fusion Middleware Programming Advanced Features of JAX-WS Web Services for Oracle WebLogic Server – Chapter 3: Using Web Services Atomic Transactions&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;font face="Courier" size="1"&gt;// Passing the TransactionalFeature to the Client          &lt;br /&gt;private WsatBankTransferService getWebService(URL wsdlURL) {           &lt;br /&gt;&amp;#160; TransactionalFeature feature = new TransactionalFeature();           &lt;br /&gt;&amp;#160; feature.setFlowType(TransactionFlowType.MANDATORY);           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; feature.setVersion(Version.WSAT10);           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WsatBankTransferService_Service service =           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new WsatBankTransferService_Service(wsdlURL,           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new QName(&amp;quot;&lt;/font&gt;&lt;a href="http://tempuri.org/&amp;quot;"&gt;&lt;font face="Courier" size="1"&gt;http://tempuri.org/&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier" size="1"&gt;, &amp;quot;WsatBankTransferService&amp;quot;));          &lt;br /&gt;&lt;/font&gt;&lt;font face="Courier" size="1"&gt;&amp;#160; return service.getWSHttpBindingIService(new javax.xml.ws.soap.AddressingFeature(), feature);&lt;/font&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;In the next parts we will call the WsatBankTransferService from a SOA Composite and we will span atomic transactions over multiple SOA composites.&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/li&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-5801713394855891108?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/5801713394855891108/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-with-ws.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5801713394855891108?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5801713394855891108?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2010/08/web-service-transactions-with-ws.html" title="Web Service Transactions Part 1: WS-AtomicTransaction with EJB-based Webservices and WLS 11gR1" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_Tkz-1yXp6NI/TGQQLO8KdcI/AAAAAAAAAH4/G_d9m2cgGsM/s72-c/ws-at-sample_thumb%5B2%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A08ARHs4eSp7ImA9WxFaEUo.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-2843733539263029112</id><published>2010-07-15T00:33:00.001-07:00</published><updated>2010-07-15T00:44:05.531-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-15T00:44:05.531-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Application Integration Architecture (AIA)" /><title>Speeding up AIA 11g R1 Server Startup Time</title><content type="html">&lt;p&gt;The Oracle Application Integration Architecture has been released recently in the updated 11g R1 Version.    &lt;br /&gt;The name is still coming from early times - nowadays because of its capabilities and positioning it should be named more likely Oracle Enterprise Integration Architecture....&lt;/p&gt;  &lt;p&gt;AIA 11g R1 includes several fantastic new features as well as the upgrade to Oracle Weblogic Server 11g as a foundation.    &lt;br /&gt;New features include the Service Constructor and the Project Lifecycle Workbench - both increasing productivity.     &lt;br /&gt;    &lt;br /&gt;If you install AIA 11g you may notice however a long startup time of the Weblogic soa server. On my VirtualBox this took almost 15 minutes. This has nothing to do with a potential overhead of AIA - it is simply a misconfiguration by the AIA installer.     &lt;br /&gt;Here is the cause and the solution:&lt;/p&gt; &lt;b&gt;&lt;/b&gt;  &lt;p&gt;&lt;b&gt;Cause: &lt;/b&gt;    &lt;br /&gt;The AIA installer creates several data sources and connection pools. Open the Weblogic Console (&lt;a href="http://localhost:7001/console"&gt;http://localhost:7001/console&lt;/a&gt;):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/TD65piF0lSI/AAAAAAAAAHc/qlgVz_Na9Z0/s1600-h/image%5B21%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="449" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/TD65rvet0GI/AAAAAAAAAHg/hAN4LB6gK9w/image_thumb%5B15%5D.png?imgmax=800" width="707" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Look into the connection pool settings of each data source and verify the value of “Login Delay” under the “Advanced” section (see bottom of following image):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TD65tZdAAGI/AAAAAAAAAHk/BZKsqEnHpiw/s1600-h/image%5B17%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="440" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/TD65vEUPmnI/AAAAAAAAAHo/vcaIck40Am8/image_thumb%5B11%5D.png?imgmax=800" width="707" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The AIA installer sets 30 seconds as Login Delay for each data source. This explains the long startup time because this adds up and delays the bootstrapping.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Change this value to 0 (zero) as a login delay is completely unnecessary with a low initial limit of very few connections. (The setting is intended to prevent a huge mass of logins to the database at the same time).&lt;/p&gt;  &lt;p&gt;You have to restart the server. After this change the startup should be typically 4-5 times faster than before.&lt;/p&gt;  &lt;p&gt;You may want to know how to detect the issue? First set the log level of Weblogic server to “Debug”:&lt;/p&gt;  &lt;p&gt;Change to Servers/soa_server1/Logging/Advanced:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/TD65wiczPsI/AAAAAAAAAHs/icxNkpIDG5c/s1600-h/image%5B22%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="437" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/TD65yOT5GhI/AAAAAAAAAHw/mW7LDLAJBVg/image_thumb%5B16%5D.png?imgmax=800" width="709" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Set the log levels of “Log file” and “Standard Out” to “Debug” or “Info”. Restart the soa_server1.&lt;/p&gt;  &lt;p&gt;After that you will notice the following entry in the soa_server1.out    &lt;br /&gt;(located in /home/oracle/Middleware/user_projects/domains/AIA_domain/servers/soa_server1/logs):&lt;/p&gt;  &lt;p&gt;&amp;lt;Info&amp;gt; &amp;lt;JDBC&amp;gt; &amp;lt;BEA-001066&amp;gt; &amp;lt;Delaying 30 seconds before making a AIADataSource pool connection.&amp;gt;&lt;/p&gt;  &lt;p&gt;Have fun!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-2843733539263029112?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/2843733539263029112/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2010/07/speeding-up-aia-11g-r1_15.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/2843733539263029112?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/2843733539263029112?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2010/07/speeding-up-aia-11g-r1_15.html" title="Speeding up AIA 11g R1 Server Startup Time" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Tkz-1yXp6NI/TD65rvet0GI/AAAAAAAAAHg/hAN4LB6gK9w/s72-c/image_thumb%5B15%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQH07fyp7ImA9WxNTFks.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-7488056647716309364</id><published>2009-08-19T00:05:00.001-07:00</published><updated>2009-08-19T00:07:51.307-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-19T00:07:51.307-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Application Server" /><category scheme="http://www.blogger.com/atom/ns#" term="BPEL" /><title>Oracle Application Server 10.1.3.5 Patchset Released</title><content type="html">&lt;p&gt;10.1.3.5 patchset has been released for Linux x86 and Windows 32 bit (64-bit Linux coming soon).   &lt;br /&gt;Patch is downloadable from Metalink:    &lt;br /&gt;Patchset 8626084     &lt;br /&gt;Description PLACEHOLDER BUG TO UPLOAD AS 10.1.3.5 PATCH-SET ON ARU &lt;/p&gt;  &lt;p&gt;One of the major new features is for example as BPEL instance migration feature, where you can “move” one running instance from one revision to another revision. More on this feature coming here soon!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-7488056647716309364?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/7488056647716309364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/08/oracle-application-serve-10135-patchset.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/7488056647716309364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/7488056647716309364?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/08/oracle-application-serve-10135-patchset.html" title="Oracle Application Server 10.1.3.5 Patchset Released" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0UFQn07eyp7ImA9WxNTEU0.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-3253118854947187677</id><published>2009-08-12T12:26:00.001-07:00</published><updated>2009-08-12T12:26:53.303-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-12T12:26:53.303-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="Enterprise Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="Load balancer" /><title>Load Balancing Strategies for SOA Infrastructures</title><content type="html">&lt;p&gt;When designing SOA infrastructures or Enterprise Architectures, most architects miss one component which may impact the overall system performance dramatically – the hardware load balancer.&lt;/p&gt;  &lt;p&gt;Typically a hardware load balancer like F5 BigIP exists as a shared component for many applications and services to distribute load between multiple servers or applications and to ensure failover in case of hardware or software failure.&lt;/p&gt;  &lt;p&gt;However, the typical setup of a load balancer is rarely suited for typical SOA services as the following example shows:&lt;/p&gt;  &lt;p&gt;A sample real life SOA service consists of a large order system which does the backend processing of customer orders. It was implemented using Oracle SOA Suite 10g and is based mainly on BPEL processes which contain the business logic and orchestrate&amp;#160; the backend systems like Product Catalog, Fulfillment and Billing. All the requests (orders) come from a CRM portal.&lt;/p&gt;  &lt;p&gt;This SOA implementation is running on an 8-node Linux-based BPEL cluster running Oracle Fusion Middleware 10g. In front of these 8-nodes, a F5 BigIP is distributing the load.&lt;/p&gt;  &lt;p&gt;Initially the load balancer setup was the following:&lt;/p&gt;  &lt;p&gt;- static round-robin to all 8 nodes    &lt;br /&gt;- session affinity (persistence) for a duration of one hour&lt;/p&gt;  &lt;p&gt;The corresponding rule for the BigIP configuration looks like&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;persist source_addr_1h&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Let’s look at the impact of these settings:&lt;/p&gt;  &lt;p&gt;Session Affinity (persistence) means that all requests coming from the same originating IP address will be routed by the load balancer to the same cluster node. This rule is mostly suited for typical web applications where it is desired to keep one HTTP session on the same cluster node.&lt;/p&gt;  &lt;p&gt;However this setup has a severe negative impact for backend SOA services as we can see shortly:&lt;/p&gt;  &lt;p&gt;The SOA order service consists of one invocation endpoint and some partnerlinks for calling the backend systems. Most of this communication is asynchronous, that means the backend systems are called via one-way requests and use callbacks to return messages back to the order system.&lt;/p&gt;  &lt;p&gt;What now happens is that the first request to the order system comes from the CRM system, resulting in a routing to one node (say “Node A”) of the cluster. If these requests come over the load balancer, then all subsequent request coming from the CRM system will also be routed to the same cluster node, because the originating IP is equal!&amp;#160; This results in a very poor overall load distribution. In fact only one of the 8 nodes will get most of the requests. When this node is at 100% resource utilization, the system will dramatically slow down even though the other 7 nodes are almost idle.&lt;/p&gt;  &lt;p&gt;But it is even getting worse.&lt;/p&gt;  &lt;p&gt;First of all, the same effect is in place for every callback from a backend system. So, if a callback (return message) is received from the Billing System, also the same node gets these answer repeatedly within one hour (though this need not be Node A, of course).&lt;/p&gt;  &lt;p&gt;Secondly, the static round-robin algorithm does not take in effect, which state each cluster node has. So, for example if one cluster node is heavily under load, because it processes some complex orders, and this results in 100% cpu load, then the load balancer will not recognize this but route lots of other requests to this node causing overload and saturation.&lt;/p&gt;  &lt;p&gt;In summary, a small misconfiguration of the load balancer will lead to a system which does not use the hardware of 8 nodes effectively, which will not be able to handle lots of requests and which will not scale well.&lt;/p&gt;  &lt;p&gt;So what are the recommendations?&lt;/p&gt;  &lt;p&gt;1. There should be no session affinity (persistence) at all for a runtime SOA system. There may be some exceptions, for example at deployment time. When deploying SOA services with multiple artifacts (for example multiple BPEL processes, WSDLs and XSDs), this should happen in general on the same cluster node first to prevent lots of replication and inconsistencies in the cluster. But this can be configured, for example by using a dedicated deployment server or setting up a virtual host as a deployment target.&lt;/p&gt;  &lt;p&gt;2. BigIP offers more sophisticated load balancing algorithms than dumb static round-robin. For example you can use the dynamic ratio load balancing (described in Chapter &amp;quot;Configuring servers for SNMP Dynamic Ratio load balancing&amp;quot; of the BigIP Reference Guide). This algorithms uses metrics which are calculated dynamically by SNMP agents running on each node. These SNMP agents are typically included in the LINUX distribution and just need to be started on each node. The load balancer then regularly queries these agents about the values, dynamically calculates the metrics and routes the requests accordingly. This means that the distribution of requests will be proportionally to the metrics of each node for each time frame.&lt;/p&gt;  &lt;p&gt;An example might look like&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;monitor type real_server {      &lt;br /&gt;interval 5       &lt;br /&gt;timeout 16       &lt;br /&gt;dest *.12345       &lt;br /&gt;method &amp;quot;GET&amp;quot;       &lt;br /&gt;cmd &amp;quot;GetServerStats&amp;quot;       &lt;br /&gt;metrics &amp;quot;ServerBandwidth:1.5,CPUPercentUsage, MemoryUsage,       &lt;br /&gt;TotalClientCount&amp;quot;       &lt;br /&gt;agent &amp;quot;Mozilla/4.0 (compatible: MSIE 5.0; Windows NT)       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The configuration of the Dynamic Ratio Load Balancing needs the following settings on BigIP side (example):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Interval:&amp;#160; 1 minute      &lt;br /&gt;Timeout:&amp;#160; 10 seconds      &lt;br /&gt;Community Strings:&amp;#160; &amp;quot;public&amp;quot;       &lt;br /&gt;SNMP Version: V2&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The overall effect is that only nodes which are not under load will get requests, and that the overall distribution of load will be much more effective.&amp;#160; All cluster nodes will be utilized and the overall system will scale well up to the limit of the all available nodes. Then, of course, when all 8 cluster nodes are at 100%, this algorithm cannot help anymore of course….&lt;/p&gt;  &lt;p&gt;References:&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=109"&gt;BigIP Reference Guide&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://download.oracle.com/docs/cd/E12839_01/core.1111/e12036/toc.htm"&gt;Oracle SOA Suite 11g Enterprise Deployment Guide&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://download.oracle.com/technology/tech/soa/soa_best_practices_1013x_drop3.pdf"&gt;Oracle SOA Suite 10g Best Practises&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;- &lt;a href="http://download.oracle.com/docs/cd/E12839_01/core.1111/e10106/toc.htm"&gt;Oracle Fusion Middleware 11g High Availability Guide&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-3253118854947187677?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/3253118854947187677/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/08/load-balancing-strategies-for-soa.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/3253118854947187677?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/3253118854947187677?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/08/load-balancing-strategies-for-soa.html" title="Load Balancing Strategies for SOA Infrastructures" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A08DRH09cSp7ImA9WxJbFE8.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-7499442514826444834</id><published>2009-07-22T12:44:00.001-07:00</published><updated>2009-07-24T03:04:35.369-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-24T03:04:35.369-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Enterprise Architecture" /><title>Enterprise Architecture Roundtable in Berlin and Frankfurt – Bookmark Your Calendars</title><content type="html">&lt;p&gt;On September 2nd, 2009 in Frankfurt and September 3rd, 2009 in Berlin, Oracle will organize an Enterprise Architecture Roundtable to discuss trends in infrastructures and methods for modern IT platforms. Main focus is to facilitate the exchange of Enterprise Architecture knowledge and experience between lead architects of our main customers. You are welcome to join. Register directly here:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.oracle.com/go/?&amp;amp;Src=6805602&amp;amp;Act=252&amp;amp;pcode=EMEAFM09043136MPP026&amp;amp;SC=msgid=8054406"&gt;2. September 2009 – Frankfurt &lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.oracle.com/go/?&amp;amp;Src=6805602&amp;amp;Act=251&amp;amp;pcode=EMEAFM09043136MPP027&amp;amp;SC=msgid=8054406"&gt;&lt;strong&gt;3. September 2009 - Berlin &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-7499442514826444834?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/7499442514826444834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/07/enterprise-architecture-roundtable-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/7499442514826444834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/7499442514826444834?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/07/enterprise-architecture-roundtable-in.html" title="Enterprise Architecture Roundtable in Berlin and Frankfurt – Bookmark Your Calendars" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEMAQX0-fCp7ImA9WxJUGE8.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-1521490921553683745</id><published>2009-07-17T03:19:00.001-07:00</published><updated>2009-07-17T03:27:20.354-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-17T03:27:20.354-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenSuse" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="JDeveloper" /><title>Running Oracle Soa Suite 11g on OpenSuse 11.1 – Part 2</title><content type="html">&lt;p&gt;PART 2 – Starting SOA Suite and Creating a First SOA Composite in &lt;a href="http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html" target="_blank"&gt;JDeveloper 11g Version 11.1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This continues Part 1 which can be found &lt;a href="http://stefankoser.blogspot.com/2009/07/running-oracle-fusion-middleware-11g.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After installation we need to take one steps before starting the servers:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Configure a boot.properties file in the soa_domain root directory:     &lt;br /&gt;This is simply a text file with 2 lines:       &lt;p&gt;username=weblogic       &lt;br /&gt;password=welcome1        &lt;br /&gt;      &lt;br /&gt;After first system start the password  entry will be encrypted.&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Starting SOA Suite contains of 2 servers:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;an AdminServer (running WebLogic Console and Grid Control Console) &lt;/li&gt;    &lt;li&gt;a ManagedServer soa_server1 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;At runtime, only the ManagedServer is required.&lt;/p&gt;  &lt;p&gt;Now we can start the servers with&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;wl_home&amp;gt;/user_projects/domains/soa_domain/startWebLogic.sh&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Test if you can access the WebLogic console at &lt;a href="http://&amp;amp;%7e%7especial_remove%21/#%7E%7Elt;host&amp;amp;%7E%7ESPECIAL_REMOVE%21#%7E%7Egt;:7001/console"&gt;http://&amp;lt;host&amp;gt;:7001/console&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/SmBPv22g-BI/AAAAAAAAAF0/jROUZvVONEI/s1600-h/clip_image0024.jpg"&gt;&lt;img title="clip_image002" style="border-width: 0px; display: inline;" alt="clip_image002" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/SmBPxSO7EDI/AAAAAAAAAF4/xsqMCs2ANTI/clip_image002_thumb1.jpg?imgmax=800" width="569" border="0" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After completion, start the Managed Server:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;wl_home&amp;gt;/user_projects/domains/soa_domain/startManagedWebLogic.cmd soa_server1 &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Check if you can access the soa infra test page at &lt;a href="http://&amp;amp;%7e%7especial_remove%21/#%7E%7Elt;host&amp;amp;%7E%7ESPECIAL_REMOVE%21#%7E%7Egt;:8001/soa-infra"&gt;:8001/soa-infra"&amp;gt;http://&amp;lt;host&amp;gt;:8001/soa-infra&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/SmBPyB3Q8BI/AAAAAAAAAF8/A2oINSNtKgI/s1600-h/clip_image00253.jpg"&gt;&lt;img title="clip_image002[5]" style="border-width: 0px; display: inline;" alt="clip_image002[5]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SmBPzV22QaI/AAAAAAAAAGA/9hjuCP0n5H8/clip_image0025_thumb1.jpg?imgmax=800" width="486" border="0" height="332" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now you can also login to Grid Control at &lt;a href="http://&amp;amp;%7e%7especial_remove%21/#%7E%7Elt;host&amp;amp;%7E%7ESPECIAL_REMOVE%21#%7E%7Egt;:7001/em"&gt;:7001/em"&amp;gt;http://&amp;lt;host&amp;gt;:7001/em&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBP0TTYi3I/AAAAAAAAAGE/37miAFkxrTg/s1600-h/clip_image00296.jpg"&gt;&lt;img title="clip_image002[9]" style="border-width: 0px; display: inline;" alt="clip_image002[9]" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/SmBP1Xp3onI/AAAAAAAAAGI/GbggtKllIVI/clip_image0029_thumb4.jpg?imgmax=800" width="620" border="0" height="438" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/SmBP2fheswI/AAAAAAAAAGM/-6aDXhME1hk/s1600-h/clip_image002114.jpg"&gt;&lt;img title="clip_image002[11]" style="border-width: 0px; display: inline;" alt="clip_image002[11]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/SmBP3gG8tZI/AAAAAAAAAGQ/jTlk89-7aOw/clip_image00211_thumb2.jpg?imgmax=800" width="625" border="0" height="436" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Notice the Linux System Resources: Altogether we use only 2,5 GB of RAM (including Linux…!)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBP498CoGI/AAAAAAAAAGU/QzxoLSxsM3M/s1600-h/clip_image002134.jpg"&gt;&lt;img title="clip_image002[13]" style="border-width: 0px; display: inline;" alt="clip_image002[13]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/SmBP52GHanI/AAAAAAAAAGY/IS-3XojX9Mg/clip_image00213_thumb2.jpg?imgmax=800" width="598" border="0" height="457" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Next install and run JDeveloper 11.1 (I used the generic JAR installer) and create an Application Server Connection:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBP6jifPrI/AAAAAAAAAGc/8HjLN8S3Kzk/s1600-h/clip_image002153.jpg"&gt;&lt;img title="clip_image002[15]" style="border-width: 0px; display: inline;" alt="clip_image002[15]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBP7ljvRrI/AAAAAAAAAGg/TFr3GlWHp8c/clip_image00215_thumb1.jpg?imgmax=800" width="462" border="0" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/SmBP8ggKgcI/AAAAAAAAAGk/UlhIK3-eR58/s1600-h/clip_image002173.jpg"&gt;&lt;img title="clip_image002[17]" style="border-width: 0px; display: inline;" alt="clip_image002[17]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/SmBP9h0w81I/AAAAAAAAAGs/INorVWDWI80/clip_image00217_thumb1.jpg?imgmax=800" width="465" border="0" height="353" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBP-iMb-5I/AAAAAAAAAGw/J1v_TuejKCI/s1600-h/clip_image002194.jpg"&gt;&lt;img title="clip_image002[19]" style="border-width: 0px; display: inline;" alt="clip_image002[19]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBP_n7v2qI/AAAAAAAAAG0/6LuaPcUP0iM/clip_image00219_thumb2.jpg?imgmax=800" width="466" border="0" height="356" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBQAmHD72I/AAAAAAAAAG4/8jhfmBUsbmY/s1600-h/clip_image002214.jpg"&gt;&lt;img title="clip_image002[21]" style="border-width: 0px; display: inline;" alt="clip_image002[21]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SmBQB7oQh0I/AAAAAAAAAG8/6hfDr4pfb7U/clip_image00221_thumb2.jpg?imgmax=800" width="479" border="0" height="367" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;From the About Menu, Check for Updates and install the SOA Composite Editor (this is NOT included in the default installation!):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBQC67-UAI/AAAAAAAAAHA/udXSrFJXT4o/s1600-h/clip_image002234.jpg"&gt;&lt;img title="clip_image002[23]" style="border-width: 0px; display: inline;" alt="clip_image002[23]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SmBQDwdozTI/AAAAAAAAAHE/CvB2D5wK4L8/clip_image00223_thumb2.jpg?imgmax=800" width="494" border="0" height="378" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now you are ready to create your first application:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;New Application &lt;/li&gt;    &lt;li&gt;New Project, for example a SOA Composite with a BPEL process: &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SmBQFEZNfgI/AAAAAAAAAHI/YtomANIYPA8/s1600-h/clip_image002254.jpg"&gt;&lt;img title="clip_image002[25]" style="border-width: 0px; display: inline;" alt="clip_image002[25]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SmBQGTm-52I/AAAAAAAAAHM/gPK_wx6VE4M/clip_image00225_thumb2.jpg?imgmax=800" width="579" border="0" height="374" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;With Project –&amp;gt; right click you can Deploy the composite to the SOA server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/SmBQHOfqK2I/AAAAAAAAAHQ/YZqdxRqOHBs/s1600-h/clip_image002274.jpg"&gt;&lt;img title="clip_image002[27]" style="border-width: 0px; display: inline;" alt="clip_image002[27]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/SmBQISUht6I/AAAAAAAAAHU/_L2LjeqDhCI/clip_image00227_thumb2.jpg?imgmax=800" width="534" border="0" height="514" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-1521490921553683745?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/1521490921553683745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/07/running-oracle-soa-suite-11g-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/1521490921553683745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/1521490921553683745?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/07/running-oracle-soa-suite-11g-on.html" title="Running Oracle Soa Suite 11g on OpenSuse 11.1 – Part 2" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_Tkz-1yXp6NI/SmBPxSO7EDI/AAAAAAAAAF4/xsqMCs2ANTI/s72-c/clip_image002_thumb1.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEIDRX07fyp7ImA9WxJUFkQ.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-6874901213992636289</id><published>2009-07-15T14:50:00.001-07:00</published><updated>2009-07-15T15:22:54.307-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-15T15:22:54.307-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenSuse" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite" /><title>Running Oracle Soa Suite 11g on OpenSuse 11.1 – Part 1</title><content type="html">&lt;p&gt;PART 1 – Installation of Oracle Database, Weblogic Application Server and SOA Suite 11gR1.&lt;/p&gt;  &lt;p&gt;Not only the version numbers match ;-)&amp;#160; Also the products – &lt;a href="http://www.opensuse.org" target="_blank"&gt;OpenSuse&lt;/a&gt; 11.1 and Oracle Fusion Middleware 11gR1 form an excellent couple even though not officially certified. While &lt;a href="http://www.oracle.com/technology/tech/linux/index.html" target="_blank"&gt;Oracle Enterprise Linux&lt;/a&gt; is the officially certified version, it lacks more recent kernel support which means also that WLAN drivers might not work for example. So&amp;#160; if you are looking for a lightweight Open Source Linux based installation (as development environment) of SOA Suite 11gR1 here is the way how I did it (Installation on Toshiba Tecra M9 Notebook with 4 GB RAM with Gnome desktop).&lt;/p&gt;  &lt;p&gt;1. Be sure to install OpenSuse 11.1 with the development tools and libraries and with 32-bit support for gcc, glibc and glibc-devel.&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Create user oracle and group oracle. Login as user oracle.&lt;/p&gt;  &lt;p&gt;3. Install &lt;a href="http://www.oracle.com/technology/software/products/database/index.html" target="_blank"&gt;Oracle Database 11.1.0.6 Standard Edition&lt;/a&gt; and create a default OLTP database with the creation assistant. Be sure to use character set AL32UTF8. I used an SGA size of 512 MB with autoextend=on.&lt;/p&gt;  &lt;p&gt;4. Install &lt;a href="http://download.oracle.com/otn/nt/middleware/11g/wls/wls1031_generic.jar" target="_blank"&gt;Weblogic Server 11g&lt;/a&gt; (10.3.1) – I used the generic jar installer.&lt;/p&gt;  &lt;p&gt;5. Install the &lt;a href="http://download.oracle.com/otn/linux/middleware/11g/ofm_rcu_linux_11.1.1.1.0_disk1_1of1.zip" target="_blank"&gt;11gR1 Database Repository Creation Utility&lt;/a&gt; and start it from &amp;lt;install&amp;gt;/bin/rcu&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5OcNRyqGI/AAAAAAAAADc/w5LxdT8F74I/s1600-h/clip_image002%5B17%5D.jpg"&gt;&lt;img title="clip_image002" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="386" alt="clip_image002" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5Odd0LG5I/AAAAAAAAADg/Nsz1V9xOEqA/clip_image002_thumb%5B4%5D.jpg?imgmax=800" width="497" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5OeeRnjVI/AAAAAAAAADk/7ElLYfPfrIQ/s1600-h/clip_image002%5B6%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[6]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="378" alt="clip_image002[6]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5Ofn5DJpI/AAAAAAAAADo/yFooduQmfng/clip_image002%5B6%5D_thumb%5B2%5D.jpg?imgmax=800" width="495" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5OgtfqOaI/AAAAAAAAADs/oU5X-PCEi5g/s1600-h/clip_image002%5B8%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[8]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="387" alt="clip_image002[8]" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5Oh-C7TEI/AAAAAAAAADw/kVrESOVfIOw/clip_image002%5B8%5D_thumb%5B2%5D.jpg?imgmax=800" width="506" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5Oi7i-TyI/AAAAAAAAAD0/PCksRBlHoXw/s1600-h/clip_image004%5B7%5D.jpg"&gt;&lt;img title="clip_image004" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="clip_image004" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5Oj_WAV1I/AAAAAAAAAD4/EjiyyFFJQ80/clip_image004_thumb%5B4%5D.jpg?imgmax=800" width="340" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5Ok58_8MI/AAAAAAAAAD8/Jln-CLaGmfQ/s1600-h/clip_image002%5B10%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[10]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="153" alt="clip_image002[10]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5OlpJVCPI/AAAAAAAAAEA/NGjtGkHG8Fk/clip_image002%5B10%5D_thumb%5B2%5D.jpg?imgmax=800" width="335" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5OmnBXU6I/AAAAAAAAAEE/voTjyUeW6yw/s1600-h/clip_image002%5B12%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[12]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="400" alt="clip_image002[12]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5On5mRrnI/AAAAAAAAAEI/nViit6dUXzg/clip_image002%5B12%5D_thumb%5B2%5D.jpg?imgmax=800" width="523" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To save space, I created single tablespaces “DEV_SOA” and “TEMP” for all repository schemas:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5OpZGoLFI/AAAAAAAAAEM/IM_hFeoRzUg/s1600-h/clip_image002%5B18%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[18]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="401" alt="clip_image002[18]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5OqT88oxI/AAAAAAAAAEQ/MZCbHvnf_cs/clip_image002%5B18%5D_thumb%5B2%5D.jpg?imgmax=800" width="525" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5OrbMABsI/AAAAAAAAAEU/2Y0Hxgh7YdI/s1600-h/clip_image002%5B20%5D%5B5%5D.jpg"&gt;&lt;img title="clip_image002[20]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="411" alt="clip_image002[20]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5Osm6dlHI/AAAAAAAAAEY/nmOf6RTbv2U/clip_image002%5B20%5D_thumb%5B3%5D.jpg?imgmax=800" width="534" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5Otut2mJI/AAAAAAAAAEc/ZWIGGYCiYjo/s1600-h/clip_image002%5B22%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[22]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="409" alt="clip_image002[22]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5Ou3cEoPI/AAAAAAAAAEg/glRsoFUU8u8/clip_image002%5B22%5D_thumb%5B2%5D.jpg?imgmax=800" width="535" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;6. Install the &lt;a href="http://download.oracle.com/otn/nt/middleware/11g/ofm_soa_generic_11.1.1.1.0_disk1_1of1.zip" target="_blank"&gt;Oracle SOA Suite 11gR1&lt;/a&gt; into the recently created WebLogic (BEA) Home.&lt;/p&gt;  &lt;p&gt;7. Next, execute &amp;lt;WLS_HOME&amp;gt;/common/config.sh to create a new WLS domain for SOA.&lt;/p&gt;  &lt;p&gt;First check if the Sun JDK has been set in commEnv.sh as JAVA_HOME – otherwise set the &amp;lt;WLS_HOME&amp;gt;/jdk160_11 as JAVA_HOME.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5Ov7KjZXI/AAAAAAAAAEk/P2-HHv4c0og/s1600-h/clip_image002%5B24%5D%5B7%5D.jpg"&gt;&lt;img title="clip_image002[24]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="389" alt="clip_image002[24]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5OxQuuWII/AAAAAAAAAEo/NVZySAGfuQw/clip_image002%5B24%5D_thumb%5B5%5D.jpg?imgmax=800" width="522" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5Oygjn0MI/AAAAAAAAAEs/d4ksgIqvf6I/s1600-h/clip_image002%5B26%5D%5B5%5D.jpg"&gt;&lt;img title="clip_image002[26]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="382" alt="clip_image002[26]" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5OzlNovUI/AAAAAAAAAEw/RBCp7ZZSr5o/clip_image002%5B26%5D_thumb%5B3%5D.jpg?imgmax=800" width="519" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5O0qH9M_I/AAAAAAAAAE0/FjykFaXNGCE/s1600-h/clip_image002%5B28%5D%5B7%5D.jpg"&gt;&lt;img title="clip_image002[28]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="396" alt="clip_image002[28]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5O1gr-ITI/AAAAAAAAAE4/eQuU4SKjeO8/clip_image002%5B28%5D_thumb%5B5%5D.jpg?imgmax=800" width="531" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5O2gPnn3I/AAAAAAAAAE8/DHzQz1U-cSA/s1600-h/clip_image002%5B30%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[30]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="391" alt="clip_image002[30]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5O4Xh7WvI/AAAAAAAAAFA/SlJjDAkKIjE/clip_image002%5B30%5D_thumb%5B2%5D.jpg?imgmax=800" width="533" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5O5fEo8pI/AAAAAAAAAFE/qBrIyvZaX_I/s1600-h/clip_image002%5B32%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[32]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="394" alt="clip_image002[32]" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5O6XaEB3I/AAAAAAAAAFI/HjRskHL3lKQ/clip_image002%5B32%5D_thumb%5B2%5D.jpg?imgmax=800" width="537" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Set the database connections to the ones created with RCU:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5O7zVXqUI/AAAAAAAAAFM/LADSloitFq0/s1600-h/clip_image002%5B34%5D%5B6%5D.jpg"&gt;&lt;img title="clip_image002[34]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="clip_image002[34]" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5O9BLLo_I/AAAAAAAAAFQ/OW12nEOeDqo/clip_image002%5B34%5D_thumb%5B4%5D.jpg?imgmax=800" width="544" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sl5O-_U6nxI/AAAAAAAAAFU/uDT_9_jaDZc/s1600-h/clip_image002%5B36%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[36]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="397" alt="clip_image002[36]" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5PAOa2wqI/AAAAAAAAAFY/PcKjwvBAxm8/clip_image002%5B36%5D_thumb%5B2%5D.jpg?imgmax=800" width="543" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5PBCFzc-I/AAAAAAAAAFc/gEovOYO5It4/s1600-h/clip_image002%5B38%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[38]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="402" alt="clip_image002[38]" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5PB5SfgOI/AAAAAAAAAFg/xFlkw2pSDgs/clip_image002%5B38%5D_thumb%5B2%5D.jpg?imgmax=800" width="549" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5PDJTjZ5I/AAAAAAAAAFk/kh6frSsB63k/s1600-h/clip_image002%5B40%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[40]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="408" alt="clip_image002[40]" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sl5PEgf0-mI/AAAAAAAAAFo/jZe6MkdcyVs/clip_image002%5B40%5D_thumb%5B2%5D.jpg?imgmax=800" width="557" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sl5PFs0FQ2I/AAAAAAAAAFs/ykioQ8XiAkA/s1600-h/clip_image002%5B42%5D%5B4%5D.jpg"&gt;&lt;img title="clip_image002[42]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="414" alt="clip_image002[42]" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5PGroWvHI/AAAAAAAAAFw/LE-mdonWsfA/clip_image002%5B42%5D_thumb%5B2%5D.jpg?imgmax=800" width="565" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finally you are done!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Troubleshooting:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;When you receive an error at Database linking in ins_client.mk at database installation time: Skip this step, complete the DB installation and execute &amp;lt;ORACLE_HOME&amp;gt;/bin/relink client after installation. &lt;/li&gt;    &lt;li&gt;If executing runInstaller fails, then include the option –jreLoc &amp;lt;path to JDK160_11&amp;gt; on the command line &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-6874901213992636289?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/6874901213992636289/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/07/running-oracle-fusion-middleware-11g.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/6874901213992636289?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/6874901213992636289?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/07/running-oracle-fusion-middleware-11g.html" title="Running Oracle Soa Suite 11g on OpenSuse 11.1 – Part 1" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sl5Odd0LG5I/AAAAAAAAADg/Nsz1V9xOEqA/s72-c/clip_image002_thumb%5B4%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkIGRngzcCp7ImA9WxJSFkU.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-5960950656407229151</id><published>2009-05-07T00:54:00.001-07:00</published><updated>2009-05-07T02:28:47.688-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-07T02:28:47.688-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JRockit" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite" /><title>JRockit JVM now certified for SOA Suite 10.1.3.4</title><content type="html">&lt;p&gt;Oracle JRockit (formerly BEA JRockit) is a well recognized JVM which has many advantages over Sun JVM. For example it overcomes the usual difficulties with PermGen space limitations of the Sun JVM, just to name one. In benchmarks in a real complex SOA project we have experienced performance advantages of JRockit over Sun on Linux of more than 50%!&lt;/p&gt;  &lt;p&gt;Since today, JRockit 1.6 (R27.6.3) is now certified for SOA Suite 10.1.3.4 on Linux and Windows!&lt;/p&gt;  &lt;p&gt;Please see the updated &lt;a href="http://www.oracle.com/technology/software/products/ias/files/oracle_soa_certification_101310.html"&gt;Oracle Fusion Middleware 10gR3 Certification Matrix&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;More on monitoring and performance tuning with JRockit and its superior Mission Control tool soon…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-5960950656407229151?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/5960950656407229151/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/05/jrockit-jvm-now-certified-for-soa-suite.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5960950656407229151?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5960950656407229151?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/05/jrockit-jvm-now-certified-for-soa-suite.html" title="JRockit JVM now certified for SOA Suite 10.1.3.4" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0MCRXw6cCp7ImA9WxJSFk0.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-2840069031829480796</id><published>2009-04-30T02:28:00.001-07:00</published><updated>2009-05-06T03:24:24.218-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-06T03:24:24.218-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle SOA Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JMS Adapter" /><category scheme="http://www.blogger.com/atom/ns#" term="BPEL" /><title>Using Oracle JMS Adapter – Part 1: Publish from BPEL to AQ via Partnerlink Invoke</title><content type="html">&lt;p&gt;Using the Oracle JMS Adapter is the standard way to inititate asynchronous communication to partner systems, for example JMS-based services, to databases using Oracle AQ or to IBM Websphere MQ.&lt;/p&gt;  &lt;p&gt;A complete sample (for SOA Suite 10.1.3.4) demonstrates the steps required for implementing a fire-and-forget (one-way) invoke to an AQ queue on an Oracle database:&lt;/p&gt;  &lt;p&gt;1. Create the following datasource and connection pool (in oc4j_soa/config/data-sources.xml) &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&amp;lt;managed-data-source name="SensorTestDS" connection-pool-name="SENSOR_CONNECTION_POOL" jndi-name="jdbc/SensorTestDS"/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&amp;lt;connection-pool name="SENSOR_CONNECTION_POOL"&amp;gt;      &lt;br /&gt;    &amp;lt;connection-factory factory-class="oracle.jdbc.pool.OracleDataSource" user="jmsuser" password="jmsuser" url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST=skoser-de.de.oracle.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DB10G.SKOSER)))"/&amp;gt;   &lt;br /&gt;  &amp;lt;/connection-pool&amp;gt;&lt;/span&gt;  &lt;/p&gt;    &lt;p&gt;(Note: The data source is named “Sensor..” because part 2 shows how to use this from a bpel activity sensor)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Enter resource provider in oc4j_soa/config/application.xml: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&amp;lt;resource-provider class="oracle.jms.OjmsContext" name="SendorTestRP"&amp;gt;      &lt;br /&gt;  &amp;lt;description&amp;gt;Sensor JMS/AQ&amp;lt;/description&amp;gt;       &lt;br /&gt;  &amp;lt;property name="datasource" value="jdbc/SensorTestDS"/&amp;gt;       &lt;br /&gt;&amp;lt;/resource-provider&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;The value of the datasource property must match the JNDI lookup (“jndi-name”) of the datasource in data-sources.xml.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Create database objects: create a queue named “JMS_OUT” and a queue table “JMS_OUT_TABLE”.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="font-family:Courier New;"&gt; /* Execute as SYS */      &lt;br /&gt;CONNECT SYS AS SYSDBA       &lt;br /&gt;DROP USER jmsuser CASCADE ; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;GRANT connect,resource,AQ_ADMINISTRATOR_ROLE TO jmsuser IDENTIFIED BY jmsuser ;      &lt;br /&gt;GRANT execute ON sys.dbms_aqadm  TO  jmsuser;       &lt;br /&gt;GRANT execute ON sys.dbms_aq     TO  jmsuser;       &lt;br /&gt;GRANT execute ON sys.dbms_aqin   TO  jmsuser;       &lt;br /&gt;GRANT execute ON sys.dbms_aqjms  TO  jmsuser; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;connect jmsuser/jmsuser; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;    begin      &lt;br /&gt;      sys.dbms_aqadm.create_queue_table(       &lt;br /&gt;        queue_table =&amp;gt; 'JMS_OUT_TABLE',       &lt;br /&gt;        queue_payload_type =&amp;gt; 'SYS.AQ$_JMS_MESSAGE',       &lt;br /&gt;        sort_list =&amp;gt; 'PRIORITY, ENQ_TIME',       &lt;br /&gt;        compatible =&amp;gt; '10.0.0',       &lt;br /&gt;        primary_instance =&amp;gt; 0,       &lt;br /&gt;        secondary_instance =&amp;gt; 0,       &lt;br /&gt;        storage_clause =&amp;gt; 'tablespace users pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited )');       &lt;br /&gt;    end;       &lt;br /&gt;    / &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;    begin      &lt;br /&gt;      sys.dbms_aqadm.create_queue(       &lt;br /&gt;        queue_name =&amp;gt; 'JMS_OUT',       &lt;br /&gt;        queue_table =&amp;gt; 'JMS_OUT_TABLE',       &lt;br /&gt;        queue_type =&amp;gt; sys.dbms_aqadm.normal_queue);       &lt;br /&gt;    end;       &lt;br /&gt;    /  &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;    begin      &lt;br /&gt;         dbms_aqadm.start_queue( queue_name =&amp;gt;'JMS_OUT' ,enqueue =&amp;gt; true ,dequeue =&amp;gt; true );       &lt;br /&gt;    end; &lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;5. Create a new connection factory entry in JMSAdapter oc4j-ra.xml   &lt;br /&gt;      (oc4j-soa/application-deployments/default/JMSAdapter/oc4j-ra.xml)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&amp;lt;connector-factory location="eis/Jms/11gAQ" connector-name="Jms Adapter"&amp;gt;      &lt;br /&gt;    &amp;lt;config-property name="connectionFactoryLocation"   value="java:comp/resource/SensorTestRP/QueueConnectionFactories/QCF"/&amp;gt;       &lt;br /&gt;    &amp;lt;config-property name="factoryProperties" value=""/&amp;gt;       &lt;br /&gt;    &amp;lt;config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/&amp;gt;       &lt;br /&gt;    &amp;lt;config-property name="isTopic" value="false"/&amp;gt;       &lt;br /&gt;    &amp;lt;config-property name="isTransacted" value="false"/&amp;gt;       &lt;br /&gt;    &amp;lt;config-property name="username" value="jmsuser"/&amp;gt;       &lt;br /&gt;    &amp;lt;config-property name="password" value="jmsuser"/&amp;gt;       &lt;br /&gt;    &amp;lt;connection-pooling use="private"&amp;gt;       &lt;br /&gt;        &amp;lt;property name="waitTimeout" value="180" /&amp;gt;       &lt;br /&gt;        &amp;lt;property name="scheme" value="fixed_wait" /&amp;gt;       &lt;br /&gt;        &amp;lt;property name="property-check-interval" value="5" /&amp;gt;       &lt;br /&gt;        &amp;lt;property name="inactivity-timeout-check" value="all" /&amp;gt;       &lt;br /&gt;        &amp;lt;property name="abandoned-connection-timeout" value="20" /&amp;gt;       &lt;br /&gt;        &amp;lt;property name="autoCloseSession" value="" /&amp;gt;       &lt;br /&gt;        &amp;lt;property name="inactivity-timeout" value="120" /&amp;gt;       &lt;br /&gt;    &amp;lt;/connection-pooling&amp;gt;       &lt;br /&gt;    &amp;lt;security-config use="none"&amp;gt;       &lt;br /&gt;    &amp;lt;/security-config&amp;gt;       &lt;br /&gt;&amp;lt;/connector-factory&amp;gt;&lt;/span&gt; &lt;/p&gt;    &lt;p&gt;The string after “java:comp/resource/” must match the resource provider name in application.xml.&lt;/p&gt;    &lt;p&gt;IsTransacted must be set to false for outbound JMSAdapter (see Metalink Note &lt;strong&gt;418884.1&lt;/strong&gt; ).&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;6. Restart oc4j&lt;/p&gt;  &lt;p&gt;7. Design a bpel process using the JMS Adapter:&lt;/p&gt;  &lt;p&gt;Create a default async bpel process and insert one assign and one invoke activity. &lt;/p&gt;  &lt;p&gt;Create a new partnerlink using the “Define Adapter Service” icon:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/Sflu7RfkuBI/AAAAAAAAAB0/VKWXhC56i-8/s1600-h/image%5B9%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sflu8B12LTI/AAAAAAAAAB4/g6JAIo1KsWY/image_thumb%5B5%5D.png?imgmax=800" border="0" width="474" height="359" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/Sflu8ryqIII/AAAAAAAAAB8/f5bxAEhjJ-o/s1600-h/image%5B14%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sflu9aSu3-I/AAAAAAAAACA/gOghzKriS-8/image_thumb%5B8%5D.png?imgmax=800" border="0" width="485" height="367" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Define a db connection to the jmsuser schema:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sflu9_hoP7I/AAAAAAAAACE/ljb2tEay7yY/s1600-h/image%5B18%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sflu-rLkLMI/AAAAAAAAACI/XCKIQPUI8mQ/image_thumb%5B10%5D.png?imgmax=800" border="0" width="489" height="333" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/Sflu_Pw7vqI/AAAAAAAAACM/JblUaATMHJ0/s1600-h/image%5B23%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sflu_wWvrnI/AAAAAAAAACQ/zYuTsS6LHyg/image_thumb%5B13%5D.png?imgmax=800" border="0" width="495" height="340" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/SflvAT8sUjI/AAAAAAAAACU/kETA9pBFe3I/s1600-h/image%5B27%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/SflvBM6ZNDI/AAAAAAAAACY/IgdmoLsaaLY/image_thumb%5B15%5D.png?imgmax=800" border="0" width="516" height="351" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/SflvBrM3bSI/AAAAAAAAACc/g85ylaPBC7w/s1600-h/image%5B32%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SflvCekhwXI/AAAAAAAAACg/XrWe3EfwXIA/image_thumb%5B18%5D.png?imgmax=800" border="0" width="529" height="363" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Continue with the Adpater service creation&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Tkz-1yXp6NI/SflvDOSLCHI/AAAAAAAAACk/1ftGDpmGf7A/s1600-h/image%5B37%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/SflvD2FY1UI/AAAAAAAAACo/EESgyRbzVlw/image_thumb%5B21%5D.png?imgmax=800" border="0" width="539" height="409" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SflvEVyv-JI/AAAAAAAAACs/EKBT1h2l_pc/s1600-h/image%5B41%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SflvFS75jFI/AAAAAAAAACw/l0CYff1RC8U/image_thumb%5B23%5D.png?imgmax=800" border="0" width="553" height="416" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SflvF0qxv6I/AAAAAAAAAC0/CMY_fwm7nmE/s1600-h/image%5B45%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/SflvGsiGDQI/AAAAAAAAAC4/Ect2hB6gcZk/image_thumb%5B25%5D.png?imgmax=800" border="0" width="572" height="430" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Destination Name above must contain  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;java:comp/resource/SensorTestRP/Queues/JMSUSER.JMS_OUT &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;We want to publish employees to the queue so copy the addemployees.xsd form &lt;a href="http://stefansbloggroup.googlegroups.com/web/ADDEMPLOYEES.xsd?gda=Lgk-9kIAAABK4IIxgswZ0F4Al9opbfFVfVv04ReREqqczfYSj_qK2cUR4mR_yllKarUyn2aHKuJV4u3aa4iAIyYQIqbG9naPgh6o8ccLBvP6Chud5KMzIQ&amp;amp;hl=en" target="_blank"&gt;here&lt;/a&gt; to the BPEL project (in directory bpel)  and reference it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/SflvHHMWd6I/AAAAAAAAAC8/Mpz16QEMnuo/s1600-h/image%5B50%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SflvHy4naCI/AAAAAAAAADA/9KfouRq5MUU/image_thumb%5B28%5D.png?imgmax=800" border="0" width="592" height="449" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The resulting bpel process should look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Tkz-1yXp6NI/SflvIgm8s7I/AAAAAAAAADE/m3GZGzy_dWg/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh5.ggpht.com/_Tkz-1yXp6NI/SflvJmCBaeI/AAAAAAAAADI/ezts9E68eXo/image_thumb%5B2%5D.png?imgmax=800" border="0" width="684" height="440" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can download the BPEL Process project for JDeveloper 10.1.3.4 &lt;a href="http://stefansbloggroup.googlegroups.com/web/TestJMS2AQ.zip?gda=wa4810AAAABK4IIxgswZ0F4Al9opbfFVOMFR5oLk4jyh_gcELuswLkV49j-D_57O90fNTwMl6WRtxVPdW1gYotyj7-X7wDON&amp;amp;hl=en" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;8. Deploy the BPEL process to the default domain.&lt;/p&gt;  &lt;p&gt;9. Test the process from the BPEL Console:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Tkz-1yXp6NI/SflvKXFzloI/AAAAAAAAADM/31Enl_QDQ-0/s1600-h/image%5B55%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh6.ggpht.com/_Tkz-1yXp6NI/SflvLFnQMYI/AAAAAAAAADQ/Se71AkVCRUE/image_thumb%5B31%5D.png?imgmax=800" border="0" width="609" height="503" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/SflvL4uuYVI/AAAAAAAAADU/aM_N2F9v988/s1600-h/image%5B61%5D.png"&gt;&lt;img title="image" style="border: 0px none ; display: inline;" alt="image" src="http://lh4.ggpht.com/_Tkz-1yXp6NI/SflvMjV8cYI/AAAAAAAAADY/4jRdAr_434M/image_thumb%5B35%5D.png?imgmax=800" border="0" width="572" height="519" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Verify in the database that the message has been written to the JMS_OUT_TABLE:&lt;/p&gt;  &lt;p&gt;SQL&amp;gt; select count(*) from JMS_OUT_TABLE; &lt;/p&gt;  &lt;p&gt;  COUNT(*)  &lt;br /&gt;----------   &lt;br /&gt;         1&lt;/p&gt;  &lt;p&gt;Next time, we will cover using sensors with JMS Adapter and then Native MQ Adapter…..&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Troubleshooting:&lt;/h3&gt;  &lt;p&gt;If you receive an &lt;strong&gt;Orabpel-12101/ORABPEL-12102 ERRJMS_TRX_COMMIT/ERRJMS_TRX_ROLLBACK &lt;/strong&gt;then you have not set isTransacted to false for outbound JMS Adapter invocation….&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-2840069031829480796?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/2840069031829480796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/04/using-oracle-jms-adapter-part-1-publish.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/2840069031829480796?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/2840069031829480796?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/04/using-oracle-jms-adapter-part-1-publish.html" title="Using Oracle JMS Adapter – Part 1: Publish from BPEL to AQ via Partnerlink Invoke" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_Tkz-1yXp6NI/Sflu8B12LTI/AAAAAAAAAB4/g6JAIo1KsWY/s72-c/image_thumb%5B5%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IFRHc4eip7ImA9WxJSFk0.&quot;"><id>tag:blogger.com,1999:blog-2011032767404885388.post-5328651945315787227</id><published>2009-03-19T05:57:00.001-07:00</published><updated>2009-05-06T03:25:15.932-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-06T03:25:15.932-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Enterprise Repository" /><category scheme="http://www.blogger.com/atom/ns#" term="Governance" /><title>Governance: Installation Tip for Oracle Service Registry on Weblogic 10.3</title><content type="html">&lt;p&gt;If you follow the &lt;a href="http://download.oracle.com/otndocs/tech/soa/OSR103ProductDocumention.pdf" target="_blank"&gt;Installation Guide&lt;/a&gt; for installation of Oracle Service Registry on Weblogic Server 10.3. you might run into a problem, that you cannot login into the Registry Console.&lt;/p&gt;  &lt;p&gt;You might get an error like &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ERROR: uddi_security_v3.com.systinet.uddi.v3.InterceptorProxy - No Configuration was registered that can handle the configuration named NamePasswordAN&lt;/p&gt;    &lt;p&gt;EXCEPTION: No Configuration was registered that can handle the configuration named NamePasswordAN&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Tkz-1yXp6NI/ScJBfJw80QI/AAAAAAAAABs/S0bFQbyt76c/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-width: 0px; display: inline;" alt="image" src="http://lh3.ggpht.com/_Tkz-1yXp6NI/ScJBf4wBnzI/AAAAAAAAABw/zNZ5XMj0K-w/image_thumb%5B2%5D.png?imgmax=800" border="0" width="697" height="561" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The solution is described in Metalink Note &lt;strong&gt;785097.1&lt;/strong&gt;: &lt;strong&gt;Installing Oracle Service Registry 10.3 on Oracle Weblogic Server 10.3&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You have to include the login module for weblogic in the JAVA_OPTIONS:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS% -Djava.security.auth.login.config=%OSR_HOME%\conf\jaas.config&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Be sure to replace %OSR_HOME% with your OSR installation directory…..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2011032767404885388-5328651945315787227?l=stefankoser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://stefankoser.blogspot.com/feeds/5328651945315787227/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://stefankoser.blogspot.com/2009/03/governance-installation-tip-for-oracle.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5328651945315787227?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2011032767404885388/posts/default/5328651945315787227?v=2" /><link rel="alternate" type="text/html" href="http://stefankoser.blogspot.com/2009/03/governance-installation-tip-for-oracle.html" title="Governance: Installation Tip for Oracle Service Registry on Weblogic 10.3" /><author><name>Stefan Koser</name><uri>http://www.blogger.com/profile/17582002575410262466</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_Tkz-1yXp6NI/ScJBf4wBnzI/AAAAAAAAABw/zNZ5XMj0K-w/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry></feed>

