B2B Agreement Life-Cycle Management, Part 1 - Best Practices for High Volume CPA Import Operations with ebXML
By Shub Lahiri, A-Team on Dec 15, 2012
This is Part 1 of the B2B Life-Cycle Management Series. The series will
discuss the best practices around various aspects of the complete B2B agreement
life cycle. This post will discuss the first part which is related to the import of data artifacts into the repository. The specific use case discussed here is for CPAs related to ebXML data but the concepts are fairly generic and the process can be extended to any document or protocol.
B2B 11g supports ebXML messaging protocol, where multiple CPAs can be imported via command-line utilities.
This note highlights one aspect of the best practices for import of CPA, when large numbers of CPAs in the excess of several hundreds are required to be maintained within the B2B repository.
The import of CPA usually is a 2-step process, namely creating a soa.zip file using b2bcpaimport utility based on a CPA properties file and then using b2bimport to import the b2b repository. The commands are provided below:
- ant -f ant-b2b-util.xml b2bcpaimport -Dpropfile="<Path to cpp_cpa.properties>" -Dstandard=true
- ant -f ant-b2b-util.xml b2bimport -Dlocalfile=true -Dexportfile="<Path to soa.zip>" -Doverwrite=true
Usually the first command completes fairly quickly regardless of the number of CPAs in the repository. However, as the number of trading partners within the repository goes up, the time to complete the second command could go up to ~30 secs per operation. So, this could add up to a significant amount, if there is a need to import hundreds of CPA in a production system within a limited downtime, maintenance window.
In situations, where there is a large number of entries to be imported, it is best to setup a staging environment and go through the import operation of each individual CPA in an empty repository. Since, this will be done in an empty repository, the time taken for completion should be reasonable.
After all the partner profiles have been imported, a full repository export can be taken to capture the metadata for all the entries in one file.
If this single file with all the partner entries is imported in a loaded repository, the total time taken for import of all the CPAs should see a dramatic reduction.
Let us take a look at the numbers to see the benefit of this approach. With a pre-loaded repository of ~400 partners, the individual import time for each entry takes ~30 secs. So, if we had to import another 100 partners, the individual entries will take ~50 minutes (100 times ~30 secs). On the other hand, if we prepare the repository export file of the same 100 partners from a staging environment earlier, the import takes about ~5 mins.
The total processing time for the loading of metadata, specially in a production environment, can thus be shortened by almost a factor of 10.
The following diagram summarizes the entire approach and process.
The material posted here has been compiled with the help from B2B Engineering and Product Management teams.