Question on handling multiple CPA's


I would like to know if multiple CPA's can be handled between the same 2 partners. For example, I have created partner A and B using details provided in CPA1 with CPAID1, would it be correct if I receive a CPA2 with CPAID2 for the same partners A and B? How is this to be handled then? Should it over-write existing configuration for partners A and B or add on to the existing configuration?
Also what would be then the CPAID present in the EBMS message header for any Ebxml document being sent out?

Also how do we determine the uniqueness of a CPAID?


Another reason for A and B to have multiple CPAs is if they have multiple services.  Yes, it is possible to have single CPA for multiple services,  but often these flows are agreed at different times (and you don't want to have a new CPA just because you want to add some CanSend/CanReceives), and if you have many different types of messages, the CPA can become very big and hard to manage.


Yes this is possible.  In fact a common use case is when the CPA include informatio about an X.509 certificate.  If a certificate expires say on 31s of December,  and if the partner  has a new certificate that is valid from 15th of December,  then there would be an interval during which both CPAs are active, so parners have a time to switch. 

General recommendations (not hard rules) for when there are two CPAs that only differ in CPAID:

  • use the older CPA for responses to messages sent using that older CPA (e.g. an OrderResponse to an Order)
  • use the newer one for new conversations.

The API of the message handler should allow a business application to select which CPA to use. Some products have a nice default to use the newer one unless the API invocation specified the older one to use. Focus Areas: BPEL | DITA | ebXML | IDtrust | OpenDocument | SAML | UBL | UDDI
OASIS sites: OASIS | Cover Pages | | AMQP | CGM Open | eGov | Emergency | IDtrust | LegalXML | Open CSA | OSLC | WS-I