Wednesday, 7 March 2012

Attaching policies using the configuration plan

It is possible to attach policies to composites or components on deployment time using configuration plans.

To do that:

<service name="bpelprocess1_client_ep">
<binding type="ws">
<attribute name="port">
<replace>http://xmlns.oracle.com/Application1/TEST_XDN_CONGIFPLAN/BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)</replace>
</attribute>
<wsp:PolicyReference URI="oracle/wss_username_token_service_policy"
orawsp:category="security"
orawsp:status="enabled"/>
<wsp:PolicyReference URI="oracle/log_policy"
orawsp:category="management"
orawsp:status="enabled"/>
</binding>
</service>

SOA Suite: 11.1.1.4

General Configuration Plan mixing endpoints

PROBLEM:

While using global config plan, the deployer is mixing endpoints

SOLUTION

What makes the cfg_plan act like this was this entry on the file:

<!--Template repository path references-->
<reference name="*">
<property name="........
</reference>
<!-- // -->

With this entry I was trying to attribute to all references the same configuration.

To avoid the unexpected behaviour described put all referencing of this kind after all references included on the configuration file.

Why sometimes we needed to add dehydration point after reply

Reply handling

We normally think of reply as causing the response to be sent back to the client, and if the transaction was initiated by the BPEL service engine, then it would be committed as part of the reply. In most cases, this is an accurate description of the end result, but this is not actually what happens. When a reply is reached, the response message is marked as available for returning to the requestor, but it is not returned to the requestor. Instead the BPEL engine will continue to process activities until it reaches a dehydration point. On reaching the dehydration point, the current thread (which was also the requesting thread) will return the reply message to the requestor. Note that this results in a delay in the returning of the result to the requestor, and it also causes the transaction scope to extend past the reply activity.

SOA Suite: 11.1.1.4

Tuesday, 6 March 2012

XSL code erase empty nodes, trim spces and normalize strings

XSLT code snippet to trim all spaces, normalize strings and erase all empty nodes.

<xsl:template match="node()">
<xsl:if test="count(descendant::text()[string-length(normalize-space(.))>0]|@*)">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>

<xsl:template match="@*">
<xsl:copy/>
</xsl:template>

<xsl:template match="text()">
<xsl:value-of select="normalize-space(.)"/>
</xsl:template>

Deployment over different environments

Use ORAMDS for all XSD / WSDL files on the project (oramds:...) in all composite.xml and wrappers on location tag. Doing that you will garantee that you can deploy anywhere even when you don't have remote access to a environment. And in this way it is not necessary to change endpoints on composite.xml on compilation time (by script for instance)

then use configuration plans.

Deploying EJB using Worklist API




When deploying fro Jdev 11.1.1.4 I got the error:


[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
oracle/bpel/services/workflow/task/model/Task.
[11:57:04 AM] Caused by: java.lang.NoClassDefFoundError: oracle/bpel/services/workflow/task/model/Task

Solution:

Be sure that you have a EJB JAR project deployment profile and a EAR Application Deployment Profile.

Add these library entry on weblogic-application.xml file accessible go on Application Resources view on Jdeveloper / descriptors / META-INF


<library-ref>
<library-name>adf.oracle.domain</library-name>
<implementation-version>11.1.1.1.0</implementation-version>
</library-ref>
<library-ref>
<library-name>oracle.soa.workflow</library-name>
<implementation-version>11.1.1</implementation-version>
</library-ref>



Wednesday, 29 February 2012

Segmentation fault ./runInstaller $*

When deinstalling SOA Suite from Middleware I got:Segmentation fault ./runInstaller $*

The solution is to run the installer on Oracle_SOA/oui/bin with jreLoc option defined.

ex:
./runInstaller -deinstall -jreLoc /u01/app/oracle/product/Middleware/jdk1.6.0_31