Oracle® Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack 11g Release 1 (11.1.1.6.3) Part Number E17364-08 |
|
|
PDF · Mobi · ePub |
This chapter discusses the approach to create Deployment Plans for Oracle Data Integrator (ODI) artifacts extended using AIA Extension mechanism. AIA Deployment Plan Generator utility helps generate Deployment Plans for extended artifacts and AIA Installation Driver (AID) helps deploy them.
This chapter includes the following sections:
The deployment plan is used to perform the required configurations and deploy the services to the Fusion Middleware server using the AIA Installation Driver. Figure 9-1 illustrates the flow for generating deployment plans for ODI.
For more information about deployment plans, see Chapter 8, "Generating Deployment Plans and Deploying Artifacts."
ODI BOM is a hand-coded xml file with the list of artifacts to be imported to ODI along with the list of tokens to be replaced and encrypted. This ODI BOM is provided as input to the Deployment Plan Generator to generate the ODI deployment plan.
The ODIBOM.xml file consists of the following information:
Passwords to be encrypted in the ODI artifacts.
Tokens to be replaced during deployment time in the ODI artifacts.
The path elements of the master and work repository files to be imported into ODI.
Example 9-1 shows the structure of a sample ODI BOM.
Example 9-1 Sample ODI BOM
<?xml version="1.0" encoding="UTF-8"?> <PipOdi xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" projectCode="ODISample"> <!-- WORK & MASTER REPOSITORIES --> <Repositories> <MasterRepositoryLocation>${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master</MasterRepositoryLocation> <WorkRepositoryLocation>${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/work</WorkRepositoryLocation> </Repositories> <CopyDvmstoODIPath> <fileset dir="${AIA_ HOME}/PIPS/Industry/Communications/DIS/Collections/setupxmls/"> <include name="COLLECTION_ACTIONNAME.xml"/> </fileset> </CopyDvmstoODIPath> <ODIReplaceTokens> <property>siebel.db.username</property> <property>brm.username</property> <property>ebiz.db.username</property> </ODIReplaceTokens> <ODIEncryptPasswords> <property>siebel.db.password</property> <property>brm.password</property> <property>ebiz.db.pwd</property> </ODIEncryptPasswords> <!-- Exported ODI files --> <!-- Master Repository objects --> <MSTREP_Grp> <path id="masterFiles" > <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONT_Global.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONT_RETL_TO_PSFT.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONT_RETL_TO_PSFT_DB2.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONN_PEOPLESOFTDS.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONN_PSFT_DB2_DS.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master /LSC_Peoplesoft.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master /LSC_PSFT_DB2_LogicalSchema.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master /LSC_Retail.xml"/> </path> </MSTREP_Grp> <!-- Work Repository files--> <WRKREP_Grp> <path id="workFiles" > <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/MFOL_ OracleRetailToPeopleSoft.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/MFOL_ ReIMToPeopleSoftAccountingEntry.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/MFOL_ ReIMToPSFTInvoice.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/MFOL_ RMSToPeopleSoftAccountingEntry.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/CONN_ PSFT_DB2_DS.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/PROJ_ ReIMToPeopleSoftInvoiceProject.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/PROJ_ ReIMToPSFTAcctEntryProject.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work/PROJ_ RMSToPSFTAcctEntryProject.xml"/> </path> </WRKREP_Grp> </PipOdi>
This section discusses how to use the sections in the BOM.xml.
The ODIReplaceTokens section lists the tokens that are to be replaced in ODI artifacts. In AIA 2.x versions, all tokens for artifacts are available as $<token name>$. Change this to <token name>. Token name should be same as the xpath of the property in AIAInstallProperties.xml. Example 9-2 shows an example for a property.
Example 9-2 Structure of a Property in AIAInstallProperties.xml
<pips> <siebel> <db> <jdbc-url>xyz</jdbc-url> </db> </siebel> </pips>
The above property value in the ODI artifacts should be tokenized with the xpath of the property in AIAInstallProperties.xml, which is, pips.siebel.db.jdbc-url
.
The ODIEncryptPasswords section lists the passwords that are to be encrypted in ODI artifacts. The password property should be same as the xpath of the corresponding property in AIAInstallProperties.xml. Example 9-3 shows an example for the structure of a password field.
The CopyDvmstoODIPath section lists the DVMs that are to be copied to the odi.dvm.path location. List all of the files using the filename tag within the fileset tag. You can have multiple fileset tags within the CopyDvmstoODIPath element.
The MSTREP_Grp section lists the files that are to be imported to the master repository. List all the files using the pathelements inside path tag. They should be listed in the same order in which they must be imported to ODI.
The command to generate a deployment plan for ODI is similar to the command to generate a deployment plan for the Project Lifecycle Workbench BOM. You must add -DODIinput variable.
To generate a deployment plan for ODI, execute the following steps:
Set environment variables running the command specific to your platform.
source <AIA_HOME>/aia_instances/<instance_name>/bin/aiaenv.sh for Linux or UNIX based systems.
<AIA_HOME>/aia_instances/<instance_name>/bin/aiaenv.bat for Microsoft Windows.
Run the following command for executing Deployment Plan Generator. This can be executed from any location:
ant –f <AIA_HOME>/Infrastructure/Install/AID/AIADeploymentPlanGenerator.xml -DODIinput=<ODI BOM file name along with absolute path of the file> -DDeploymentPlan=<Destination path of the generated DeploymentPlan>
To generate a combined Deployment Plan for Project Lifecycle Workbench BOM and ODI BOM, execute the following command:
ant –f <AIA_HOME>/Infrastructure/Install/AID/AIADeploymentPlanGenerator.xml -Dinput=<BOM file name along with absolute path of the file> -DODIinput=<ODI BOM file name along with absolute path of the file> -DDeploymentPlan=<output path for the Deployment plan along with file name> -DHarvesterSettings=<output path for the runtime Harvester setting file along with file name>
Note:
While generating a combined Deployment Plan, ensure that the <PIP_Name>
attribute in the root tags of both BOMs is the same. The Deployment Plan Generator generates a single deployment plan for both the Project Lifecycle Workbench BOM and ODI BOM.
When you generate a deployment plan for the sample ODIBOM.xml file discussed in Section 9.2, "Generating the BOM for ODI" the deployment plan shown in Example 9-4 is generated.
Example 9-4 Sample Deployment Plan
<DeploymentPlan component="ODISample" version="3.0"> <Configurations> <replace token="siebel.db.username" value="${siebel.db.username}" dir="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master" /> <replace token="siebel.db.username" value="${siebel.db.username}" dir="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work" /> <replace token="brm.username" value="${brm.username}" dir="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master" /> <replace token="brm.username" value="${brm.username}" dir="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/work" /> <replace token="ebiz.db.username" value="${ebiz.db.username}" dir"${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master" /> <replace token="ebiz.db.username" value="${ebiz.db.username}" dir"${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/work" /> <UpdateOdiParams projectCode="ODISample" /> <OdiEncrypt property="siebel.db.password" masterRepositoryLoc="${AIAHome}/PIPS/Core/DIS/RetailToPSFTFin/master" workRepositoryLoc="${AIAHome}/PIPS/Core/DIS/RetailToPSFTFin/work" /> <OdiEncrypt property="ebiz.db.password" masterRepositoryLoc="${AIAHome}/PIPS/Core/DIS/RetailToPSFTFin/master" workRepositoryLoc="${AIAHome}/PIPS/Core/DIS/RetailToPSFTFin/work" /> <OdiEncrypt property="brm.password" masterRepositoryLoc="${AIAHome}/PIPS/Core/DIS/RetailToPSFTFin/master" workRepositoryLoc="${AIAHome}/PIPS/Core/DIS/RetailToPSFTFin/work" /> <copy todir="${odi.dvm.path}"> <fileset dir="${AIA_ HOME}/PIPS/Industry/Communications/DIS/Collections/setupxmls/"> <include name="COLLECTION_ACTIONNAME.xml"/> </fileset> </copy> </Configurations> <Deployments> <OdiImportObject import_mode="SYNONYM_INSERT_UPDATE" /> <path id="masterFiles" > <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONT_Global.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONT_RETL_TO_PSFT.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONT_RETL_TO_PSFT_DB2.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONN_PEOPLESOFTDS.xml"/> <pathelement location="${AIA_ HOME}/PIPS/Core/DIS/RetailToPSFTFin/master/CONN_PSFT_DB2_DS.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master /LSC_Peoplesoft.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master /LSC_PSFT_DB2_LogicalSchema.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/master /LSC_Retail.xml"/> </path> </OdiImportObject> <OdiImportObject workrepname="${pips.ODISample.odi.workrep.name}" import_ mode="SYNONYM_INSERT_UPDATE" /> <path id="workFiles" > <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /MFOL_OracleRetailToPeopleSoft.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /MFOL_ReIMToPeopleSoftAccountingEntry.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /MFOL_ReIMToPSFTInvoice.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /MFOL_RMSToPeopleSoftAccountingEntry.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /CONN_PSFT_DB2_DS.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /PROJ_ReIMToPeopleSoftInvoiceProject.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /PROJ_ReIMToPSFTAcctEntryProject.xml"/> <pathelement location="${AIA_HOME}/PIPS/Core/DIS/RetailToPSFTFin/work /PROJ_RMSToPSFTAcctEntryProject.xml"/> </path> </OdiImportObject> </Deployments>
The macros in the generated deployment plan handle the following tasks.
The OdiImportObject macrodef shown in Example 9-5 imports the contents of an export file into a repository. This macrodef internally invokes the OdiImportObject utility provided as a part of Oracle Data Integrator tools.
Example 9-5 Sample Syntax of OdiImportObject
<OdiImportObject workrepname="<work_rep_name>" import_mode="SYNONYM_INSERT_ UPDATE" > <path id="workFiles" > <pathelement location="${AIAHome]/PIPS/Core/DIS/RetailToPSFTFin/src/work/MFOL_ OracleRetailToPeopleSoft.xml"/> <pathelement location="${AIAHome]/PIPS/Core/DIS/RetailToPSFTFin/src/work/MFOL_ ReIMToPeopleSoftAccountingEntry.xml"/> </path> </OdiImportObject>
import_mode is optional. If you do not include import_mode, the value is set to SYNONYM_INSERT_UPDATE
. Include all the names to be listed using the pathelement tags. For the master repository files, workrepname
attribute should not be present.
The OdiEncrypt macrodef encrypts the passwords and replaces the password tokens in the ODI artifacts with the encrypted values. When AIA Install Driver is launched it decrypts all of the values in AIAInstallProperties.xml and loads them into memory. Using OdiEncrypt macrodef, the values in memory are encrypted and the files in master and work repository directories are updated with the new values.
Syntax of OdiEncrypt:
<OdiEncrypt property="<property name in AIAInstallProperties.xml>" masterRepositoryLoc="" workRepositoryLoc="" />
UpdateOdiParams macrodef updates the odiparams.sh(bat) script under $ODI_HOME/agent/bin with the current ODI server details. It picks up the required properties from AIAInstallProperties.xml. The password fields are encrypted using the $ODI_HOME/agent/bin/encode.sh(bat) script. The syntax of UpdateOdiParams will be as below:
<UpdateOdiParams projectCode="ODISample"/>
The replace tokens, UpdateOdiParams, ODIEncrypt and Dvm Copy tags are generated in the Configurations section. The ODIImportObject tags that are used for ODI artifacts import are generated in the Deployments section.
After the deployment plan is generated, deploy the services using commands specified in Section 8.5, "Deploying Artifacts"