<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5641963655011037513</id><updated>2011-07-30T16:57:42.064-07:00</updated><category term='ADF Business Components Validation Flow Chart'/><category term='ADF Skin'/><category term='ADF EO Sequence'/><category term='ADF JSF Trinidad'/><category term='ADF Security'/><category term='BPEL'/><title type='text'>Oracle Fusion Weblog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ranajitsahoo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4079269090543253080</id><published>2010-02-15T13:18:00.000-08:00</published><updated>2010-02-15T13:21:06.084-08:00</updated><title type='text'>Fusion Development demo</title><content type='html'>Please view &lt;a href="http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/visualDeclarative/visualDeclarative.htm"&gt;this demo&lt;/a&gt; for developing fusion applications declaratively using Jdeveloper 11g.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4079269090543253080?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4079269090543253080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4079269090543253080'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/02/fusion-development-demo.html' title='Fusion Development demo'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1377523957546218993</id><published>2010-02-15T12:47:00.000-08:00</published><updated>2010-02-15T12:51:29.670-08:00</updated><title type='text'>Oracle Fusion Siebel Integration Demo</title><content type='html'>If you are interested to learn how to integrate to Siebel system using fusion middleware, you can &lt;a href="http://download.oracle.com/technology/products/middleware/appsintegration/Middleware_SOA_CRM.swf"&gt;view this demo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1377523957546218993?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1377523957546218993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1377523957546218993'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/02/oracle-fusion-siebel-integration-demo.html' title='Oracle Fusion Siebel Integration Demo'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-5840098258072256514</id><published>2010-02-02T16:41:00.000-08:00</published><updated>2010-02-02T16:44:41.556-08:00</updated><title type='text'>Calling BPEL from an ADF application</title><content type='html'>Susan Duncan has &lt;a href="http://www.oracle.com/technology/products/jdev/viewlets/1013/bpelfromadf_viewlet_swf.html"&gt;published a demo&lt;/a&gt; on how to call BPEL process from an ADF application.&lt;br /&gt;Happy Learning !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-5840098258072256514?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5840098258072256514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5840098258072256514'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/02/calling-bpel-from-adf-application.html' title='Calling BPEL from an ADF application'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-42412278571118663</id><published>2010-01-29T12:18:00.000-08:00</published><updated>2010-01-29T12:21:08.611-08:00</updated><title type='text'>No BPEL Process Deployed Is Visible In BPEL Console On Container Restart</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;You have deployed one or more BPEL projects which runs successfully.&lt;br /&gt;You restart the BPEL container and you do not see any previously deployed projects in BPEL Console.&lt;br /&gt;The BPEL domain log has following error:&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;&lt;2008-11-20 12:42:36,099&gt; &lt;INFO&gt; &lt;default.collaxa.cube.engine&gt; &lt;CubeEngine::loadAllProcesses&gt;&lt;br /&gt;*****************************************************************************&lt;br /&gt;Loading processes for BPEL domain "default" ...&lt;br /&gt;&lt;br /&gt;08/11/20 12:42:36 java.lang.IncompatibleClassChangeError&lt;br /&gt;08/11/20 12:42:36       at com.collaxa.cube.engine.deployment.DeploymentManager.loadAllProcesses(DeploymentManager.java:227)&lt;br /&gt;08/11/20 12:42:36       at com.collaxa.cube.engine.CubeEngine.loadAllProcesses(CubeEngine.java:957)&lt;br /&gt;08/11/20 12:42:36       at com.collaxa.cube.admin.ServerManager.loadProcesses(ServerManager.java:313)&lt;br /&gt;08/11/20 12:42:36       at com.collaxa.cube.admin.ServerManager.loadProcesses(ServerManager.java:279)&lt;br /&gt;08/11/20 12:42:36       at com.collaxa.cube.ejb.impl.ServerBean.loadProcesses(ServerBean.java:273)&lt;br /&gt;08/11/20 12:42:36       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;08/11/20 12:42:36       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;08/11/20 12:42:36       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;08/11/20 12:42:36       at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ThreadState.runAs(ThreadState.java:693)&lt;br /&gt;08/11/20 12:42:36       at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)&lt;br /&gt;2008-11-20 12:42:36,102&gt; &lt;ERROR&gt; &lt;collaxa&gt; &lt;ServerManager::loadProcesses&gt; Failed to load processes for domain default&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;strong&gt;Changes&lt;/strong&gt;&lt;br /&gt;You apply any MLR patch to upgrade BPEL.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;You have some classes in the classpath, whose class definition is not compatible with the currently executing method. This is likely if you have in the past applied any test patch provided by development  under $ORACLE_HOME/bpel/system/classes directory. The class files placed in this directory overrides the same class in other location causing the incompatibility.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;1.Stop the container running BPEL&lt;br /&gt;2.Delete the classes under $ORACLE_HOME/bpel/system/classes&lt;br /&gt;3.Start the BPEL container.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-42412278571118663?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/42412278571118663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/42412278571118663'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/no-bpel-process-deployed-is-visible-in.html' title='No BPEL Process Deployed Is Visible In BPEL Console On Container Restart'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1725441780609926159</id><published>2010-01-29T12:13:00.000-08:00</published><updated>2010-01-29T12:17:22.841-08:00</updated><title type='text'>BPEL Console isn't accesible if the BPEL domain name has mixed or upper case</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;When a BPEL domain is created using mixed or upper case in his name, the BPEL Console is inaccesible for the user.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The problem is caused because BPEL don't support the creation of domains using mixed or upper case in names. Since the domain names are used in the directory structure, and different Operating Systems handle case differently (Windows is case insensitive, while Unix and Linux are case sensitive), it is not possible to allow mixed or upper case names.&lt;br /&gt;&lt;br /&gt;Some additional information about errors:&lt;br /&gt;&lt;br /&gt;1.- Create two domains using capital letters, for example, 'DEV' and 'QA', then login to BPEL console,the following error occurs (Metalink Note 428317.1).&lt;br /&gt;&lt;br /&gt;ERROR&lt;br /&gt;OracleJSP: java.io.FileNotFoundException&lt;br /&gt;&lt;br /&gt;2.- Created a new domain, with a domain name beginning with UPPERCASE letters.&lt;br /&gt;When attempting to log into the BPEL Console the login failed and received the following error in the domain.log (Metalink Note 423058.1):&lt;br /&gt;&lt;br /&gt;(Note the domain name searched is "dave" when the actual domain created was "DAVE")&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;&lt;2007-04-10 13:52:58,453&gt; &lt;DEBUG&gt; &lt;default.collaxa.cube.engine.data&gt; &lt;ConnectionFactory::getConnection&gt; GOT CONNECTION 3 Autocommit = false&lt;br /&gt;&lt;2007-04-10 13:52:58,468&gt; &lt;DEBUG&gt; &lt;default.collaxa.cube.engine.data&gt; &lt;ConnectionFactory::closeConnection&gt; CLOSE CONNECTION 2&lt;br /&gt;&lt;2007-04-10 13:53:14,890&gt; &lt;ERROR&gt; &lt;default.collaxa.cube&gt; &lt;BaseCubeSessionBean::logError&gt; Error while invoking bean "finder": Cannot lookup BPEL domain.&lt;br /&gt;The BPEL domain "dave" cannot be found; the domain may not have initialized properly.&lt;br /&gt;Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.&lt;br /&gt;&lt;br /&gt;ORABPEL-02052&lt;br /&gt;&lt;br /&gt;Cannot lookup BPEL domain.&lt;br /&gt;The BPEL domain "dave" cannot be found; the domain may not have initialized properly.&lt;br /&gt;Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.&lt;br /&gt;&lt;br /&gt;at com.collaxa.cube.engine.CubeEngineHolder.getStatus(CubeEngineHolder.java:41)&lt;br /&gt;at com.collaxa.cube.engine.CubeEngineHolder.getEngine(CubeEngineHolder.java:52)&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;Create your domain using lower case. &lt;br /&gt;It was determined that instead of trying to make a generic fix for all platforms, it would be much safer to pull patch 5851215, and require that all domains only be created in lower case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1725441780609926159?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1725441780609926159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1725441780609926159'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/bpel-console-isnt-accesible-if-bpel.html' title='BPEL Console isn&apos;t accesible if the BPEL domain name has mixed or upper case'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8759326894872025514</id><published>2010-01-29T12:08:00.000-08:00</published><updated>2010-01-29T12:10:33.109-08:00</updated><title type='text'>BPEL Process - Operation "Initiate" Does Not Appear In BPEL Console</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;When you upgrade or update MLR patchsets to SOA suite you might encounter this problem,  where some of the already deployed BPEL processes may not show the "Initiate" operation  in the Operation drop-down of the BPEL Console.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The cause for this issue could be due to the runtime WSDL files in the WSDL cache were corrupted during the upgrade.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;Clear the WSDL cache.&lt;br /&gt;&lt;br /&gt;Follow the steps below:&lt;br /&gt;1. Stop the SOA server.&lt;br /&gt;2. Navigate to &lt;Oracle Home&gt;\bpel\domains\&amp;ltDomain&amp;gt\tmp\&lt;br /&gt;3. Delete all the .&amp;ltDirectories&amp;gt. (There will be a dot in front of all these directories)&lt;br /&gt;4. Start SOA Server.&lt;br /&gt;&lt;br /&gt;You can also achieve the above from the BPEL console. Navigate to Administration tab --&gt; Actions --&gt; Press the "Clear WSDL Cache" button.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8759326894872025514?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8759326894872025514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8759326894872025514'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/bpel-process-operation-initiate-does.html' title='BPEL Process - Operation &quot;Initiate&quot; Does Not Appear In BPEL Console'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-989297987351418012</id><published>2010-01-29T12:05:00.000-08:00</published><updated>2010-01-29T12:07:38.886-08:00</updated><title type='text'>BPEL Process Unable To Render HTML Or XML Form In Initiate Tab Of BPEL Console, When Using anySimpleType Element Type In Schema</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;You have a BPEL process that uses a schema with a element type anySimpleType. When you try to initiate the process from the BPEL console, the Initiate tab does not render the HTML or the XML input fields or form.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;Apply Patch.8763870&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-989297987351418012?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/989297987351418012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/989297987351418012'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/bpel-process-unable-to-render-html-or.html' title='BPEL Process Unable To Render HTML Or XML Form In Initiate Tab Of BPEL Console, When Using anySimpleType Element Type In Schema'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-6793309142409294527</id><published>2010-01-29T12:00:00.000-08:00</published><updated>2010-01-29T12:03:00.961-08:00</updated><title type='text'>XMLDOMException when using database adapter and bpel java embeded activity</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;BPEL Process Manager - Version: 10.1.3.1&lt;br /&gt;When using a database adapter with a bpelx:exec activity, the following error message occurs when running the process.&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;&lt;DEBUG&gt; &lt;br /&gt;&lt;default.collaxa.cube.engine&gt;&lt;br /&gt;&lt;bpel.spsoutboundinterface.BPEL_BIN$$BPELC_BpRcv0::perform&gt; error thrown&lt;br /&gt;oracle.xml.parser.v2.XMLDOMException: invalid namespace for prefix xmlns&lt;br /&gt;at oracle.xml.util.XMLUtil.validateQualifiedName(XMLUtil.java:520)&lt;br /&gt;at oracle.xml.parser.v2.XMLDocument.createAttributeNS(XMLDocument.java:2166)&lt;br /&gt;at oracle.xml.parser.v2.XMLAttr.xdkCopyNode(XMLAttr.java:1322)&lt;br /&gt;at oracle.xml.parser.v2.XMLElement.xdkCopyNode(XMLElement.java:3527)&lt;br /&gt;at oracle.xml.parser.v2.XMLDocument.xdkCopyNode(XMLDocument.java:1222)&lt;br /&gt;at oracle.xml.parser.v2.XMLNode.cloneNode(XMLNode.java:879)&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;This error occurs when bpelx:exec is added to BPEL process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The problem is due to a bug. The XML format in which the database adapter generated an XML message was not correct. The database adapter used DOM API Level 1. The fix included a change to API level 2.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;Apply Patch 5664594.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-6793309142409294527?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6793309142409294527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6793309142409294527'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/xmldomexception-when-using-database.html' title='XMLDOMException when using database adapter and bpel java embeded activity'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8562341818575352505</id><published>2010-01-29T11:46:00.000-08:00</published><updated>2010-01-29T11:52:38.505-08:00</updated><title type='text'>Error While Inserting Data into Database, BPEL Reading Data From CSV File</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;Using BPEL, reading a CSV file and inserting the data read from CSV file into any database and you notice errors such as below:&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;Caused by: org.collaxa.thirdparty.apache.wsif.WSIFException: &lt;br /&gt;file:/F:/product/10.1.3.1/OracleAS/bpel/domains/default/tmp/.bpel_LegalBInbound_1.2_a9794a68a9df7003 &lt;br /&gt;9198a32c72b8581c.tmp/InsertData_To_F58LEGAL.wsdl &lt;br /&gt;[InsertData-To-F58LEGAL_ptt::insert(F58legalCollection) ] - WSIF JCA Execute of operation 'insert' &lt;br /&gt;failed due to: DBWriteInteractionSpec Execute Failed Exception. &lt;br /&gt;insert failed. Descriptor name: [InsertDataToF58LEGAL.F58legal]. [Caused by: [SQL7008] F58LEGAL in &lt;br /&gt;TNPIDTA not valid for operation.] &lt;br /&gt;; nested exception is: &lt;br /&gt;ORABPEL-11616 &lt;br /&gt;DBWriteInteractionSpec Execute Failed Exception. &lt;br /&gt;insert failed. Descriptor name: [InsertDataToF58LEGAL.F58legal]. [Caused by: [SQL7008] F58LEGAL in &lt;br /&gt;TNPIDTA not valid for operation.] &lt;br /&gt;Caused by Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): &lt;br /&gt;oracle.toplink.exceptions.DatabaseException &lt;br /&gt;Internal Exception: java.sql.BatchUpdateException: [SQL7008] F58LEGAL in TNPIDTA not valid for &lt;br /&gt;operation.Error Code: -7008. &lt;br /&gt;&lt;br /&gt;at &lt;br /&gt;oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.j &lt;br /&gt;ava:623) &lt;br /&gt;at &lt;br /&gt;oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeInputOnlyOperation(WSIFOperation_JCA.java:72 &lt;br /&gt;6) &lt;br /&gt;at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:425) &lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Steps to reproduce&lt;/strong&gt;&lt;br /&gt;1. Write a simple SQL statement such as:&lt;br /&gt;   insert into emp (empno, empname) values(123,'Ranajit,Sahoo')&lt;br /&gt;   and try executing the statement with BPEL SQL worksheet.&lt;br /&gt;   &lt;strong&gt;This should work fine.&lt;/strong&gt;&lt;br /&gt;2. Create a simple BPEL process with a receive, invoke, database adapter and reply nodes&lt;br /&gt;3. In the database adapter wizard choose simple SQL statement as your option and use the above SQL statement.&lt;br /&gt;4. Click OK in the database adapter wizard, compile, deploy and initiate the process.&lt;br /&gt;   &lt;strong&gt;You get the ORABPEL-11616 error. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The problem might be that the CSV file has single quotes around the alphanumeric fields. This problem here has nothing to do with how the database is setup.&lt;br /&gt;&lt;br /&gt;According to CSV file standards, BPEL does not count single quotes as the wrapper for the fields. BPEL considers double quotes as the field wrapper.&lt;br /&gt;&lt;br /&gt;Example of how BPEL interprets Quotes:&lt;br /&gt;&lt;br /&gt;Input         ---&gt; output or result&lt;br /&gt;'rs123'---&gt; read as 'rs123'. Not that the single quotes stick with the value.&lt;br /&gt;'rs,123'---&gt; read as 'rs  and 123'  these are considered to be two different fields.&lt;br /&gt;"rs123"---&gt; read as rs123. Note that the double quotes do not stick with the value.&lt;br /&gt;"rs,123"---&gt;read as rs,123 this is one field, here it does not read the value as tow different fields.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution &lt;/strong&gt;&lt;br /&gt;The solution is not to use single quotes as the field wrapper instead use double quotes to wrap the field, If required in the CSV file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8562341818575352505?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8562341818575352505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8562341818575352505'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/error-while-inserting-data-into.html' title='Error While Inserting Data into Database, BPEL Reading Data From CSV File'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3382174939717234477</id><published>2010-01-29T11:38:00.000-08:00</published><updated>2010-01-29T11:42:29.696-08:00</updated><title type='text'>Custom JSP Fails To Execute BPEL Process</title><content type='html'>When running a custom application with a jsp calling a bpel processs, got 500 Internal Server Error..&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;"ejb/collaxa/system/DomainManagerBean" bean; exception reported is:&lt;br /&gt;"javax.naming.NameNotFoundException: ejb/collaxa/system/DomainManagerBean not found&lt;br /&gt;at com.evermind[Oracle Application Server Containers for J2EE 10g&lt;br /&gt;(10.1.2.0.2)].server.rmi.RMIContext.lookup(RMIContext.java:164)&lt;br /&gt;at com.evermind[Oracle Application Server Containers for J2EE 10g&lt;br /&gt;(10.1.2.0.2)].server.ApplicationContext.lookup(ApplicationContext.java:333)&lt;br /&gt;at com.evermind[Oracle Application Server Containers for J2EE 10g&lt;br /&gt;(10.1.2.0.2)].server.ApplicationContext.lookup(ApplicationContext.java:120)&lt;br /&gt;at javax.naming.InitialContext.lookup(InitialContext.java:347)&lt;br /&gt;at com.oracle.bpel.client.util.BeanRegistry.lookupDomainManagerBean(BeanRegistry.java:218)&lt;br /&gt;at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:83)&lt;br /&gt;at com.oracle.bpel.client.Locator.&lt;init&gt;(Locator.java:140)&lt;br /&gt;at com.oracle.bpel.client.taglibs.LocatorTag.doStartTag(LocatorTag.java:73)&lt;br /&gt;at _Vacation__Request__Submit._jspService(Vacation_Request_Submit.jsp:2)&lt;br /&gt;[/Vacation_Request_Submit.jsp]&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;Custom application does not have permission to access bpel engine because bpel engine is not specified as a parent application. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;To implement the solution, please execute the following steps:&lt;br /&gt;&lt;br /&gt;1. stop oc4j container.&lt;br /&gt;2. In the sever.xml change from&lt;br /&gt;&amp;ltapplication name="your_application" path="../applications/your_application.ear" /&amp;gt&lt;br /&gt;to &amp;ltapplication name="your_application" path="../applications/your_application.ear" parent="orabpel" auto-start="true" /&amp;gt&lt;br /&gt;&lt;br /&gt;3. save the file and run&lt;br /&gt;dcmctl updateconfig -ct oc4j&lt;br /&gt;&lt;br /&gt;4. delete the your_application folder under both&lt;br /&gt;OC4J_BPEL/applications and&lt;br /&gt;OC4J_BPEL/applications-deployments&lt;br /&gt;&lt;br /&gt;5. Restart OC4J_BPEL container.&lt;br /&gt;At this moment both folders should be recreated and this approach should resolve&lt;br /&gt;"javax.naming.NameNotFoundException: ejb/collaxa/system/DomainManagerBean not found" error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3382174939717234477?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3382174939717234477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3382174939717234477'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/custom-jsp-fails-to-execute-bpel.html' title='Custom JSP Fails To Execute BPEL Process'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8852548685722875020</id><published>2010-01-29T11:36:00.000-08:00</published><updated>2010-01-29T11:37:25.140-08:00</updated><title type='text'>Changing Password For Bpel Console User Oc4jadmin</title><content type='html'>You attempted to change the password for BPEL Console user oc4jadmin by clicking the Setup link in the top right corner of the Application Server Control screen but you cannot connect to the BPEL Console with the new password.&lt;br /&gt;&lt;br /&gt;How do you change the password for BPEL Console user oc4jadmin?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;The Setup link is used to change the password for the oc4jadmin user for Application Server Control.&lt;br /&gt;&lt;br /&gt;You change the BPEL Console oc4jadmin user password as follows:&lt;br /&gt;&lt;br /&gt;1. Connect to Application Server Control.&lt;br /&gt;2. Click OC4J instance name where bpel is running. For example, oc4j_soa for an advanced&lt;br /&gt;installation.&lt;br /&gt;3.Click Administration link.&lt;br /&gt;4. Click Go to Task icon for Security Providers task.&lt;br /&gt;5. Click Instance Level Security.&lt;br /&gt;6. Click Realms link.&lt;br /&gt;7. Click number link under Users.&lt;br /&gt;8. Now search for oc4jadmin in list and click it to change the password for BPEL Console.&lt;br /&gt;&lt;br /&gt;The user bpeladmin can be changed here as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8852548685722875020?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8852548685722875020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8852548685722875020'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/changing-password-for-bpel-console-user.html' title='Changing Password For Bpel Console User Oc4jadmin'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-5541595655379223165</id><published>2010-01-29T11:33:00.000-08:00</published><updated>2010-01-29T11:35:00.318-08:00</updated><title type='text'>Deploying BPEL Process Using Ant Script Throws Error: java.lang.OutOfMemoryError: PermGen space</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;When deploying BPEL processes via 'Ant' throws error:&lt;br /&gt;java.lang.OutOfMemoryError: PermGen space &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;When running Ant task, Ant runs on a separate JVM to that of OC4J container. Therefore any tuning performed via opmn.xml file does not come into effect.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;set the environment variable ANT_OPTS as below before running Ant script: &lt;br /&gt;&lt;br /&gt;Linux: ANT_OPTS=”-XX:MaxPermSize=128m –Xms64m –Xmx512m”; export ANT_OPTS  &lt;br /&gt;&lt;br /&gt;Windows: Set ANT_OPTS=”-XX:MaxPermSize=128m –Xms64m –Xmx512m”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-5541595655379223165?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5541595655379223165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5541595655379223165'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/deploying-bpel-process-using-ant-script.html' title='Deploying BPEL Process Using Ant Script Throws Error: java.lang.OutOfMemoryError: PermGen space'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3058996266968789161</id><published>2010-01-29T11:29:00.000-08:00</published><updated>2010-01-29T11:32:26.735-08:00</updated><title type='text'>ORABPEL-09903 Error Occurs When Deploying BPEL Process With an Oracle Apps Adapter</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;On JDeveloper 10.1.3.3 When attempting to deploy a BPEL process with an Oracle Apps Adapter in it,the following error occurs:&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;BUILD FAILED&lt;br /&gt;C:\Source\BPEL\ERPDEV_Test\build.xml:79: A problem occured while connecting to server "test01"&lt;br /&gt;using port "8889": bpel_ERPDEV_Test_1.0.jar failed to deploy. Exception message is: ORABPEL-09903&lt;br /&gt;Could not initialize activation agent.&lt;br /&gt;An error occured while initializing an activation agent for process "Test", revision "1.0".&lt;br /&gt;Please ensure that the activation agents are configured correctly in the bpel deployment&lt;br /&gt;descriptor (bpel.xml).&lt;br /&gt;oracle.tip.adapter.fw.agent.jca.JCAActivationAgent: java.lang.reflect.InvocationTargetException&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;strong&gt;Steps To Reproduce&lt;/strong&gt;&lt;br /&gt;The issue can be reproduced at will with the following steps: &lt;br /&gt;Using JDeveloper 10.1.3.3 create a BPEL Process that uses an Oracle Apps Adapter to capture EBS Events. Design time is fine,  It connects to the Integration Reporitory and allows you to select the correct Business Event. During deployment however you receive an Activation Agent Error message&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The apps adapter that comes with JDeveloper 10.1.3.3  adds a new jca property called&lt;br /&gt;AppsEventSchema, this property is not recognized in BPEL 10.1.3.1. So deployment fails when using JDeveloper 10.1.3.3 to deploy on 10.1.3.1 BPEL Server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;1. Download and review the readme and pre-requisites for Patch 6148874 (patchset 10.1.3.3)&lt;br /&gt;2. Ensure that you have taken a backup of your system before applying the recommended patch.&lt;br /&gt;3. Apply the patch in a test environment.&lt;br /&gt;4. Download and review the readme and pre-requisites for Patch 6267726&lt;br /&gt;5. Apply Patch 6267726 in a test environment.&lt;br /&gt;6. Retest the issue.&lt;br /&gt;7. Migrate the solution as appropriate to other environments.&lt;br /&gt;&lt;code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3058996266968789161?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3058996266968789161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3058996266968789161'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/orabpel-09903-error-occurs-when.html' title='ORABPEL-09903 Error Occurs When Deploying BPEL Process With an Oracle Apps Adapter'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-7913757533869043105</id><published>2010-01-29T11:09:00.000-08:00</published><updated>2010-01-29T11:25:54.106-08:00</updated><title type='text'>ORABPEL-12517 Endpoint Activation Error When Deploying a BPEL Project via JDeveloper</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;You encounter this error while deploying a BPEL Project via JDeveloper&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;Error while notifying observer class com.collaxa.cube.admin.adaptors.platform.PlatformAdaptor_oc4j_10g$1 with aspect class com.collaxa.cube.admin.observer.DomainInitAspect&lt;br /&gt;oracle.classloader.util.AnnotatedNoClassDefFoundError:&lt;br /&gt;&lt;br /&gt;The missing class is available from the following locations:&lt;br /&gt;&lt;br /&gt;1. Code-Source: HOME/lib/dms.jar (from (ignore manifest Class-Path) in META-INF/boot.xml in HOME/j2ee/home/oc4j.jar)&lt;br /&gt;This code-source is available in loader oracle.dms:3.0.&lt;br /&gt;&lt;br /&gt;java.lang.reflect.InvocationTargetException&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;Caused by: ORABPEL-12517&lt;br /&gt;AdapterFrameworkImpl::endpointActivation - Endpoint Activation Error.&lt;br /&gt;The Resource Adapter was unable to activate the endpoint :{} due to the following reason: ORABPEL-12510&lt;br /&gt;Unable to locate the JCA Resource Adapter via WSDL port element jca:address.&lt;br /&gt;&lt;br /&gt;ORABPEL-09903&lt;br /&gt;&lt;br /&gt;Could not initialize activation agent.&lt;br /&gt;An error occured while initializing an activation agent for process.Please ensure that the activation agents are configured correctly in the bpel deployment descriptor (bpel.xml).&lt;br /&gt;oracle.tip.adapter.fw.agent.jca.JCAActivationAgent: java.lang.reflect.InvocationTargetException&lt;br /&gt;&lt;/pre&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;&amp;ltimport-shared-library name="oracle.dms"/&amp;gt tag was missing in the ORACLE_HOME\j2ee\oc4j_soa\config\server.xml file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;Add &amp;ltimport-shared-library name="oracle.dms"/&amp;gtto shared-library section in ORACLE_HOME\j2ee\oc4j_soa\config\server.xml file.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-7913757533869043105?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7913757533869043105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7913757533869043105'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/orabpel-12517-endpoint-activation-error.html' title='ORABPEL-12517 Endpoint Activation Error When Deploying a BPEL Project via JDeveloper'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-5203397730064695495</id><published>2010-01-29T11:02:00.000-08:00</published><updated>2010-01-29T11:06:25.083-08:00</updated><title type='text'>Calls to SOA Services Show Timeout Errors and no more BPEL Instances are Created</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;When using SOA Suite Services like Applications Adapters and Database Adapters, after some running time all services stop and the application that make calls to these SOA services start to show timeout error.When checking the BPEL console, you can observed that no instance is generated.&lt;br /&gt;&lt;br /&gt;Using AS Control you can observe that in the metrics of connection pool "Threads waiting connections" values are increasing and no more new connection is possible.&lt;br /&gt;&lt;br /&gt;Checking the data-sources.xml file we can see that the connection pools define for several of these connections have the following attributes defined:&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;&lt;connection-pool name="test" abandoned-connection-timeout="180" inactivity-timeout="50" max-connections="50"&gt; &lt;br /&gt;.... &lt;br /&gt;&lt;/connection-pool&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Restarting the SOA Suite solves the issue.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The issue is caused by JDBC Bug 5842387 - THREADS LEAK WHEN CONNECTION CACHE ABANDON TIMEOUT IS ENABLED&lt;br /&gt;&lt;br /&gt;The issue happens when the abandon time thread is locked while trying to close a connection (which is in use).&lt;br /&gt;All subsequent threads which are requesting a connection will be locked. And, the oc4j container will have an increase of number of threads waiting to get a connection.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;Option I&lt;br /&gt;Implement the workaround which suggest NOT using attribute abandoned-connection-timeout for the data source.&lt;br /&gt;Option II&lt;br /&gt;Apply the patch 3438755.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-5203397730064695495?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5203397730064695495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5203397730064695495'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/calls-to-soa-services-show-timeout.html' title='Calls to SOA Services Show Timeout Errors and no more BPEL Instances are Created'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3855808369166375763</id><published>2010-01-29T10:55:00.000-08:00</published><updated>2010-01-29T10:58:18.065-08:00</updated><title type='text'>How to set a timeout for a Partner Link / WebService in a BPEL</title><content type='html'>Modify partnerLinkBinding section in bpel.xml as follows&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;&lt;partnerLinkBinding name="WebService"&gt; &lt;br /&gt;  &lt;property name="timeout"&gt;5&lt;/property&gt; &lt;br /&gt;  &lt;property name="optSoapShortcut"&gt;false&lt;/property&gt; &lt;br /&gt;  &lt;!-- other PartnerLink properties --&gt;&lt;br /&gt;&lt;/partnerLinkBinding&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3855808369166375763?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3855808369166375763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3855808369166375763'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/how-to-set-timeout-for-partner-link.html' title='How to set a timeout for a Partner Link / WebService in a BPEL'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-2949664783604381141</id><published>2010-01-29T10:28:00.000-08:00</published><updated>2010-01-29T10:39:07.686-08:00</updated><title type='text'>BPEL Server hangs due to "java.lang.OutOfMemoryError"</title><content type='html'>Symptoms&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;The BPEL server  hangs and a java.lang.OutOfMemoryError is displayed in the domain.log file.&lt;br /&gt;&lt;br /&gt;You will see the following stack trace in the domain.log&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;&lt;default.collaxa.cube.engine.dispatch&gt;&lt;br /&gt;&lt;DispatchHelper::handleMessage&gt; failed to handle message&lt;br /&gt;javax.ejb.EJBException: Transaction was rolled back: java.lang.OutOfMemoryError; nested&lt;br /&gt;exception&lt;br /&gt;is: java.rmi.RemoteException: ; nested exception is:&lt;br /&gt;java.lang.OutOfMemoryError&lt;br /&gt;java.rmi.RemoteException: ; nested exception is:&lt;br /&gt;java.lang.OutOfMemoryError&lt;br /&gt;at com.evermind.server.ejb.EJBUtils.makeException(EJBUtils.java:886)&lt;br /&gt;at&lt;br /&gt;&lt;br /&gt;ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSe&lt;br /&gt;ssionBeanWrapper16.java:1846)&lt;br /&gt;at&lt;br /&gt;&lt;br /&gt;com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMe&lt;br /&gt;ssageHandler.java:37)&lt;br /&gt;...&lt;br /&gt;.....&lt;br /&gt;Message handle error.&lt;br /&gt;An exception occurred while attempting to process the message&lt;br /&gt;"com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is:&lt;br /&gt;Transaction was rolled back: java.lang.OutOfMemoryError; nested exception is:&lt;br /&gt;java.rmi.RemoteException: ; nested exception is:&lt;br /&gt;java.lang.OutOfMemoryError&lt;br /&gt;&lt;br /&gt;ORABPEL-05002&lt;br /&gt;&lt;br /&gt;Message handle error.&lt;br /&gt;An exception occurred while attempting to process the message&lt;br /&gt;"com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is:&lt;br /&gt;Transaction was rolled back: java.lang.OutOfMemoryError; nested exception is:&lt;br /&gt;java.rmi.RemoteException: ; nested exception is:&lt;br /&gt;java.lang.OutOfMemoryError&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The BPEL OC4J container uses 512 MB of memory by default  512MB, which is not enough if you are running BPEL in a high load environment.&lt;br /&gt;&lt;br /&gt;You need to increase the JVM settings. Here is are some recommendations for a Linux Box with 4GB of memory and 2 CPUs. (If you are using a different platform from Linux, these parameters may not apply.)&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;-Xms2048m –Xmx2048m –Xmn1024m –XX:SurvivorRatio=6 –XX:MaxPermSize=256m&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;-Xmn1228m&lt;br /&gt;Garbage collector (Oracle recommends sizing the Eden space to be 60 to 70 percent of the total heap size.)&lt;br /&gt;&lt;br /&gt;-Xms2048m&lt;br /&gt;Iniatial heapsize. The heap size controls the amount of memory the JVM uses&lt;br /&gt;&lt;br /&gt;-Xmx2048m&lt;br /&gt;Maximum heapsize&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;To implement the solution, please execute the following steps:&lt;br /&gt;1. Shut down your application server&lt;br /&gt;2. Backup the &lt;integration_home&gt;\opmn\conf\opmn.xml&lt;br /&gt;3. Increase the BPEL JVM settings. Edit the file &lt;integration_home&gt;\opmn\conf\opmn.xml :&lt;br /&gt;&lt;br /&gt;3.1 Look for the OC4J_BPEL process type section&lt;br /&gt;    Look for the entry&lt;br /&gt;    -server -Xms256M -Xmx512M&lt;br /&gt;    and replace it with&lt;br /&gt;    -server -Xms2048m –Xmx2048m –Xmn1024m –XX:SurvivorRatio=6 –XX:MaxPermSize=256m&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-2949664783604381141?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/2949664783604381141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/2949664783604381141'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/bpel-server-hangs-due-to.html' title='BPEL Server hangs due to &quot;java.lang.OutOfMemoryError&quot;'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-5613583514008619464</id><published>2010-01-29T10:07:00.000-08:00</published><updated>2010-01-29T10:26:48.766-08:00</updated><title type='text'>How to purge BPEL process instances manually?</title><content type='html'>Please follow the steps below to purge BPEL instances.&lt;br /&gt;1. Make a back up of your dehydration store.&lt;br /&gt;2. Create the script purge_instances.sql &lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;CREATE OR REPLACE PROCEDURE purge_instances (p_older_than IN TIMESTAMP)&lt;br /&gt;AS&lt;br /&gt;   CURSOR c_cube_instance (p_date TIMESTAMP)&lt;br /&gt;   IS&lt;br /&gt;      SELECT cikey&lt;br /&gt;        FROM cube_instance&lt;br /&gt;       WHERE state &gt;= 5 AND modify_date &lt; p_date;&lt;br /&gt;&lt;br /&gt;   CURSOR c_invoke_message (p_date TIMESTAMP)&lt;br /&gt;   IS&lt;br /&gt;      SELECT message_guid&lt;br /&gt;        FROM invoke_message&lt;br /&gt;       WHERE state &gt; 1 AND receive_date &lt; p_date;&lt;br /&gt;&lt;br /&gt;   CURSOR c_dlv_message (p_date TIMESTAMP)&lt;br /&gt;   IS&lt;br /&gt;      SELECT message_guid&lt;br /&gt;        FROM dlv_message&lt;br /&gt;       WHERE state &gt; 1 AND receive_date &lt; p_date;&lt;br /&gt;BEGIN&lt;br /&gt;   -- Delete all closed instances older than specified date&lt;br /&gt;   --&lt;br /&gt;   FOR r_cube_instance IN c_cube_instance (p_older_than)&lt;br /&gt;   LOOP&lt;br /&gt;      collaxa.delete_ci (r_cube_instance.cikey);&lt;br /&gt;   END LOOP;&lt;br /&gt;&lt;br /&gt;   -- Purge all handled invoke_messages older than specified date&lt;br /&gt;   --&lt;br /&gt;   FOR r_invoke_message IN c_invoke_message (p_older_than)&lt;br /&gt;   LOOP&lt;br /&gt;      DELETE FROM invoke_message_bin&lt;br /&gt;            WHERE message_guid = r_invoke_message.message_guid;&lt;br /&gt;&lt;br /&gt;      DELETE FROM invoke_message&lt;br /&gt;            WHERE message_guid = r_invoke_message.message_guid;&lt;br /&gt;   END LOOP;&lt;br /&gt;&lt;br /&gt;   -- Purge all handled callback messages older than specified date&lt;br /&gt;   --&lt;br /&gt;   FOR r_dlv_message IN c_dlv_message (p_older_than)&lt;br /&gt;   LOOP&lt;br /&gt;      DELETE FROM dlv_message_bin&lt;br /&gt;            WHERE message_guid = r_dlv_message.message_guid;&lt;br /&gt;&lt;br /&gt;      DELETE FROM dlv_message&lt;br /&gt;            WHERE message_guid = r_dlv_message.message_guid;&lt;br /&gt;   END LOOP;&lt;br /&gt;END purge_instances;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Connect to SQLPlus as user orabpel and run the script&lt;br /&gt;    For Example:&lt;br /&gt;&lt;pre class="brush: csharp"&gt;&lt;br /&gt;    Declare&lt;br /&gt;        P_OLDER_THAN Timestamp;&lt;br /&gt;    Begin&lt;br /&gt;        P_OLDER_THAN := '01/SEP/09 09:05:00 PM';&lt;br /&gt;&lt;br /&gt;        PURGE_INSTANCES(P_OLDER_THAN =&gt; P_OLDER_THAN);&lt;br /&gt;    End;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-5613583514008619464?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5613583514008619464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5613583514008619464'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/how-to-purge-bpel-process-instances.html' title='How to purge BPEL process instances manually?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4708449681377659896</id><published>2010-01-29T09:10:00.001-08:00</published><updated>2010-01-29T09:16:38.094-08:00</updated><title type='text'>Invoking ESB Service From BPEL Fails With Error "exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException"-Metalink ID 427452.1</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;When attempting to invoke an ESB Service from BPEL. BPEL Process fails at the step of invoking ESB service.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException:&lt;br /&gt;java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed:&lt;br /&gt;Connection refused: connect&lt;/span&gt; &lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Steps to reproduce&lt;/strong&gt;&lt;br /&gt;The issue can be reproduced at will with the following steps:&lt;br /&gt;1. Go the URL: http://www.oracle.com/technology/products/integration/esb/index.html&lt;br /&gt;2. Download ESB Example codes&lt;br /&gt;3. Follow Lesson: BPEL ESB Loan Router&lt;br /&gt;4. It works for SOA Basic install, but failed for advanced install&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;Virtualhost and port are not setup correctly for the ESB system where services are registered. This can be verified by examining the ESB service wsdl , as shown below&lt;br /&gt;&lt;br /&gt;1. go to ESB Console -&gt; Click ESB Service -&gt; Definition&lt;br /&gt;2. Open the Concrete WSDL URL, then verify the SOAP location and make sure it is valid.&lt;br /&gt;3. If it is not setup correctly, you will get "HTTP transport error: javax.xml.soap.SOAPException"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Option I&lt;/strong&gt;&lt;br /&gt;1. Click the ESB system then configure Virtual host and Port number,&lt;br /&gt;Set Virtual host to ESB Runtime Server's hostname&lt;br /&gt;Set Port to ESB Runtime Server's http listening port&lt;br /&gt;2. Apply the change&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Option II&lt;/strong&gt;&lt;br /&gt;Use ESB bindings to invoke ESB services.&lt;br /&gt;1. Login to ESB console, and click the Routing Service which BPEL is attempting to invoke.&lt;br /&gt;2. Go to "Definition" tab, and uncheck "Can be invoked from an external service"&lt;br /&gt;3. Click apply.&lt;br /&gt;4. Go to BPEL Console and clear the WSDL Cache.&lt;br /&gt;5. Restart SOA suite&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4708449681377659896?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4708449681377659896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4708449681377659896'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/invoking-esb-service-from-bpel-fails.html' title='Invoking ESB Service From BPEL Fails With Error &quot;exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException&quot;-Metalink ID 427452.1'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4942913676034600589</id><published>2010-01-29T09:02:00.000-08:00</published><updated>2010-01-29T09:06:49.205-08:00</updated><title type='text'>BPEL / Oracle XE: ORA-12516, TNS:listener could not find available handler with matching protocol stack(Metalink ID 431422.1)</title><content type='html'>&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;br /&gt;You are using Oracle XE database for the orabpel schema, but BPEL fails frequently with the following error:&lt;br /&gt;java.sql.SQLException: Listener refused the connection with the following error:&lt;br /&gt;ORA-12516, TNS:listener could not find available handler with matching proto stack&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;br /&gt;The Oracle XE Database is configured by default to run only 20 or 40 PROCESSES; the maximum load for dedicated connections is determined by the PROCESSES parameter. When the listener believes the current number of connections has reached maximum load, it may set the state of the service handler for an instance to "blocked" and begin refusing incoming client connections with the error:&lt;br /&gt;&lt;br /&gt;TNS-12516 TNS:listener could not find instance with matching protocol stack&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;To implement the solution, please execute the following steps to increase the number processes and sessions:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;1) Connect to the XE database using the sys or system user:&lt;br /&gt;sqlplus system/&lt;password&gt;&lt;br /&gt;2) To confirm the PROCESSES and SESSIONS values, run the following script:&lt;br /&gt;sql&gt; col name format A30&lt;br /&gt;sql&gt; col value format A30&lt;br /&gt;sql&gt; select name, value from v$parameter where name in ('processes','sessions');&lt;br /&gt;3) SQL&gt; alter system set processes=300 scope=spfile;&lt;br /&gt;4) SQL&gt; alter system set sessions=300 scope=spfile;&lt;br /&gt;5) Bounce the database to reflect the changes&lt;br /&gt;6) To confirm  new  values run the script (2).&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4942913676034600589?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4942913676034600589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4942913676034600589'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/bpel-oracle-xe-ora-12516-tnslistener.html' title='BPEL / Oracle XE: ORA-12516, TNS:listener could not find available handler with matching protocol stack(Metalink ID 431422.1)'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4559930682558059190</id><published>2010-01-29T08:27:00.000-08:00</published><updated>2010-01-29T08:43:48.088-08:00</updated><title type='text'>How to avoid BPEL errors due to adapters response time</title><content type='html'>If BPEL adapter response is slow then you may notice follwing error in the container logfile from ORACLE_HOME\opmn\logs\.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ORABPEL-05002&lt;br /&gt;ORABPEL-02182&lt;br /&gt;JTA transaction is not present the transaction is not in active state&lt;br /&gt;Message handle error&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Cause:&lt;br /&gt;The adapter response time is greater than the predefined waiting time for a BPEL instance, therefore the BPEL instance does not get dehydrated in due time and fails by throwing above mentioned errors.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;strong&gt;Option I&lt;/strong&gt;&lt;br /&gt;Explicitely dehydrate your BPEL instance before invoking the adapter.&lt;br /&gt;This can be done by inserting a Java_embedded activity before the Invoke, with this tiny java code: checkpoint();. This will dehydrate the BPEL instance after its initiation without waiting it to complete And you will see it in the BPEL Console in pending status(waiting for the adapter response).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Option II&lt;/strong&gt;&lt;br /&gt;Increase the transaction timeout values in order to make the BPEL instance to wait more time until a response returns from the adapter.&lt;br /&gt;&lt;br /&gt;Step I: Go to Oracle_Home\j2ee\&lt;container&gt;\config\transaction-manager.xml and set transaction-timeout for example to 7200 or more (default is 30).&lt;br /&gt;&lt;br /&gt;Step II: Go to Oracle_Home\j2ee\&lt;container&gt;\application-deployments\orabpel\ejb_ob_engine\orion-ejb-jar.xmla and set all transaction-timeout to 3600 or more (but less than value set in step I)&lt;br /&gt;&lt;br /&gt;Step III: Go to Oracle_Home\bpel\domains\&lt;your_domain&gt;\config\domain.xml and set syncMaxWaitTime to 240 or more (but less than above 3600, step II, current default is 45)&lt;br /&gt;&lt;br /&gt;Step IV (Optional): Add following properties to the partnerlink in your BPEL project, in order to make the adapter retriable:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;retryInterval&lt;/strong&gt; --30&lt;br /&gt;&lt;strong&gt;retryMaxCount&lt;/strong&gt; -- 20&lt;br /&gt;&lt;br /&gt;Step V: Redeploy the BPEL project&lt;br /&gt;&lt;br /&gt;Step VI: Restart SOA server &amp; verify.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4559930682558059190?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4559930682558059190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4559930682558059190'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2010/01/how-to-avoid-bpel-errors-due-to.html' title='How to avoid BPEL errors due to adapters response time'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8878923469944566267</id><published>2009-08-25T08:03:00.000-07:00</published><updated>2009-08-25T08:26:56.230-07:00</updated><title type='text'>Calling BPEL process from java</title><content type='html'>When I tried to call BPEL process from JAVA following the steps given in BPEL developer guide, I got error:&lt;br /&gt;&lt;span style="color:#ff6666;"&gt;&lt;span style="color:#ff0000;"&gt;java.lang.Exception: Failed to create "ejb/collaxa/system/DeliveryBean" bean. exception reported is: "javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Then I added code to set initial context and it worked.&lt;br /&gt;I hope following example will be helpful to you.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import com.oracle.bpel.client.Locator;&lt;br /&gt;import com.oracle.bpel.client.dispatch.IDeliveryService;&lt;br /&gt;import com.oracle.bpel.client.NormalizedMessage;&lt;br /&gt;&lt;br /&gt;import java.util.Hashtable;&lt;br /&gt;import java.util.Map;&lt;br /&gt;&lt;br /&gt;import javax.naming.Context;&lt;br /&gt;&lt;br /&gt;import org.w3c.dom.Element;&lt;br /&gt;import org.w3c.dom.Node;&lt;br /&gt;&lt;br /&gt;public class BpelClient {&lt;br /&gt;public BpelClient() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;// Set Initial context&lt;br /&gt;Hashtable jndi = new Hashtable();&lt;br /&gt;jndi.put(Context.PROVIDER_URL, "ormi://localhost:12401/orabpel");&lt;br /&gt;jndi.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");&lt;br /&gt;jndi.put(Context.SECURITY_PRINCIPAL, "oc4jadmin");&lt;br /&gt;jndi.put(Context.SECURITY_CREDENTIALS, "welcome1");&lt;br /&gt;jndi.put("dedicated.connection", "true");&lt;br /&gt;&lt;br /&gt;//Instantiate locator&lt;br /&gt;Locator locator = new Locator("default", "bpel", jndi);&lt;br /&gt;IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );&lt;br /&gt;&lt;br /&gt;//Prepare input message&lt;br /&gt;String xml = "&amp;ltssn xmlns=\"http://services.otn.com\" &amp;gt111222333&amp;lt/ssn&amp;gt";&lt;br /&gt;NormalizedMessage nm = new NormalizedMessage( );&lt;br /&gt;nm.addPart("payload", xml );&lt;br /&gt;&lt;br /&gt;// Call CreditRatingService BPEL process&lt;br /&gt;NormalizedMessage res =&lt;br /&gt;deliveryService.request("CreditRatingService", "process", nm);&lt;br /&gt;System.out.println( "BPELProcess CreditRatingService executed!" );&lt;br /&gt;&lt;br /&gt;// Print output&lt;br /&gt;Map payload = res.getPayload();&lt;br /&gt;Element part = (Element)payload.get("payload");&lt;br /&gt;Node outputElement = part.getFirstChild();&lt;br /&gt;System.out.println("Rating: " + outputElement.getNodeValue());&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;} catch (Exception ex) {&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;} finally {&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8878923469944566267?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8878923469944566267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8878923469944566267'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/08/calling-bpel-process-from-java.html' title='Calling BPEL process from java'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-504487678461107585</id><published>2009-02-11T13:13:00.000-08:00</published><updated>2009-02-11T13:14:32.555-08:00</updated><title type='text'>Preventing execution of queries when page loads for first time (ADF)</title><content type='html'>Sometimes you want to prevent the automatic execution of a query when page loads for first time.&lt;br /&gt;&lt;br /&gt;To achieve this ...&lt;br /&gt;&lt;br /&gt;In ADF 10.1.3, add &lt;em&gt;&lt;strong&gt;${adfFacesContext.postback == true}&lt;/strong&gt;&lt;/em&gt; to refresh condition of the iterator that displays the data in your page.&lt;br /&gt;&lt;br /&gt;In ADF 11g, add &lt;em&gt;&lt;strong&gt;#{!adfFacesContext.initialRender}&lt;/strong&gt;&lt;/em&gt; to refresh condition of the iterator that displays the data in your page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-504487678461107585?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/504487678461107585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/504487678461107585'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/02/preventing-execution-of-queries-when.html' title='Preventing execution of queries when page loads for first time (ADF)'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1815292630066962612</id><published>2009-02-10T14:12:00.001-08:00</published><updated>2009-02-10T14:15:50.971-08:00</updated><title type='text'>How to prevent navigation thorugh browser back button using java script in ADF page</title><content type='html'>Add the following java script to Onload attribute of afh:body tag in ADF page.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;if (history.forward() != null) history.forward()&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1815292630066962612?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1815292630066962612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1815292630066962612'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/02/how-to-prevent-navigation-thorugh.html' title='How to prevent navigation thorugh browser back button using java script in ADF page'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3862304489346122820</id><published>2009-02-10T12:44:00.001-08:00</published><updated>2009-02-10T12:49:00.046-08:00</updated><title type='text'>Showing confirm dialog box while cancelling transaction using java script in ADF page.</title><content type='html'>We come across a situation where we need the user to confirm before cancelling a transaction or confirm before deleting a record. Following example show how to achieve that in ADF page using a java script.&lt;br /&gt;&lt;br /&gt;Let us say user is in employee creation page and he wants to cancel and go back to home page. On clicking Cancel button, a java script dialog box appears to confirm the action.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_wagB7vk5PeU/SZHnW18LWPI/AAAAAAAAAVU/riw5Js7gTUo/s1600-h/HandleCancel.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5301272616014403826" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 162px" alt="" src="http://2.bp.blogspot.com/_wagB7vk5PeU/SZHnW18LWPI/AAAAAAAAAVU/riw5Js7gTUo/s320/HandleCancel.bmp" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Add the following java script to the Cancel button “Onclick” java script events attribute.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;if (confirm('Do you want to cancel?')) {return true;}else {return false;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;If the user clicks OK then Cancel button’s action will be called else Cancel button’s action will be ignored.&lt;br /&gt;&lt;br /&gt;Pretty simple……..&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3862304489346122820?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3862304489346122820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3862304489346122820'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/02/showing-confirm-dialog-box-while.html' title='Showing confirm dialog box while cancelling transaction using java script in ADF page.'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wagB7vk5PeU/SZHnW18LWPI/AAAAAAAAAVU/riw5Js7gTUo/s72-c/HandleCancel.bmp' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4083030226474840220</id><published>2009-02-02T13:35:00.000-08:00</published><updated>2009-02-02T13:40:23.620-08:00</updated><title type='text'>Best AJAX-based solution award goes to Oracle</title><content type='html'>&lt;a href="http://events.sys-con.com/" target="_blank"&gt;SYS-CON Events&lt;/a&gt; offered all delegates at the 6th International AJAXWorld Conference &amp;amp; Expo in San Jose, CA, the opportunity to cast their vote for their favorite AJAX, RIA and Open Source technology provider in five highly competitive categories. The results have been announced, and they are as follows:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Best Overall Enterprise RIA Product&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Winner&lt;/em&gt;: ICEsoft - ICEfaces&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Best SDK&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Winner&lt;/em&gt;: Adobe - Flex Builder 3&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Best Rich Internet Platform&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Winner&lt;/em&gt;: Adobe - Adobe Flash Platform&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Best Open Source RIA Solution&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Winner&lt;/em&gt;: Adobe Flex&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Best AJAX-Based Solution&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Winner&lt;/em&gt;: Oracle - Oracle JDeveloper 11g&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Courtesy:   &lt;a href="http://linux.sys-con.com/node/808352/print"&gt;http://linux.sys-con.com/node/808352/print&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4083030226474840220?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4083030226474840220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4083030226474840220'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/02/best-ajax-based-solution-award-goes-to.html' title='Best AJAX-based solution award goes to Oracle'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-6782438460851763908</id><published>2009-02-02T13:01:00.000-08:00</published><updated>2009-02-02T13:03:35.736-08:00</updated><title type='text'>Integrating ADF with Oracle Apps R12 - Demo</title><content type='html'>Though I have not tried integrating ADF with Oracle Apps R12, I came across a &lt;a href="http://blog.cholaconsulting.com/2008/11/how-to-integrate-oracle-adf-in-oracle.html"&gt;demo &lt;/a&gt;showing the integration. Hope this will be helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-6782438460851763908?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6782438460851763908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6782438460851763908'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/02/integrating-adf-with-oracle-apps-r12.html' title='Integrating ADF with Oracle Apps R12 - Demo'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1987202357429541904</id><published>2009-02-02T12:51:00.000-08:00</published><updated>2009-02-02T12:53:49.986-08:00</updated><title type='text'>What is the difference between ADF and OAF?</title><content type='html'>Many times people ask me "What is the difference between ADF and OAF?".&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://shiv-saroj.blogspot.com/2008/03/oaf-vs-adf-with-respect-to-oracle.html"&gt;article &lt;/a&gt;will help you to differentiate both technologies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1987202357429541904?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1987202357429541904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1987202357429541904'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2009/02/what-is-difference-between-adf-and-oaf.html' title='What is the difference between ADF and OAF?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3574625549916573302</id><published>2008-11-07T13:14:00.001-08:00</published><updated>2008-11-07T13:14:40.010-08:00</updated><title type='text'>Oracle Jdeveloper 11g documentation online</title><content type='html'>&lt;a href="http://download.oracle.com/docs/cd/E12839_01/index.htm"&gt;http://download.oracle.com/docs/cd/E12839_01/index.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3574625549916573302?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3574625549916573302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3574625549916573302'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/11/oracle-jdeveloper-11g-documentation.html' title='Oracle Jdeveloper 11g documentation online'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4185362349144566130</id><published>2008-09-11T12:28:00.000-07:00</published><updated>2008-09-11T12:30:38.928-07:00</updated><title type='text'>How to get URL parameter values in backing bean?</title><content type='html'>&lt;code&gt;&lt;br /&gt;FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("param name"));&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4185362349144566130?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4185362349144566130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4185362349144566130'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/09/how-to-get-url-parameter-values-in.html' title='How to get URL parameter values in backing bean?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3517492838466465420</id><published>2008-09-11T09:52:00.000-07:00</published><updated>2008-10-30T12:12:55.746-07:00</updated><title type='text'>How to avoid JBO-35007 error?</title><content type='html'>When row currency validation fails JBO-35007 error is reaised.&lt;br /&gt;&lt;br /&gt;Row currency validation safe gaurds ADF application from browser back button issue.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is browser back button issue?&lt;/strong&gt;&lt;br /&gt;Form Duncan Mills ""Oracle JDeveloper 10g for Forms and PL/SQL Developers" book :&lt;br /&gt;Users may be accustomed to clicking the browser's Back button to return to the preceding page or the Refresh button to reload the page. This can cause problems with web applications that use a Controller layer, like the JSF controller or Struts, because the browser Back button returns to the preceding page in the browser's page history without calling code in the Controller layer. The controller will therefore, not know the state of the application's data and the preceding page will either not load properly or may place the application into an inconsistent or unstable state. The same problem occurs with the browser's Refresh button, which just reloads the same page, again without calling Controller layer code. This is a problem in all web applications, not only those using J2EE technology or ADF libraries.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to ignore row currnecy validation?&lt;/strong&gt;&lt;br /&gt;There are two ways to avoid this validation.(Note: As Row currency validation safe gaurds ADF application from browser back button issue, it is not suggested to ignore row currency validation)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Method I&lt;/strong&gt;&lt;br /&gt;Set the EnableTokenValidation to false in the page definition file.&lt;br /&gt;1)In the Application Navigator, right-click the JSP page for which you want to disable validation, and choose Go to Pa ge Definition.&lt;br /&gt;2)In the Structure window, right-click the pagenamePageDef node and choose Properties from the context menu.&lt;br /&gt;3)In the PageDef Properties dialog, select the Advanced Properties tab.&lt;br /&gt;4)In the Enable Token Validation box and choose False. The EnableTokenValidation attribute is added to the PageDef.xml file namespace with a value of false.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Method II&lt;/strong&gt;&lt;br /&gt;Disable row currency validation on an iterator by setting the "StateValidation" property of an iterator to "false" without disabling it for all iterators in the page definition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3517492838466465420?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3517492838466465420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3517492838466465420'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/09/how-to-avoid-jbo-35007-error.html' title='How to avoid JBO-35007 error?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8519208077672596684</id><published>2008-07-25T11:33:00.000-07:00</published><updated>2008-07-25T11:37:07.184-07:00</updated><title type='text'>How you can access the true value of the selected list item or radio button directly from ADF</title><content type='html'>ADF manages the selected value of the list item internally and the value that is exposed through the list binding itself is only the index number of the selection in the list. Developers often make the mistake of treating the value of the list binding as one of these expected values and trying to write code or expressions based on that. The simplest way to gain direct access to the true value of an attribute that is populated from a list binding is to create a secondary value binding to the underlying data. This secondary binding can then be used within expressions to access the true value of the attribute.&lt;br /&gt;&lt;br /&gt;Details can be found &lt;a href="http://www.oracle.com/technology/products/jdev/tips/mills/listvalue/listbindingvalue.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8519208077672596684?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8519208077672596684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8519208077672596684'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/07/how-you-can-access-true-value-of.html' title='How you can access the true value of the selected list item or radio button directly from ADF'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8042549015944507299</id><published>2008-07-23T12:24:00.000-07:00</published><updated>2008-07-23T13:49:35.329-07:00</updated><title type='text'>How to override the sort behavior of table column</title><content type='html'>Add following code to managed bean that is accessed from the table's sort listener. In this example, whenever users try to sort on the DepartmentName by clicking onto the table header, the sort criteria is modified to DepartmentId .&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt; &lt;br /&gt;import oracle.adf.view.faces.component.core.data.CoreTable;&lt;br /&gt;import oracle.adf.view.faces.event.SortEvent;&lt;br /&gt;import oracle.adf.view.faces.model.SortCriterion;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;public class Sortbean {&lt;br /&gt;    public Sortbean() {&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;    public void onSort(SortEvent sortEvent) {&lt;br /&gt;        &lt;br /&gt;        List sortList = sortEvent.getSortCriteria();&lt;br /&gt;        SortCriterion sc = (SortCriterion) sortList.get(0);&lt;br /&gt;        &lt;br /&gt;        //override sort by DepartmentName and make it sort by DepartmentId instead&lt;br /&gt;        if (((String)sc.getProperty()).equalsIgnoreCase("DepartmentName")){&lt;br /&gt;            System.out.println("You wanted to sort " +sc.getProperty());&lt;br /&gt;        &lt;br /&gt;            sortList = new ArrayList();&lt;br /&gt;            SortCriterion sc2 = new SortCriterion("DepartmentId",true);&lt;br /&gt;            System.out.println("This is what I want you to sort for "+sc2.getProperty());&lt;br /&gt;            sortList.add(sc2);&lt;br /&gt;        &lt;br /&gt;            CoreTable ct = (CoreTable)sortEvent.getComponent();&lt;br /&gt;            ct.setSortCriteria(sortList);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8042549015944507299?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8042549015944507299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8042549015944507299'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/07/how-to-override-sort-behavior-of-table.html' title='How to override the sort behavior of table column'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8384320339716694359</id><published>2008-07-23T12:18:00.000-07:00</published><updated>2008-07-23T12:21:34.853-07:00</updated><title type='text'>Refreshing Table after Inline Delete</title><content type='html'>To refresh a table data after inline delete, add the following code after delete logic in managed bean.&lt;br /&gt;&lt;br /&gt;AdfFacesContext.getCurrentInstance().addPartialTarget(TableId)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8384320339716694359?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8384320339716694359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8384320339716694359'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/07/refreshing-table-after-inline-delete.html' title='Refreshing Table after Inline Delete'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8917803202003306213</id><published>2008-07-15T11:07:00.000-07:00</published><updated>2008-07-15T11:10:29.624-07:00</updated><title type='text'>ADF Component Library with Example</title><content type='html'>&lt;a href="http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/tagdoc/core/imageIndex.html"&gt;ADF 10g Tag Library&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/adf/adffaces/11/doc/multiproject/adf-richclient-api/enhanced-tagdoc.html"&gt;ADF 11g Tag Library&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8917803202003306213?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8917803202003306213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8917803202003306213'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/07/adf-component-library.html' title='ADF Component Library with Example'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-558727286344053248</id><published>2008-06-30T13:46:00.000-07:00</published><updated>2008-07-23T12:48:43.250-07:00</updated><title type='text'>How to get Reference of one Managed Bean from other Managed Bean</title><content type='html'>&lt;pre style="BORDER-RIGHT: #999999 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: #999999 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: #999999 1px dashed; WIDTH: 100%; COLOR: #000000; LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: #999999 1px dashed; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; BACKGROUND-COLOR: #eee"&gt;&lt;br /&gt;&lt;code&gt;FacesContext ctx = FacesContext.getCurrentInstance();&lt;br /&gt;Application app = ctx.getApplication();&lt;br /&gt;MyManagedBeanClass mb = (MyManagedBeanClass) app.getVariableResolver().resolveVariable(ctx,"MyManagedBean");  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-558727286344053248?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/558727286344053248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/558727286344053248'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/06/how-to-get-one-reference-of-one-managed.html' title='How to get Reference of one Managed Bean from other Managed Bean'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-6830036366971260787</id><published>2008-05-15T12:53:00.000-07:00</published><updated>2008-05-15T14:05:20.771-07:00</updated><title type='text'>How to Implement Dependent Drop Down List in ADF</title><content type='html'>In this How-to example, I am going to explain, how dependent drop down list can be implemented in ADF.&lt;br /&gt;&lt;br /&gt;Here I am creating two drop down lists "Department" and "Employee".&lt;br /&gt;On selecting department, the list of employees will change.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_wagB7vk5PeU/SCykfd10yVI/AAAAAAAAABU/I7gYF0a1jGI/s1600-h/CascadingList.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_wagB7vk5PeU/SCykfd10yVI/AAAAAAAAABU/I7gYF0a1jGI/s320/CascadingList.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5200712530199365970" /&gt;&lt;/a&gt;&lt;br /&gt;I am assuming that you have sample HR schema installed in your database.&lt;br /&gt;&lt;br /&gt;   Create View Object DepartmentListVO for Department SelectItems.&lt;br /&gt;   Query: Select department_id, department_name from departments&lt;br /&gt;&lt;br /&gt;   Create View Object EmployeeListVO for Employee SelectItems. &lt;br /&gt;   Query: select employee_id, first_name from employees where dapartment_id = :DeptId&lt;br /&gt;    &lt;br /&gt;   Define Bind variables DeptId in EmployeeListVO&lt;br /&gt;&lt;br /&gt;   Create View Object EmpDeptVO for defining the form elements.&lt;br /&gt;   This query varies according to your requirement. At least include employee_id and department_id in your select clause.&lt;br /&gt;&lt;br /&gt;   Define an Application Module and add above view objects to this application module.&lt;br /&gt;&lt;br /&gt;   Create a jspx page, drag  EmpDeptVO to the jspx page and drop EmpDeptVO as ADF form.&lt;br /&gt;&lt;br /&gt;   Delete form elements for employee_id and department_id from the page.&lt;br /&gt;&lt;br /&gt;   Drag DepartmentId from data control under EmpDeptVO and drop as select one choice.&lt;br /&gt;   Click on add to define binding for List. Select DepartmentListVO from the Add data source drop down.&lt;br /&gt;   Select Display Attribute as DepartmentName.&lt;br /&gt;   &lt;br /&gt;   Id of this select one chioce is auto populated as selectOneChoice1&lt;br /&gt;   Drag EmployeeId from data control under EmpDeptVO and drop as select one choice.&lt;br /&gt;   Click on add to define binding for List. Select EmployeeListVO from the Add data source drop down.&lt;br /&gt;   Select Display Attribute as FirstName.&lt;br /&gt;   &lt;br /&gt;   Id of this select one chioce is auto populated as selectOneChoice2&lt;br /&gt;   &lt;br /&gt;   Select selectOneChoice1 in structure window and go to properties. &lt;br /&gt;   Set AutoSubmit property to true&lt;br /&gt;&lt;br /&gt;    Select selectOneChoice2 in structure window and go to properties. &lt;br /&gt;    Set PartialTruggers property to selectOneChoice1&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;          &amp;lt;af:selectOneChoice value=&amp;quot;#{bindings.Departmentid.inputValue}&amp;quot;&lt;br /&gt;                              label=&amp;quot;Department&amp;quot;&lt;br /&gt;                              id=&amp;quot;selectOneChoice1&amp;quot; autoSubmit=&amp;quot;true&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;f:selectItems value=&amp;quot;#{bindings.Departmentid.items}&amp;quot;&lt;br /&gt;                           id=&amp;quot;selectItems1&amp;quot;/&amp;gt;&lt;br /&gt;          &amp;lt;/af:selectOneChoice&amp;gt;&lt;br /&gt;          &amp;lt;af:selectOneChoice value=&amp;quot;#{bindings.Employeeid.inputValue}&amp;quot;&lt;br /&gt;                              label=&amp;quot;Employee&amp;quot;&lt;br /&gt;                              id=&amp;quot;selectOneChoice2&amp;quot;&lt;br /&gt;                              partialTriggers=&amp;quot;selectOneChoice1&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;f:selectItems value=&amp;quot;#{bindings.Employeeid.items}&amp;quot;&lt;br /&gt;                           id=&amp;quot;selectItems2&amp;quot;/&amp;gt;&lt;br /&gt;          &amp;lt;/af:selectOneChoice&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    Right click on the page and go to page definition.&lt;br /&gt;    Right click on Bindings -Select 'Insert Inside Bindings' - Select 'Generic Bindings' - select 'Action'&lt;br /&gt; &lt;br /&gt;    Select EmployeeListVO from data collection&lt;br /&gt;    Select Iterator as EmployeeListVOIterator&lt;br /&gt;    Select Operation as ExecuteWithParams&lt;br /&gt; Set the value of parameter 'DeptId' as #{bindings.Departmentid.inputValue} &lt;br /&gt; Click OK&lt;br /&gt; &lt;br /&gt;    Right click on executables - Select 'Insert Inside executables' - select 'InvokeAction'&lt;br /&gt;&lt;br /&gt;    Give one meaningful id 'InvokeExecuteWithParams'.&lt;br /&gt;    Set 'Binds' as 'ExecuteWithParams'&lt;br /&gt; Set 'Refresh' as 'RenderModel'&lt;br /&gt; Click Finish&lt;br /&gt; &lt;br /&gt;   Drag InvokeExecuteWithParams above EmployeeListVOIterator&lt;br /&gt;&lt;br /&gt;   Run the page.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;  &amp;lt;bindings&amp;gt;&lt;br /&gt;    &amp;lt;action IterBinding=&amp;quot;EmployeeListVOIterator&amp;quot; id=&amp;quot;ExecuteWithParams&amp;quot;&lt;br /&gt;            InstanceName=&amp;quot;HRAppModuleDataControl.EmployeeListVO&amp;quot;&lt;br /&gt;            DataControl=&amp;quot;HRAppModuleDataControl&amp;quot; RequiresUpdateModel=&amp;quot;true&amp;quot;&lt;br /&gt;            Action=&amp;quot;executeWithParams&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;NamedData NDName=&amp;quot;DeptId&amp;quot;&lt;br /&gt;                 NDValue=&amp;quot;#{bindings.Departmentid.inputValue}&amp;quot;&lt;br /&gt;                 NDType=&amp;quot;oracle.jbo.domain.Number&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;/action&amp;gt;&lt;br /&gt;  ..........&lt;br /&gt;  ..........&lt;br /&gt;  &amp;lt;/bindings&amp;gt; &lt;br /&gt;  &lt;br /&gt;  &amp;lt;executables&amp;gt;&lt;br /&gt;    &amp;lt;invokeAction id=&amp;quot;InvokeExecuteWithParams&amp;quot; Binds=&amp;quot;ExecuteWithParams&amp;quot;&lt;br /&gt;                  Refresh=&amp;quot;renderModel&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;iterator Binds=&amp;quot;EmployeeListVOIterator&amp;quot; RangeSize=&amp;quot;-1&amp;quot;&lt;br /&gt;              DataControl=&amp;quot;HRAppModuleDataControl&amp;quot; id=&amp;quot;EmployeeListVOIterator&amp;quot;/&amp;gt;&lt;br /&gt;   ...........&lt;br /&gt;   ...........&lt;br /&gt;  &amp;lt;/executables&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-6830036366971260787?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6830036366971260787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6830036366971260787'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/05/how-to-implement-dependent-drop-down.html' title='How to Implement Dependent Drop Down List in ADF'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_wagB7vk5PeU/SCykfd10yVI/AAAAAAAAABU/I7gYF0a1jGI/s72-c/CascadingList.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-237679650733648386</id><published>2008-05-09T12:06:00.000-07:00</published><updated>2008-05-09T13:10:19.158-07:00</updated><title type='text'>How to implement drop down list in ADF</title><content type='html'>In this how-to example I am defining a department drop down list, which shows a list of departments.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_wagB7vk5PeU/SCSk-oHZuAI/AAAAAAAAABM/hfNB4m6TgZw/s1600-h/DropDownList.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_wagB7vk5PeU/SCSk-oHZuAI/AAAAAAAAABM/hfNB4m6TgZw/s320/DropDownList.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5198461265719703554" /&gt;&lt;/a&gt;&lt;br /&gt;Add the following code in the ADF page.&lt;br /&gt; &lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;          &amp;lt;af:selectOneChoice label=&amp;quot;Department&amp;quot;&lt;br /&gt;                              value=&amp;quot;#{ModelData.department}&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;f:selectItems value=&amp;quot;#{DepartmentOptions.departments}&amp;quot;/&amp;gt;&lt;br /&gt;          &amp;lt;/af:selectOneChoice&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;In ADF, selectOneChoice is used for drop down list.&lt;br /&gt;&lt;br /&gt;selectOneChoice picks the list of values from 'selectItems' tag.&lt;br /&gt;&lt;br /&gt;You can define a managed bean to bind an  ArrayList of SelectItem objects to  'selectItems'. or can define a view object and bindings. In this example I have defined a managed bean which provides an ArrayList of SelectItem objects.&lt;br /&gt;&lt;br /&gt;Department list Backing bean code.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.faces.model.SelectItem;&lt;br /&gt;&lt;br /&gt;public class DepartmentOptions {&lt;br /&gt;    private List departments;&lt;br /&gt;    &lt;br /&gt;    public DepartmentOptions() {&lt;br /&gt;        departments = new ArrayList();&lt;br /&gt;        SelectItem department = new  SelectItem(&amp;quot;10&amp;quot;, &amp;quot;Electric&amp;quot;);&lt;br /&gt;        departments.add(department);&lt;br /&gt;        department = new  SelectItem(&amp;quot;20&amp;quot;, &amp;quot;Mechanic&amp;quot;);&lt;br /&gt;        departments.add(department);&lt;br /&gt;        department = new  SelectItem(&amp;quot;30&amp;quot;, &amp;quot;Computer&amp;quot;);&lt;br /&gt;        departments.add(department);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setDepartments(List departments) {&lt;br /&gt;        this.departments = departments;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public List getDepartments() {&lt;br /&gt;        return departments;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-237679650733648386?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/237679650733648386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/237679650733648386'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/05/how-to-implement-drop-down-list-in-adf.html' title='How to implement drop down list in ADF'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wagB7vk5PeU/SCSk-oHZuAI/AAAAAAAAABM/hfNB4m6TgZw/s72-c/DropDownList.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-5863117875927696173</id><published>2008-05-06T08:03:00.000-07:00</published><updated>2008-05-06T08:04:18.213-07:00</updated><title type='text'>Oracle ADF Faces Documentation</title><content type='html'>Oracle ADF Faces Documentation can be found &lt;a href="http://www.oracle.com/technology/products/adf/adffaces/11/doc/index.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-5863117875927696173?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5863117875927696173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5863117875927696173'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/05/oracle-adf-faces-documentation.html' title='Oracle ADF Faces Documentation'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-7843077737312429647</id><published>2008-04-25T11:03:00.000-07:00</published><updated>2008-04-25T11:07:09.089-07:00</updated><title type='text'>Understanding the disadvantages of using AJAX</title><content type='html'>&lt;p&gt;Though Ajax delivers more responsive user interface and uses less band width over internet, understanding the disadvantages of using AJAX will help us to design better web applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;The dynamically created page does not register itself with the browser history engine, so triggering the "Back" function of the users' browser might not bring the desired result.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Possible Solution&lt;br /&gt;&lt;/strong&gt;Using invisible IFRAMEs to invoke changes that populate the history used by a browser's back button.&lt;br /&gt;Example: Google Maps - performs searches in an invisible IFRAME and then pulls results back into an element on the visible web page.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Dynamic web page updates make it difficult for a user to bookmark a particular state of the application.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Possible Solution&lt;br /&gt;&lt;/strong&gt;Use the URL fragment identifier to keep track of, and allow users to return to, the application in a given state. This is possible because many browsers allow JavaScript to update the fragment identifier of the URL dynamically, so that Ajax applications can maintain it as the user changes the application's state.&lt;br /&gt;&lt;br /&gt;This solution also improves back-button support. It is not, however, a complete solution.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Response-time concerns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Network latency — or the interval between user request and server response — needs to be considered carefully during Ajax development. Without clear feedback to the user, preloading of data and proper handling of the XMLHttpRequest object, users might experience delays in the interface of the web application, something which they might not expect or understand. Additionally, when an entire page is rendered there is a brief moment of re-adjustment for the eye when the content changes. The lack of this re-adjustment with smaller portions of the screen changing makes the latency more apparent.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Possible Solution&lt;/strong&gt;&lt;br /&gt;Use of visual feedback (such as throbbers) to alert the user of background activity and/or preloading of content and data are often suggested solutions to these latency issues.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Search engine optimization&lt;/span&gt;&lt;br /&gt;Websites that use Ajax to load data which should be indexed by search engines must be careful to provide equivalent Sitemaps data at a public, linked URL that the search engine can read, as search engines do not generally execute the JavaScript code required for Ajax functionality.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Reliance on JavaScript and the DOM&lt;/span&gt;&lt;br /&gt;Ajax relies on JavaScript and the browser's Document Object Model (DOM), which are often implemented differently by different browsers or versions of a particular browser. Because of this, sites that use JavaScript may need to be tested in multiple browsers to check for compatibility issues. It's common to see JavaScript code written twice, one part for IE, another part for Mozilla compatibles, although this is less true with the release of IE7 and with the now-common use of JavaScript abstraction libraries like the Prototype JavaScript Framework or Jquery. Such libraries abstract browser-specific differences from the web developer.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Web analytics&lt;/span&gt;&lt;br /&gt;Many web analytics solutions are based on the paradigm of a new page being loaded whenever new or updated content is displayed to the user, or to track a series of steps in a process such as a check-out. Since Ajax alters this process, care must be taken to account for how to instrument a page or a portion of a page so that it can be accurately tracked.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Possible Solution&lt;/strong&gt;&lt;br /&gt;Analytics systems which allow for the tracking of events other than a simple page view, such as the click of a button or link, are the ones most likely to be able to accommodate a site which heavily utilizes Ajax.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-7843077737312429647?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7843077737312429647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7843077737312429647'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/understanding-disadvantages-of-using.html' title='Understanding the disadvantages of using AJAX'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-425582521684600884</id><published>2008-04-25T08:48:00.000-07:00</published><updated>2008-04-25T08:50:34.108-07:00</updated><title type='text'>Google Web Toolkit (GWT) with Jdeveloper.</title><content type='html'>Google Web Toolkit (GWT) helps Java developers create Ajax applications more productively. GWT proposes a different way to create Ajax applications. It uses Java as a single programming language for both the client and server sides. GWT provides a compiler that translates the Java code on the client side into JavaScript and DTHML. This solution greatly simplifies the technology stack from the programmer’s point of view.&lt;br /&gt;&lt;br /&gt;Jdeveloper has provided extension (gwtDeveloper) for Google Web Toolkit (GWT). You can get it using JDeveloper's Check for Updates mechanism.&lt;br /&gt;&lt;br /&gt;What can you do with gwtDeveloper?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Visually design your panels, composites, menus and other widget types&lt;/li&gt;&lt;li&gt; View, change your widget's properties using Property Inspector &lt;/li&gt;&lt;li&gt;Add event handlers to your widgets &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;You can find more about GWT Jdeveloper extensions at following link.&lt;a href="http://www.gdevelop.com/"&gt;http://www.gdevelop.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Also you can integrate GWT to Jdeveloper manually by following &lt;a href="http://www.oracle.com/technology/pub/articles/dubois-gwt.html"&gt;http://www.oracle.com/technology/pub/articles/dubois-gwt.html&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/5641963655011037513-425582521684600884?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/425582521684600884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/425582521684600884'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/google-web-toolkit-gwt-with-jdeveloper.html' title='Google Web Toolkit (GWT) with Jdeveloper.'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4786812748147561109</id><published>2008-04-25T08:16:00.000-07:00</published><updated>2008-04-25T08:17:10.096-07:00</updated><title type='text'>ADF online Demos</title><content type='html'>For ADF online demos refer&lt;br /&gt;&lt;a href="http://radio.weblogs.com/0118231/stories/2005/06/24/jdeveloperAdfScreencasts.html"&gt;http://radio.weblogs.com/0118231/stories/2005/06/24/jdeveloperAdfScreencasts.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4786812748147561109?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4786812748147561109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4786812748147561109'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/adf-online-demos.html' title='ADF online Demos'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1133085521301288843</id><published>2008-04-25T08:14:00.000-07:00</published><updated>2008-04-25T08:15:25.613-07:00</updated><title type='text'>Configuring JDeveloper with SQL Server</title><content type='html'>For configuring jdeveloper with MS SQL Server refer &lt;a href="http://www.devx.com/dbzone/Article/33681/0/page/2"&gt;http://www.devx.com/dbzone/Article/33681/0/page/2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1133085521301288843?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1133085521301288843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1133085521301288843'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/configuring-jdeveloper-with-sql-server.html' title='Configuring JDeveloper with SQL Server'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-527581655019326410</id><published>2008-04-21T13:28:00.000-07:00</published><updated>2008-04-21T13:47:28.552-07:00</updated><title type='text'>How to forward to a page dynamically in ADF?</title><content type='html'>Sometimes you want to perofrm some validations and based on the result, forward to other ADF pages.&lt;br /&gt;&lt;br /&gt;You can follow one of these following approches.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Approach I&lt;/strong&gt;&lt;br /&gt;/* Forward to page "myPage.jspx" */&lt;br /&gt;FacesContext fc = FacesContext.getCurrentInstance();&lt;br /&gt;UIViewRoot viewRoot = fc.getApplication().getViewHandler().createView(fc, "/myPage.jspx");&lt;br /&gt;fc.setViewRoot(viewRoot);&lt;br /&gt;fc.renderResponse();&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Approach II&lt;/strong&gt;&lt;br /&gt;/* Forward to the navigation rule "mypage" */&lt;br /&gt;FacesContext fc = FacesContext.getCurrentInstance();&lt;br /&gt;fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "mypage");&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Approach III&lt;br /&gt;&lt;/strong&gt;/* Redirect to page myPage.jspx */&lt;br /&gt;FacesContext.getCurrentInstance().getExternalContext().redirect(/myPage.jspx);&lt;br /&gt;&lt;br /&gt;Approach I and II preserve the processScope&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-527581655019326410?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/527581655019326410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/527581655019326410'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/how-to-forward-to-page-dynamically-in.html' title='How to forward to a page dynamically in ADF?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8724680194078840480</id><published>2008-04-15T12:26:00.000-07:00</published><updated>2008-04-15T12:28:35.952-07:00</updated><title type='text'>Database native Web services - A Cool feature in Oracle 11g</title><content type='html'>Web services have become a popular way of developing applications. Until now, creating a Web service has required hand-coding or generating the programs necessary to expose a SOAP end-point, and then deploying this code using an application server. These programs need to address all aspects of a Web service’s usage, including generating the WSDL document, parsing and processing the SOAP request, and marshaling the required data into the correct XML format to provide the SOAP response.&lt;br /&gt;&lt;br /&gt;Database native Web services, delivered as part of Oracle Database 11g, eliminates all of this complexity for Web services that provide access to data stored in an Oracle Database. Database native Web services let you expose PL/SQL stored procedures, functions, and packages as Web services with zero coding and zero deployment effort. The database native Web services feature also includes a Web service that supports execution of dynamic SQL queries and XQuery expressions. The database HTTP server, provided as part of Oracle XML DB Repository, allows these Web services to be accessed using HTTP and HTTPS, without any additional application server infrastructure. Database native Web services leverage the powerful XML capabilities of Oracle XML DB to automatically generate the WDSL, parse and process the SOAP request, and generate the SOAP response.&lt;br /&gt;&lt;br /&gt;A nice step-by-step artcile for using Database native Web services can be found &lt;a href="http://www.oracle-base.com/articles/11g/NativeOracleXmlDbWebServices_11gR1.php"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8724680194078840480?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8724680194078840480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8724680194078840480'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/database-native-web-services-cool.html' title='Database native Web services - A Cool feature in Oracle 11g'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8263251960424486229</id><published>2008-04-15T11:37:00.000-07:00</published><updated>2008-04-15T11:40:11.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Separating Rules from Business Processes.</title><content type='html'>Service-oriented architecture (SOA) facilitates the development of enterprise applications as modular business services that can be easily integrated and be reused. Business Process Execution Language (BPEL) enable services to be orchestrated into business processes, which can be changed easily in response to business requirements. SOA promises simplified integration and increases service reuse.&lt;br /&gt;&lt;br /&gt;Change in Business Requirements does not always mean change in Business Process but often mean changes to the rules that drive the process.&lt;br /&gt;&lt;br /&gt;A typical business process often includes a number of decision points. These decision points generally have an effect on the process flow; for example, someone's credit rating may determine whether he or she is approved for a low-cost loan. These decisions are evaluated based on certain conditions and facts, which may be internal or external to the business process, and predefined company policies or rules. Business rules engines (BREs) allow architects to easily define, manage, and update the decision logic that directs enterprise applications from a single location without needing to write code or change the business processes calling them.&lt;br /&gt;&lt;br /&gt;Embeding the business rules inside the business process has savaral drawbacks.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business rules change more often than the processes themselves, but changing and managing embedded business rules is a complex task beyond the abilities of most business analysts. Thus, as business rules change, programmers often have commit expensive time to this task. &lt;/li&gt;&lt;li&gt;Most organizations lack a central rules repository. Consequently, any organization-wide change in policy cannot be applied across all business processes.&lt;/li&gt;&lt;li&gt; Business processes cannot reuse rules. Hence, IT personnel end up designing rules for each and every process, often leading to inconsistency or redundancy.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;The best way to avoid these problems is to separate business processes from business rules. Rules can be exposed as services and BPEL processes can leverage these services by querying the rules engine when they reach decision points. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Following Steps can be followed to use Rules along with BPEL.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create rules in a ruleset.&lt;/li&gt;&lt;li&gt;Expose the ruleset as a Web service.&lt;/li&gt;&lt;li&gt;Invoke the ruleset Web service from BPEL. &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/5641963655011037513-8263251960424486229?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8263251960424486229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8263251960424486229'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/separating-rules-from-business.html' title='Separating Rules from Business Processes.'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8581340318156643291</id><published>2008-04-14T06:21:00.000-07:00</published><updated>2008-04-14T06:23:00.373-07:00</updated><title type='text'>Generating XML data from database table and views</title><content type='html'>Oracle provides functions and packages for generating XML data from database table and views.&lt;br /&gt;&lt;br /&gt;Following options can be used to generate XML from Oracle content.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using SQLX Functions&lt;/li&gt;&lt;li&gt;Using Oracle Extensions to SQLX&lt;/li&gt;&lt;li&gt;Using DBMS_XMLGEN&lt;/li&gt;&lt;li&gt;Using SQL Functions&lt;/li&gt;&lt;li&gt;Using XSQL Pages Publishing Framework&lt;/li&gt;&lt;li&gt;Using XML SQL Utility (XSU)&lt;/li&gt;&lt;/ul&gt;This &lt;a href="http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96620/xdb12gen.htm"&gt;document &lt;/a&gt;explains the process in detail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8581340318156643291?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8581340318156643291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8581340318156643291'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/generating-xml-data-from-database-table.html' title='Generating XML data from database table and views'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-704542328144747309</id><published>2008-04-11T10:08:00.000-07:00</published><updated>2008-04-11T10:14:03.315-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF Skin'/><title type='text'>Creating skin for ADF Application</title><content type='html'>A skin is a global style sheet that affects the entire application. You can create one skin for the entire application . Every component will automatically use the styling as described by the skin. Any changes to the skin will be picked up at runtime, no change to code is needed. Skins are based on the Cascading Style Sheet (CSS) specification. You can also dynamically switch skins during runtime.&lt;br /&gt;&lt;br /&gt;In JDeveloper 11 you don't need to write a complete skin just to change a single component. You can extend an existing skin.&lt;br /&gt;&lt;br /&gt;To create a skin, you can refer this &lt;a href="http://myfaces.apache.org/trinidad/devguide/skinning.html"&gt;document&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-704542328144747309?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/704542328144747309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/704542328144747309'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/creating-skin-for-adf-application.html' title='Creating skin for ADF Application'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8753437981424393667</id><published>2008-04-11T07:59:00.001-07:00</published><updated>2008-04-11T08:01:03.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF Business Components Validation Flow Chart'/><title type='text'>ADF Business Components Validation Flow Chart</title><content type='html'>&lt;div&gt;This flow chart illustrates the validation processing flow for &lt;/div&gt;&lt;div&gt;insert, update and delete.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_wagB7vk5PeU/R_985aY7U9I/AAAAAAAAABA/FHuHIQlVsC4/s1600-h/EOFlowChart.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5188002621532361682" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_wagB7vk5PeU/R_985aY7U9I/AAAAAAAAABA/FHuHIQlVsC4/s320/EOFlowChart.bmp" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8753437981424393667?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8753437981424393667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8753437981424393667'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/adf-business-components-validation-flow.html' title='ADF Business Components Validation Flow Chart'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wagB7vk5PeU/R_985aY7U9I/AAAAAAAAABA/FHuHIQlVsC4/s72-c/EOFlowChart.bmp' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-6178504638652095799</id><published>2008-04-11T06:56:00.000-07:00</published><updated>2008-04-11T10:04:00.539-07:00</updated><title type='text'>Using BPEL in ADF</title><content type='html'>The common way of using web services in Oracle ADF is to create a data control for an external web service. JDeveloper allows you to create a data control for an existing web service using just the WSDL for the service.&lt;br /&gt;&lt;br /&gt;Here you can watch a nice &lt;a href="http://www.oracle.com/technology/products/jdev/viewlets/1013/bpelfromadf_viewlet_swf.html"&gt;demo &lt;/a&gt;to use BPEL with ADF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-6178504638652095799?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6178504638652095799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6178504638652095799'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/using-bpel-in-adf.html' title='Using BPEL in ADF'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-2851061345626537942</id><published>2008-04-10T13:36:00.000-07:00</published><updated>2008-04-10T13:38:59.589-07:00</updated><title type='text'>Order of method calls in Entity Object</title><content type='html'>Though I found a lot of reference about Entity Object methods and thier usage, I never found a document describing order of method calls in Entity Object. Here I am trying to put the method call order in place.&lt;br /&gt;&lt;br /&gt;Entity Create flow.&lt;br /&gt;&lt;br /&gt;Loop for each created entity Object&lt;br /&gt;      {&lt;br /&gt;          validateEntity();&lt;br /&gt;          prepareForDML();&lt;br /&gt;          doDML();&lt;br /&gt;       }&lt;br /&gt;Loop for each created entity Object&lt;br /&gt;      {&lt;br /&gt;         beforeCommit();&lt;br /&gt;       }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-2851061345626537942?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/2851061345626537942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/2851061345626537942'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/order-of-method-calls-in-entity-object.html' title='Order of method calls in Entity Object'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-5467861316795651285</id><published>2008-04-10T10:12:00.000-07:00</published><updated>2008-04-10T10:13:38.687-07:00</updated><title type='text'>Enabling Partial Page Rendering(PPR) in ADF.</title><content type='html'>For a component to trigger another component to refresh, the trigger component must cause a submit when an appropriate action takes place.On the trigger command component set the id attribute to a unique value. If it is an input component in a form, set the autoSubmit attribute of thecomponent to true. Otherwise, set the partialSubmit attribute of the component to true.&lt;br /&gt;&lt;br /&gt;For a component is to be refreshed triggered by another component, it must declare which other components are the triggers.On the target component that you want to partially refresh when the trigger command component is activated, set the partialTriggers attribute to the id of the trigger command component. If the component refresh is to be triggered by more than one other component, list their IDs separated by spaces.&lt;br /&gt;&lt;br /&gt;Following three main component attributes are used to enable partial page rendering.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;autoSubmit:&lt;/strong&gt; When the autoSubmit attribute of an input or select component is set to true, and an appropriate action takes place (such as a value change), the component automatically submits the form it is enclosed in.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;partialSubmit:&lt;/strong&gt; When the partialSubmit attribute of a command component is set to true, clicking the button or link causes the page to be partially submitted.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;partialTriggers:&lt;/strong&gt; All rendered components support the partialTriggers attribute. Use this attribute to list the IDs of components whose change events are to trigger this component to be refreshed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-5467861316795651285?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5467861316795651285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/5467861316795651285'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/enabling-partial-page-renderingppr-in.html' title='Enabling Partial Page Rendering(PPR) in ADF.'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-3938042599859514133</id><published>2008-04-10T08:32:00.000-07:00</published><updated>2008-04-10T08:38:59.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF JSF Trinidad'/><title type='text'>What is Trinidad?</title><content type='html'>Trinidad is Oracle's JSF component library which Oracle has donated to Apache MyFaces.&lt;br /&gt;&lt;br /&gt;Trinidad is a JSF framework including a large, enterprise quality component library, supporting critical features such as accessibility (e.g. Section 508), right-to-left languages, etc. It also includes a set of framework features, including :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Partial-page rendering support for the entire component set &lt;/li&gt;&lt;li&gt;Integrated client-side validation &lt;/li&gt;&lt;li&gt;A dialog framework &lt;/li&gt;&lt;li&gt;pageFlowScope, for communicating between pages &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Oracle's ADF Faces Rich Client components are based on these Trinidad components.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-3938042599859514133?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3938042599859514133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/3938042599859514133'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/what-is-trinidad.html' title='What is Trinidad?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4311663951135376399</id><published>2008-04-09T10:29:00.000-07:00</published><updated>2008-04-09T10:39:06.419-07:00</updated><title type='text'>How to display the content of a BLOB column(e.g. Image) in a ADF/BC pages ?</title><content type='html'>If you have some image in the database table BLOB column and you want to display the image on the screen, you can follow the following approach.&lt;br /&gt;&lt;br /&gt;1: Write a simple servlet that streams the blob back to the client as an image.&lt;br /&gt;2: Add an image to the page from the component pallete.&lt;br /&gt;&lt;br /&gt;3: Change the source attribute of image to /yourServletname?thumbnail=#{bindings.yourbindingvalue} &lt;br /&gt;e.g./imageservlet?thumbnail=#{bindings.ProductId}&lt;br /&gt;&lt;br /&gt;I have taken the servlet code from the FOD (Fusion Order Demo). Modify the following code according to your application specific object usage. &lt;br /&gt;&lt;br /&gt;package oracle.fodemo.storefront.servlet;&lt;br /&gt;&lt;br /&gt;import java.io.BufferedInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.OutputStream;&lt;br /&gt;&lt;br /&gt;import java.sql.Blob;&lt;br /&gt;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.PreparedStatement;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;&lt;br /&gt;import javax.naming.Context;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletConfig;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import javax.sql.DataSource;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class ImageServlet extends HttpServlet {&lt;br /&gt; &amp;nbsp; &amp;nbsp;private static final String CONTENT_TYPE = &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"image/jpg; charset=utf-8";&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;public void init(ServletConfig config) throws ServletException {&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.init(config);&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;public void doGet(HttpServletRequest request, &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HttpServletResponse response) throws ServletException, &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IOException {&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response.setContentType(CONTENT_TYPE);&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response.setContentType(CONTENT_TYPE);&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String detailProductId = request.getParameter("detail");&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String thumbnailProductId = request.getParameter("thumbnail");&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean thumbnail = true;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String productId = null;&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OutputStream os = response.getOutputStream();&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Connection conn = null; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context ctx = new InitialContext();&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DataSource ds = (DataSource)ctx.lookup("jdbc/FODDS");&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conn = ds.getConnection();&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PreparedStatement statement = conn.prepareStatement(&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"SELECT ProductImageEO.PRODUCT_IMAGE_ID, " + &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;" &amp;nbsp; &amp;nbsp; &amp;nbsp; ProductImageEO.PRODUCT_ID, " + &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;" &amp;nbsp; &amp;nbsp; &amp;nbsp; ProductImageEO.DEFAULT_VIEW_FLAG, " + &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;" &amp;nbsp; &amp;nbsp; &amp;nbsp; ProductImageEO.DETAIL_IMAGE_ID, " + &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;" &amp;nbsp; &amp;nbsp; &amp;nbsp; ProductImageEO.IMAGE " + &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"FROM &amp;nbsp;PRODUCT_IMAGES ProductImageEO " +&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"WHERE ProductImageEO.DEFAULT_VIEW_FLAG = ?" + &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;" &amp;nbsp; &amp;nbsp; &amp;nbsp;AND ProductImageEO.PRODUCT_ID = ?");&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (detailProductId != null) {&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;productId = detailProductId;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;thumbnail = false;&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;productId = thumbnailProductId;&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;statement.setString(1,(thumbnail ? "Y" : "N")); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;statement.setInt(2, new Integer(productId));&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ResultSet rs = statement.executeQuery(); &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rs.next()) { &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blob blob = rs.getBlob("IMAGE"); &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BufferedInputStream in = new BufferedInputStream(blob.getBinaryStream()); &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int b; byte[] buffer = new byte[10240]; &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while ((b = in.read(buffer, 0, 10240)) != -1) { os.write(buffer, 0, b); } &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.close();&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e){&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.printStackTrace();&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try{&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (conn != null){&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; conn.close();&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (SQLException sqle){&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqle.printStackTrace();&lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4311663951135376399?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4311663951135376399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4311663951135376399'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/how-to-display-content-of-blob-column.html' title='How to display the content of a BLOB column(e.g. Image) in a ADF/BC pages ?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-6486615756814330271</id><published>2008-04-09T08:33:00.000-07:00</published><updated>2009-02-15T09:27:49.622-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF EO Sequence'/><title type='text'>ADF EO - Assigning Database Sequence value to an Attribute at time of row creation.</title><content type='html'>Sometimes you need to assign a database sequence value to an attribute at entity row creation time. Override the create() method and use SequenceImpl helper class in the oracle.jbo.server package to get the sequence value.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;import oracle.jbo.server.SequenceImpl;&lt;br /&gt;&lt;br /&gt;protected void create(AttributeList nameValuePair) {&lt;br /&gt;     super.create(nameValuePair);&lt;br /&gt;     SequenceImpl sequence =&lt;br /&gt;      new SequenceImpl("EMPLOYEE_SEQ",getDBTransaction());&lt;br /&gt;     setEmpId(sequence.getSequenceNumber());&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-6486615756814330271?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6486615756814330271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/6486615756814330271'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/adf-eo-assigning-database-sequence.html' title='ADF EO - Assigning Database Sequence value to an Attribute at time of row creation.'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1358949798880086182</id><published>2008-04-09T08:07:00.000-07:00</published><updated>2008-04-09T08:08:57.991-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF Security'/><title type='text'>ADF - validate the username and password against a database table</title><content type='html'>Container-managed security allows web applications to delegate authentication and authorization decisions to the executing web container.In Oracle Containers for J2EE (OC4J) the authentication and authorization decision is handled by the OracleAS JAAS Provider.Web applications running in OC4J can be configured to authenticate users against Oracle Internet Directory (OID), third-party LDAP, CoreId, jazn-data.xml or a custom JAAS LoginModule.The benefit of container-managed security in contrast to a pure JAAS approach (Java Authentication and Authorization Service) approach is that the application logic is not mixed with authentication and authorization code, which ensures portability.&lt;br /&gt;&lt;br /&gt;This article explains how to leverage database tables for storing account information for user authentication and authorization of Java EE applications in JDeveloper 10.1.3.2 and OC4J 10.1.3.2.&lt;br /&gt;&lt;br /&gt;Find the article &lt;a href="http://www.oracle.com/technology/products/jdev/howtos/1013/oc4jjaas/oc4j_jaas_login_module.htm"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1358949798880086182?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1358949798880086182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1358949798880086182'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/adf-validate-username-and-password.html' title='ADF - validate the username and password against a database table'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-7226676196518279999</id><published>2008-04-08T13:12:00.000-07:00</published><updated>2008-04-08T13:16:44.247-07:00</updated><title type='text'>Most Commonly Used Methods in ADF Business Components</title><content type='html'>&lt;span class="bodycopy"&gt;Steve Muench has compiled a list of Most Commonly Used Methods in ADF Business Components. It includes the methods that ADF developers write, call, and override most frequently.&lt;br /&gt;&lt;br /&gt;The list can be found &lt;a href="http://www.oracle.com/technology/products/jdev/tips/muench/mostcommon/index.html#revhistory"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-7226676196518279999?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7226676196518279999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7226676196518279999'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/most-commonly-used-methods-in-adf.html' title='Most Commonly Used Methods in ADF Business Components'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4167122346832623132</id><published>2008-04-08T12:42:00.001-07:00</published><updated>2008-04-08T12:49:51.450-07:00</updated><title type='text'>Life Cycle of an Entity Object.</title><content type='html'>When a new row is created on entity-based view object, the entity status is set as New.  Transaction's list of pending changes is updated with the new row. When the transaction is committed, the row will be saved to the data base. But when a blank row is created, the user may not have entered any data. So by setting the row status to 'initialized', the new row can be forced to remove from the Transaction's list of pending changes. This prevents the system from posting the row into database, if the user never enters any data into any attribute of that initialized row. When the user enters data into any attribute of the initialized row, the row status changed to New.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wagB7vk5PeU/R_vK91IjMlI/AAAAAAAAAAY/gior4zN642c/s1600-h/EntityLifeCycle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_wagB7vk5PeU/R_vK91IjMlI/AAAAAAAAAAY/gior4zN642c/s320/EntityLifeCycle.bmp" alt="" id="BLOGGER_PHOTO_ID_5186962559431029330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When an entity is retrieved from the database, its status is set as Unmodified. When the user enters data into any attribute of the unmodified row, the row status changed to Modified. When user calls remove() on Unmodified row, the row status changes to Deleted. If the row is in New state and the user calls remove() on the row, row status changes to Dead.&lt;br /&gt;&lt;br /&gt;When an entity is retrieved from database, the entity is assumed to be valid. When any attribute of the entity is modified or a new entity row is created, the entity is marked as invalid. Before committing the transaction, system validates all invalid entity rows in the Transaction's pending list. Then the changes are posted to database and the row status changes to Unmodified.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4167122346832623132?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4167122346832623132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4167122346832623132'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/life-cycle-of-entity-object.html' title='Life Cycle of an Entity Object.'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_wagB7vk5PeU/R_vK91IjMlI/AAAAAAAAAAY/gior4zN642c/s72-c/EntityLifeCycle.bmp' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-2955830776416638945</id><published>2008-04-08T10:15:00.000-07:00</published><updated>2008-04-08T10:16:30.501-07:00</updated><title type='text'>Difference between setCurrentRowWithKey and setCurrentRowWithKeyValue?</title><content type='html'>&lt;span style="font-weight:bold;"&gt;setCurrentRowWithKey&lt;/span&gt; takes serialized value of rowKey as parameter e.g. 000200000002C20200000002C102000000010000010A5AB7DAD9&lt;br /&gt;The serialized string representation of a key encodes all of the key attributes that can be conveniently passed as a single&lt;br /&gt;value in a browser URL string or form parameter.&lt;br /&gt;&lt;br /&gt;The serialized string key of a row can be accessed by referencing the rowKeyStr property of an ADF control binding (e.g. #{bindings.SomeAttrName.rowKeyStr})&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;setCurrentRowWithKeyValue &lt;/span&gt;takes literal value as parameter e.g "201"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-2955830776416638945?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/2955830776416638945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/2955830776416638945'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/difference-between-setcurrentrowwithkey.html' title='Difference between setCurrentRowWithKey and setCurrentRowWithKeyValue?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-8207108771969408615</id><published>2008-04-04T15:27:00.000-07:00</published><updated>2008-04-04T17:21:56.150-07:00</updated><title type='text'>How to change the Oracle ADF look and feel?</title><content type='html'>Oracle supports skinning i.e. changing the look and feel of the application.&lt;br /&gt;You can develop your own skin e.g. CustomSkin.css&lt;br /&gt;&lt;br /&gt;Step 1: Put CustomSkin.css and all dependent resources at the root&lt;br /&gt;of your application e.g. /skins/myskin/CustomSkin.css&lt;br /&gt;&lt;br /&gt;Step 2: Register the custom skin&lt;br /&gt;In JDeveloper, right click on the WEB-INF folder of the sample project&lt;br /&gt;and create a new XML document and name it - adf-faces-skins.xml&lt;br /&gt;Replace the generated code with the following:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;ltskins xmlns="http://xmlns.oracle.com/adf/view/faces/skin"&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;ltskin&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;ltid&amp;gtmycompany.desktop&amp;lt/id&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;ltfamily&amp;gtmyskin&amp;lt/family&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;ltrender-kit-id&amp;gtoracle.adf.desktop&amp;lt/render-kit-id&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;ltstyle-sheet-name&amp;gt/skins/myskin/CustomSkin.css&amp;lt/style-sheet-name&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt/skin&amp;gt&lt;br /&gt;&amp;nbsp;&amp;lt/skins&amp;gt&lt;br /&gt;&lt;br /&gt;Save your work.&lt;br /&gt;&lt;br /&gt;Step 3: Modify adf-faces-config.xml file to use the custom skin.&lt;br /&gt;Open the adf-faces-config.xml file.&lt;br /&gt;Replace the &amp;ltskin-family&amp;gtvalue with custom skin family name&lt;br /&gt;e.g. &amp;ltskin-family&amp;gtmyskin&amp;lt/skin-family&amp;gt&lt;br /&gt;&lt;br /&gt;Save your work.&lt;br /&gt;&lt;br /&gt;Step 4: Run your application and test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-8207108771969408615?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8207108771969408615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/8207108771969408615'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/how-to-change-oracle-adf-look-and-feel.html' title='How to change the Oracle ADF look and feel?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-1435747414520450958</id><published>2008-04-04T15:20:00.000-07:00</published><updated>2008-04-04T15:27:06.819-07:00</updated><title type='text'>Useful ADF Blogs</title><content type='html'>These Blogs made my life easier. Hope these will help you too.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thepeninsulasedge.com/frank_nimphius/"&gt;Frank Nimphius Blogbuster&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://radio.weblogs.com/0118231/"&gt;Dive into Oracle ADF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.oracle.com/shay/"&gt;Shay Shmeltzer's Weblog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thepeninsulasedge.com/blog/"&gt;The Peninsula's Edge&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groundside.com/blog/DuncanMills.php"&gt;The GroundBlog By Duncan Mills&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jroller.com/mwessendorf/"&gt;Matthias Wessendorf's Weblog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groundside.com/blog/GrantRonald.php"&gt;Grants Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tugdualgrall.blogspot.com/"&gt;Tug's Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://one-size-doesnt-fit-all.blogspot.com/"&gt;Chris Muir&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stegemanoracle.wordpress.com/"&gt;Real World ADF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kingsfleet.blogspot.com/"&gt;Gerard Davison's Blog &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://andrejusb-samples.blogspot.com/"&gt;Andrejus Baranovskis's Blog - JDev/ADF Samples list&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://biemond.blogspot.com/"&gt;Java / Oracle SOA blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-1435747414520450958?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1435747414520450958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/1435747414520450958'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/these-blogs-made-my-life-easier.html' title='Useful ADF Blogs'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-7780761585779092616</id><published>2008-04-04T15:17:00.000-07:00</published><updated>2008-04-04T15:18:57.777-07:00</updated><title type='text'>How to add one master and many details in Oracle ADF?</title><content type='html'>Oracle ADF helps you to define master detail regions by drag and drop. But 'drag and drop' is only possible for one master and one detail combination. For one master and many details design follow the following steps. &lt;br /&gt;&lt;br /&gt;let us assume, you need one master and two detail.&lt;br /&gt;&lt;br /&gt;Region Structure&lt;br /&gt;---------------------------&lt;br /&gt;&lt;br /&gt;Master1&lt;br /&gt;|&lt;br /&gt;|________ Detail1&lt;br /&gt;|&lt;br /&gt;|________ Detail2&lt;br /&gt;&lt;br /&gt;View Objects&lt;br /&gt;----------------------------&lt;br /&gt;MasterVO&lt;br /&gt;|&lt;br /&gt;| VL1&lt;br /&gt;|___________DetailVO1&lt;br /&gt;|&lt;br /&gt;| VL2&lt;br /&gt;|___________DetailVO2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 1: Drag DetailVO1 from Data Control Palette.&lt;br /&gt;Drop on the page design and select 'Master Detail =&gt; ADF master table, Detail Table'&lt;br /&gt;This will create Master1 table and Detail1 table&lt;br /&gt;&lt;br /&gt;Step 2: Drag DetailVO2 from Data Control Palette.&lt;br /&gt;Drop on the page design and select 'Master Detail =&gt; ADF master table, Detail Table'&lt;br /&gt;This will create Master2 table and Detail2 table&lt;br /&gt;&lt;br /&gt;Step 3: Delete Master2 table&lt;br /&gt;&lt;br /&gt;Step 4: Select Detail2 table. In the property inspector, Behavior tab, put Master1 in the Partial Triggers field. (Note: Master1 is the master table name).&lt;br /&gt;&lt;br /&gt;Run the page and test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-7780761585779092616?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7780761585779092616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7780761585779092616'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2008/04/how-to-add-one-master-and-many-details.html' title='How to add one master and many details in Oracle ADF?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-4707950193301822304</id><published>2007-03-23T04:20:00.000-07:00</published><updated>2007-03-23T05:44:50.200-07:00</updated><title type='text'>RPC vs Document style</title><content type='html'>&lt;strong&gt;RPC Style&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;RPC stands for Remote Procedure call, in which the client sends a SOAP request to execute an operation on the Web Service. The SOAP request contains the name of method to be executed and the parameter it takes. The server running the Web Service converts this request to appropriate objects, executes the operation and sends the response as SOAP message to client. At the client side, this response is used to form appropriate objects and return the required information (output) to the client. RPC-style Web Services are tightly coupled because the sending parameters and return values are as described in WSDL (Web Service Description Language ) file and are wrapped in the SOAP body. Following is an example SOAP Body of RPC-style Web Service, which invokes GetStockQuote method with input parameter "ORCL".&lt;br /&gt;&lt;br /&gt;&amp;ltSOAP-ENV:Envelope...&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;ltSOAP-ENV:Body&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;ltm:GetStockQuote xmlns:m="urn:xmethods:example"&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;       &amp;ltm:Symbol&amp;gtORCL&amp;lt/m:Symbol&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;lt/m:GetStockQuote&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;lt/SOAP-ENV:Body&amp;gt&lt;br /&gt;&amp;lt/SOAP-ENV:Envelope&amp;gt&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Document-style&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Document Style Web Service are loosely coupled and the request / response are in the form of XML documents. The client sends the parameter to the Web Service as XML document, instead of discrete set of parameter values. The Web Service processes the document, executes the operation and constructs &amp; sends the response to the client as an XML document . There is no direct mapping between the server objects (parameters, method calls etc) and the values in XML documents. The application has to take care of mapping the XML data values. The SOAP Body of a document style carries one or more XML documents, within its body. The protocol places no constraint on how that document needs to be structured, which is totally handled at the application level. Document-style Web Service follows asynchronous processing. Following is an example SOAP body for Document style Web Service.&lt;br /&gt;&lt;br /&gt;&amp;ltSOAP-ENV:Envelope ...&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;ltSOAP-ENV:Body&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;ltStockQuoteRequest symbol="ORCL"/&amp;gt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;lt/SOAP-ENV:Body&amp;gt&lt;br /&gt;&amp;lt/SOAP-ENV:Envelope&amp;gt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-4707950193301822304?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4707950193301822304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/4707950193301822304'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2007/03/rpc-vs-document-style.html' title='RPC vs Document style'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5641963655011037513.post-7462138607496028603</id><published>2007-03-22T23:49:00.000-07:00</published><updated>2007-03-23T00:46:04.330-07:00</updated><title type='text'>How to invoke Oracle BPEL process from Java?</title><content type='html'>&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Import the following classes.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;// To connect to BPEL Process Manager&lt;br /&gt;import com.oracle.bpel.client.Locator;&lt;br /&gt;&lt;br /&gt;// To invoke BPEL process&lt;br /&gt;import com.oracle.bpel.client.dispatch.IDeliveryService;&lt;br /&gt;&lt;br /&gt;// To process XML messages&lt;br /&gt;import com.oracle.bpel.client.NormalizedMessage;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;Add following code to your invokation logic.&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1: Connect to BPEL process manager&lt;br /&gt;&lt;br /&gt;Locator locator = new Locator("Domain Name", "Pass Word" , "IP Address");&lt;br /&gt;&lt;br /&gt;Ex: Locator locator = new Locator("default", "bpel", null);&lt;br /&gt;// null IP address means local server&lt;br /&gt;&lt;br /&gt;2: Get the handle of IDeliveryService instance which is used to invoke BPEL process.&lt;br /&gt;&lt;br /&gt;IDeliveryService deliveryService =&lt;br /&gt;(IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );&lt;br /&gt;&lt;br /&gt;3: Prepare the XMl message for input.&lt;br /&gt;&lt;br /&gt;String xmlData = "&lt;name xmlns="'\"&gt;XML data";&lt;br /&gt;NormalizedMessage message = new NormalizedMessage( );&lt;br /&gt;message.addPart("payload", xmlData );&lt;br /&gt;&lt;br /&gt;4: Invoking BPEL process with two way operations&lt;br /&gt;(which has both input and output messages)&lt;br /&gt;&lt;br /&gt;NormalizedMessage res =&lt;br /&gt;deliveryService.request("BPEL Process ID", "Operation Name", "message");&lt;br /&gt;Map payload = res.getPayload();&lt;br /&gt;&lt;br /&gt;5: Invoking BPEL process with one way operations&lt;br /&gt;(which takes input message but returns not output)&lt;br /&gt;&lt;br /&gt;deliveryService.post("BPEL Process ID", "Operation Name", "message");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5641963655011037513-7462138607496028603?l=ranajitsahoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7462138607496028603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5641963655011037513/posts/default/7462138607496028603'/><link rel='alternate' type='text/html' href='http://ranajitsahoo.blogspot.com/2007/03/how-to-invoke-oracle-bpel-process-from.html' title='How to invoke Oracle BPEL process from Java?'/><author><name>Ranajit Sahoo</name><uri>http://www.blogger.com/profile/09666999919833988112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wagB7vk5PeU/ShB4wShQG1I/AAAAAAAAAa0/oKh-i7E0G-I/S220/Untitled.jpg'/></author></entry></feed>
