Sunday, December 16, 2012

Deployment plan file to replace the JCA Adapters properties – Oracle SOA 11g

We can create and edit a configuration plan file in which we can replace the following attributes and properties:
  •  Any composite, service component, reference, service, and binding properties in the SOA composite application file (composite.xml)
  • Attribute values for bindings (for example, the location for binding.ws)
  • schemaLocation attribute of an import in a WSDL file
  • location attribute of an include in a WSDL file
  • schemaLocation attribute of an include, import, and redefine in an XSD file
  • Any properties in JCA adapter files
The configuration plan does not alter XSLT artifacts in the SOA composite application. If you want to modify any XSL, do so in the XSLT Mapper. Using a configuration plan is not useful. For example, you cannot change references in XSL using the configuration plan file. Instead, they must be changed manually in the XSLT Mapper in Oracle JDeveloper when moving to and from test, development, and production environments.
Generate the Plan file:
The plan file can be generated through JDeveloper or through ANT script.
Generating Plan file through JDeveloper:
Right Click on Composite.xml and click on generate config Plan.



Change the generated plan file contents accordingly to replace the properties and attributes of the composites.
Change the wsdlAndSchema section accordingly to replace the WSDL location and the schemaLocation of the WSDL’s and XSD’s
   <wsdlAndSchema name="ExplorePlanFile.wsdl|FileAdapter_file.jca|FileAdapter.wsdl|xsd/AA_table.xsd|xsd/ExplorePlanFile.xsd">
      <searchReplace>
         <search>http://localhost:7001/</search>
         <replace>http://10.15.23.24:8004/</replace>
      </searchReplace>
   </wsdlAndSchema>
By default the wsdlAndSchema section will include the jca files to replace the JCA file properties.
The default configuration as shown below is not replacing the jca properties after the deployment of the composite.
<wsdlAndSchema name="FileAdapter_file.jca|FileAdapter.wsdl|xsd/AA_table.xsd|xsd/ExplorePlanFile.xsd">
      <searchReplace>
<search>D://Albin/Files</search>
  <replace>D://Albin/Files/Sample</replace>      </searchReplace>
   </wsdlAndSchema>
The same should be changed as shown below to replace the JCA adapter properties 
File Adapter properties:
<wsdlAndSchema name="FileAdapter_file.jca">
      <jca:property name="PhysicalDirectory">
         <searchReplace>
            <search>D://Albin/Files</search>
            <replace>D://Albin/Files/Sample</replace>
         </searchReplace>
      </jca:property>
       <jca:property name="Append">
         <searchReplace>
            <search>false</search>
            <replace>true</replace>
         </searchReplace>
      </jca:property>     
   </wsdlAndSchema>
MQ Adapter properties:
<wsdlAndSchema name="ENQ_GE_EI_EAI_TRIGGER_mq.jca|OrderStatusMonitorMQAdp_mq.jca">
                <jca:property name="QueueName">                  
        <searchReplace>
            <search>S_Order_Queue</search>
            <replace>P_Order_Queue</replace>
        </searchReplace>
        </jca:property>
   </wsdlAndSchema>
The same searchReplace can be used to replace all the JCA adapters’ properties.
Attaching the plan file while deploying the composite from JDeveloper:
 
The plan file can be attached through ant script during the deployment of the composite to the server.
    <ant antfile="${oracle.home}/bin/ant-sca-deploy.xml" inheritAll="false"
             target="deploy">
            <property name="wl_home" value="${wl_home}"/>
            <property name="oracle.home" value="${oracle.home}"/>
            <property name="serverURL" value="${soa.cluster.serverURL}"/>
            <property name="user" value="${soa.user}"/>
            <property name="password" value="${soa.password}"/>
            <property name="overwrite" value="${soa.composite.overwrite}"/>
            <property name="forceDefault" value="${soa.composite.forceDefault}"/>
            <property name="sarLocation" value="${deploy.sarLocation}"/>
            <property name="configplan" value="${deploy.configplan}"/>
        </ant>

########

0 comments: