This chapter describes issues associated with Oracle B2B. It includes the following topics:
The issues and workarounds listed here are those that were known at the time of the product's initial release to the public. Additional issues and workarounds may have been discovered since the initial release. To view the latest known issues associated with Oracle SOA Suite, BPM Suite, and related SOA technologies, go to the Oracle Technology Network (OTN) at: http://www.oracle.com/technetwork/middleware/docs/aiasoarelnotes-196861.html
.
This section describes general issues and workarounds. It includes the following topics:
Section 19.1.1, "Upgrading from Oracle Integration B2B 10g to Oracle B2B 11g"
Section 19.1.3, "Oracle B2B Supports Third Party JMS Providers"
Section 19.1.4, "IBM WebSphere Not Supported For Deployment"
Section 19.1.5, "Non-administrator Users Can Perform Certain Administrative Tasks"
Section 19.1.6, "replyToAppMessageId Incorrectly Set in Acknowledgement Notifications"
Section 19.1.7, "Incorrect User Information for Receipt Notification (AS2 MDN) to AQ"
Section 19.1.8, "Application Message Report Displays Incorrect Document Type"
Section 19.1.9, "Generated MDN Incorrectly Uses Name Identifier in Inbound Agreement"
Section 19.1.10, "Oracle B2B Signs MDN Using the Algorithm Set in the Agreement Delivery Channel"
Section 19.1.11, "Sending an Unknown AS2 From-Header Is Not Recognized as an Error"
Section 19.1.12, "Incorrect URL in the Wire Message for a Received Synchronous MDN"
Section 19.1.15, "XEngine Is Not Installed on the Second Node in a Clustered Environment"
Section 19.1.16, "EDI Batching Results in Incorrect Average Message Size on Metrics Page"
Section 19.1.17, "Test Page for B2BMetadataWSPort Is Not Found"
Section 19.1.19, "ebMS Negative Acknowledgments for Decryption and Signature Failures"
Section 19.1.20, "Issues When Resubmitting Messages Using the AS2 Exchange"
Section 19.1.23, "Settings for Large Payloads When Using Enqueue Scripts"
Section 19.1.24, "FTPS Connection Times Out with Implicit SSL Encryption"
Section 19.1.25, "%ACTIONNAME% Filename Format Is Not Recognized"
Section 19.1.26, "RosettaNet Message Encoded in UTF-16 Fails at the Receiver's End"
Section 19.1.27, "Save Autogenerated Agreements Before Deployment"
Section 19.1.28, "FTP Listening Channel Does Not Have Proxy Support"
Section 19.1.31, "Even with the Log Level Set to Default, Details Are Written to the Log File"
Section 19.1.32, "Using Document Definition Names with Multibyte Characters in JDeveloper"
Section 19.1.33, "Suppressing Validation Errors on Extra Elements in HL7 Messages"
Section 19.1.34, "Oracle B2B in High Availability Environments"
Section 19.1.35, "Methods for Recovering Messages in High-Stress Environments"
Section 19.1.36, "Inbound ebMS Messages Checked Irrespective of Duplicate Elimination Setting"
Section 19.1.37, "SOA Infrastructure Schema Prevents the Use of Edition-Based Redefinition"
Section 19.1.38, "Transport Callouts Are Not Available for Listening Channels"
Section 19.1.42, "Multiple Sender ID Support Required Redeployment After Addition of New ID"
Section 19.1.43, "FTP Listening Channel Does Not Support Proxy"
Section 19.1.44, "Clicking on Reports Displays Spurious Warnings in the Managed Server Console Log"
Section 19.1.45, "Duplicated GUID in EDI Batched Outbound Messages Causes All to Error"
Section 19.1.46, "CPP/CPA Conversion to B2B Metadata With BPSS Document Has Limitations"
Section 19.1.47, "B2B Metadata Service Allows Anonymous Access"
Section 19.1.48, "TPAConfigRequest Web Service Returns All TPAs Without DUNS Identifier"
Section 19.1.49, "ebMS 1.0 Does Not Support Sync Ack Request"
Section 19.1.51, "Custom Inbound Folder Support Not Available For Mail With Pop3"
Section 19.1.52, "Document Retry Not Supported With Batching"
Section 19.1.53, "Incorrect Interchange Sender/Receiver ID for x12 Caused Failure to Generate FA"
Section 19.1.57, "Obfuscated Payloads Cannot Be Retrieved Using Java Instance Message API"
Section 19.1.58, "Only Identifiers Used in the First Agreement Are Added Into the CPA Export"
Section 19.1.59, "Internal E-mail Listening Channel Not Supported"
Section 19.1.60, "JTA Timeout Must Be Set When Using b2b.maxtimeinaquiredstate"
Section 19.1.61, "B2B Data Cannot Be Purged Using SOA Purge Script"
Section 19.1.63, "Conversation ID Not Working Separately With JMS"
Section 19.1.64, "CPA Export Does Not Clean Up Older Data Before Unzip"
Section 19.1.65, "cpa import does not bring in encryption settings"
Section 19.1.66, "Policy Store, Identity Store and CSF Must Be OID Based"
Section 19.1.67, "Error ORA-01461 in E-mail Attachment Use Case"
Section 19.1.68, "Login to Oracle B2B Console Throws "Redirecting Request" Error in Firefox"
Section 19.1.70, "Async MDN Not Returned If Inbound Message Processing Error Occurs"
Section 19.1.71, "Property b2b.checkDuplicate May Cause Infinite Loop"
Section 19.1.72, "Large Payload Issue for Inbound Generic HTTP on Microsoft Windows Platforms"
Section 19.1.73, "B2B Does Not Validate the Incoming MIC in MDN"
Section 19.1.74, "Unsigned Message With Signed MDN Reports Incorrect MIC"
Section 19.1.75, "Outbound Stacked Message Does Not Attempt Wire Message Resubmit"
Section 19.1.76, "Failure Delivery on Document Retry Attempt Does Not Initialize Pending Retries"
Section 19.1.77, "DynamicIP Property Does Not Work With JMS"
Section 19.1.78, "Updating Document-level Interchange/Group ECS Requires Validation"
See the following for upgrade information:
Allow pop-ups (disable the browser pop-up blocker) to use the Oracle B2B online help.
Oracle B2B works with third party JMS providers. IBM WebSphere application server has been validated as a JMS provider for Oracle B2B.
Oracle B2B is not supported on IBM WebSphere. The B2B user interface will not be deployed on IBM WebSphere.
Although the Save button is not displayed on the Agreement page for remote partner administrators, these users can update and save agreements by editing the agreement name on non-deployed agreements, and then updating and saving the agreements. Oracle B2B does not check the user authorization in this case.
Oracle B2B offers a notification of an Acknowledgement (AS2-MDN or EDI-FA) that is sent back to a composite or AQ (IP_IN_QUEUE) if configured using the Oracle B2B interface (Administration > Configuration page). The received Acknowledgement notification appears similar to the following:
<Acknowledgment xmlns="http://integration.oracle.com/B2B/Acknowledgment" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <replyToB2BMessageId>0AB1FE0211FE933570200000120666E0</replyToB2BMessageId> <replyToAppMessageId>0AB1FE0211FE933570200000120666E0</replyToAppMessageId> <ackB2BMessageId>0AB1FE0211FE9338CB80000012066930-1</ackB2BMessageId> </Acknowledgment>
Note, however, that the replyToAppMessageId
is always incorrectly set to be the same as the replyToB2BMessageId
.
When delivering a receipt notification (AS2 MDN) to AQ, Oracle B2B incorrectly sets the user information to the document routing ID (if the outbound document has a document routing ID set) instead of b2backuser.
The application message report in the Oracle B2B interface incorrectly displays document types. Specifically, the application message report displays the following:
For receipt messages, the displayed document type is for the outbound message. If you want to collect metric data on the number of inbound application messages for a specific document type, the issue can cause queries to report incorrect data.
For FA messages, the displayed document type is the same as the FA message type.
In synchronous AS2 mode, the generated MDN uses the AS2 Identifier set in the inbound agreement. If no AS2 Identifier is defined in the agreement, then the generated MDN incorrectly uses the name identifier. The workaround is to set the expected AS2 Identifier in the inbound agreement.
In AS2, a request for a signed MDN from the recipient can specify the algorithm to use for signing. Oracle B2B, however, incorrectly signs the MDN with the algorithm set in the agreement delivery channel. This algorithm may be different from the requested algorithm.
When receiving an EDI document over an AS2 exchange, if Oracle B2B fails to identify the trading partner using the AS2 From Identifier, Oracle B2B tries to identify the partner using the EDI Interchange and Group ID. The failure to identify the partner by the AS2 Identifier is ignored.
The synchronous MDN received by the host server in response to an AS2 message sent over SSL shows an incorrect URL in the wire message. Specifically, the URL indicates the HTTPS protocol while the port information is for the HTTP listen port.
Setting an invalid EDI Interchange ID Qualifier or an invalid Function Group Identifier (not part of the default ECS Qualifier Standard Code List_105 or Function Identifier Code Standard Code List_479 respectively) is not signalled as a MSG_ERROR in the outbound case. Oracle B2B instead delivers the message to the configured endpoint without error.
When a B2B channel is configured to retry following an error (such as a transport channel being unavailable) and the message is subsequently successfully delivered, Oracle Enterprise Manager fails to adjust the corresponding error count.
In a clustered environment, the XEngine is not installed on the second node when the node is on another computer. This is because the XEngine extraction occurs only when you run the Configuration Wizard (which is not run automatically on the second node). The workaround is to perform the XEngine extraction manually and then restart the server.
When Oracle B2B batches multiple messages into a single message, the native message size for each business message is recorded as the size of all messages in the batch. This results in Oracle B2B reporting an incorrect average message size on the Metrics pages of the Oracle B2B interface.
The test page for B2BMetadataWSPort results in a "404 Not Found" error. The workaround is to change the port number in the URL for the link from the managed server port to the admin server port (7001) and try again.
In a clustered environment, do not use the B2B command-line utilities for purging data, importing data, and exporting data. Use the Oracle B2B interface for these functions.
For ebMS documents, negative acknowledgments for decryption and signature failures are sent as security severity errors. For all other negative ebMS acknowledgments, the error is set as UnknownError.
Under certain circumstances, resubmitting an asynchronous AS2 inbound wire message does not work as expected. For example, change the state of an inbound agreement to inactive. On receiving a message, a negative acknowledgment is generated and sent back. The sender sees the message state as MSG_ERROR on receipt of the negative acknowledgment. Resolve the issue on the inbound side by changing the agreement state from inactive to active. Now two scenarios for resubmitting the asynchronous message exist:
Scenario A: Resubmit the wire message at the sender's side. Because the message was already processed at the receiver's end, this results in a duplicate error message.
Scenario B: Resubmit the wire message at the receiver's end. This passes at the receiver's end and pushes back a positive acknowledgment message. However, the state of the message on the sender's side is not changed. Although scenario A can be expected, scenario B should have worked. However, because the state of the message is MSG_ERROR, the incoming positive acknowledgment is ignored. This results in inconsistency in reporting at the two ends. The inbound side passes the message to the back-end successfully, whereas the outbound side has the message in the MSG_ERROR state.
The predefined callout, XSLTCallout
, is not available in this release.
Based on the database load and the application server load, tune the transaction timeout setting in the Oracle WebLogic Server Administration Console. Select JTA from the home page and increase the default setting of 30 to a higher value.
Set the following properties in the enqueue.properties
file when enqueuing large payloads:
payload=payload_filename_with_absolute_path
eventName=LARGE_PAYLOAD=true
Because the full directory path must be provided, use the local computer for this operation.
Implicit SSL encryption is not supported in the transport layer.
The %ACTIONNAME%
filename format is not recognized when used with the File, FTP, and SFTP transport protocols.
Oracle B2B is unable to process an inbound RosettaNet message encoded as UTF-16. A document protocol identification error is returned.
Save autogenerated agreements at least once before the agreements are deployed. The agreement parameter settings for translation/validation and FA are generated in the agreement only when you save an agreement and not when it is autogenerated. Although the interface may show the default values, they are not captured in the agreement metadata and are ignored at run time; that is, the inbound EDI message may not be translated.
The Generic FTP-1.0 protocol for a listening channel does not have proxy support.
When using the b2bpurge
command-line utility, if inactive channels exist, then those listening threads are not terminated. The workaround is to repeat the b2bpurge
call two or three times until the listening threads for the inactive channels are terminated.
For an inbound agreement that uses an ebMS exchange with the Ack Mode parameter set to asynchronous, an ebMS delivery channel is required.
Normally the default log level suppresses details in the log file. However, for RosettaNet deployments, log details are not suppressed even with the default log level setting.
When working with document definition names with multibyte characters (MBCS-named document definitions) in the B2B Configuration Wizard in JDeveloper, you may see the error "Invalid UTF8 encoding" at the step where the document definitions are loading for you to select the document definition for the service. This occurs when JDeveloper is running in a non-UTF-8 environment (for example, in Windows, using Simplified Chinese Win2k3, or in a native encoding Linux OS, using zh_CN.gb18030). However, in a Linux environment with UTF-8 encoding, such as zh_CN.utf8, MBCS-named document definitions load correctly. After loading, the MBCS-named document definition becomes the name of the document XSD folder in JDeveloper.
To ensure that MBCS-named document definitions load and display correctly in the B2B Configuration Wizard, do the following:
When using JDeveloper in a Linux environment, first set the LANG
and LC_All
environment variables to a locale with the UTF-8 character set. This enables the operating system to process any characters in Unicode. Then start JDeveloper.
When using JDeveloper in a Windows environment, start JDeveloper using UTF-8 encoding with jdev -J-Dfile.encoding=utf-8
.
For HL7 messages, set HL7.AllowExtraData
to false in XERegistry.xml
to suppress validation errors on extra elements.
The XERegistry.xml
file is located in the following directory:
SOA_HOME\thirdparty\edifecs\XEngine\config
See Section 6.2.11, "Message Sequencing and MLLP Not Supported in Oracle B2B HA Environments," for more information.
Use the following solutions to recover messages that would otherwise be lost in high-stress environments involving outbound messages with multiple instances of Oracle B2B running, each with multiple threads.
Situation 1: Duplicate File Names
In situations where all message file names, TPname_timestamp
, are sent to the same directory, the timestamps include milliseconds; thus, in normal situations, all file names are unique. However, in high-stress environments, duplicate file names can occur, resulting in files being overwritten by a later file with the same name.
The solution is to append the unique MSG_ID value to file names. In the B2B interface, go to the Partners link and select a remote trading partner. Go to Channels > Transport Protocol Parameters. For channels where the Filename format parameter is applicable, add %MSG_ID% as a filename format macro. All file names will then be unique.
Situation 2: Exhausted Message Redelivery Attempts
If you see the message java.lang.RuntimeException: AppMessage is null:
msg_id
, a race condition may be indicated. A race condition occurs when a JMS event has been enqueued and dequeued for processing, but the corresponding message is not committed in the run-time repository. The B2B engine will retry the transaction, but it may fail if retry occurs immediately. If all retry attempts are exhausted, the event delivery transaction is rolled back and an exception message is sent to the configured exception queue, if an exception queue is configured.
To configure the exception queue and to resubmit exhausted redelivered messages from the exception queue to B2BEventQueue, use Oracle WebLogic Server Administration Console.
Do the following:
Create a queue and name it something like B2BEventException.
In the console, go to the settings for B2BEventQueue (Home > JMSModules > SOAJMSModule) and click the Configuration > Delivery Failure tab.
For Expiration Policy, select Redirect.
For Error Destination, select the queue you created in step 1 (for example, B2BEventException).
The messages that cannot be processed by B2B for the given redelivery count are forwarded to this error destination queue.
Move the messages from the configured error destination queue to B2BEventQueue to resubmit the messages for processing.
See the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help topic, "Manage queue messages," for how to move messages.
According to ebMS standards, Oracle B2B must check for duplicate inbound ebMS messages only if the DuplicateElimination tag is present in the ebMS message. However, currently, B2B tries to detect duplicate inbound ebMS messages irrespective of whether the DuplicateElimination tag is present or not in the ebMS message.
Edition-based redefinitions are not supported for SOA B2B in the current release.
Transport callouts are not available for listening channels.
In a multiple-node SOA server domain, the JMX framework propagates local changes to a file-based policy to each run-time environment, so that the data is refreshed based on caching policies and configuration.
In a multiple-node server environment, it is recommended that the domain policy and credential stores be centralized in an LDAP-based store. Otherwise, if they are file-based, then local changes to user privileges made in the B2B UI will not be properly propagated and can end up in error situations.
See Oracle Fusion Middleware Security Guide for more information.
In Oracle Enterprise Manager, there is no fault repair for Binding Components such as Oracle B2B. It is only available for service engines such as BPEL and Mediator.
Different EDIEL document types (DELFOR and MSCONS) having different interchange APPLICATION REFERENCE settings, when batched together within a single interchange, used the setting for APPLICATION REFERENCE field from only the first document to be batched.
To avoid this issue it is suggested that if documents have varying interchange Application References, then users should create separate batching criteria for these documents, that is do not batch them together.
The current Oracle B2B implementation to support multiple sender interchange ID requires users to redeploy the agreements after the addition of the new interchange ID. If deployment of agreements is not done, then the interchange IDs that were present at the time of the initial deployment are the only ones that are considered during validation check.
FTP listening channel does not support proxy.
Clicking on the Reports tab (defaults to Business Message Report) results in several instances of the following warning in the Managed Server Console log (from where the managed Server is started):
Could not find selected item matching value "" ...
If there are two messages with same GUID value in a set of batched outbound EDI messages, then the XEngine will error out all the messages in that batch. In earlier releases, the behavior was to error out only the duplicate message, the other messages would pass through.
The CPP/CPA cpaimport
command line utility option, when executed with -Dstandard=true
has some known limitation in converting to B2B metadata. It is not supported if CPP/CPA contains references to BPSS documents.
To work around, the following URL should not be exposed outside of a company network.
http://<server>:<port>/integration/services/b2b/B2BMetadataWSPort
In TPAConfigRequest Web service, if DUNs identifier is passed, it returns all the agreements which do not have DUNS identifier. It should get only those agreements having DUNS number in Trading Partner Agreement.
ebMS 1.0 requires a syncReply attribute under the Via element. B2B is adding a separate element called syncReply, which is not per the expectations of the 1.0 version specification for ebMS exchange. Due to the incorrect usage, the Receiving party will not understand that Sender is requesting syncAck and would send an Async Ack response.
The ebMS exchange does not support compression. ebMSoutbound:compression wire-message does not show compressed headers.
The ebMS delivery channel shows compression flag in the user interface. This flag is no longer functional for ebMS.
E-mail Channel Support for Inbound with a different folder is not supported for POP3 configuration.
Document retry feature is not supported with batching of EDI/x12.
If we receive an inbound X12 4010 850 message with the Interchange sender (or receiver ID) not matching with the configured setting in the agreement (with validation), the negative FA is not generated. The message fails as expected, however the FA does not get generated. The FA generation issue is not seen for Group level Identifier failure.
A similar case in EDIFACT has the FA generated for both Interchange and Group level failures.
Currently there is no provision to query for messages that are part of a certain sequence from the B2B user interface. The workaround is to query the database. The following is a sample query to list all messages stuck in the sequence manager table:
SELECT sm.SEQUENCE_TARGET,bm.MESSAGE_ID,bm.SENDER_NAME,bm.RECEIVER_NAME,bm.DOCTYPE_NAME,bm.DOC_PROTOCOL_VERSION FROM b2B_sequence_MANAGER sm,B2B_Business_message bm WHERE bm.MESSAGE_ID=sm.MESSAGE_ID
When channel related details are updated and deployed, use Application message resubmit for outbound messages to reprocess the message, since Wire Message resubmit of outbound messages will simply post the packed and do look at the updated metadata.
Similarly for reprocessing of inbound messages based on new deployed metadata, use Wire Message resubmit and not application message resubmit.
When we change the xpath identification expression, then a redeployment takes the new xpath expression set in the definition. However, if we remove the xpath expression and deploy, the change is not reflected and user must restart before the change works.
If obfuscation is enabled then B2B Instance Message API returns encrypted Wire payload and does not return Business message payload.
If the B2B metadata to be used in CPA export utility is an entire repository export, then there might be a scenario where the identifiers set in different agreements could have a variation. Under such conditions, it is observed that only identifiers used in the first agreement are extracted as partyId elements. If there are other identifiers in additional agreements which are part of the export, these are not added to the CPA XML.
In the Oracle B2B Console, internal e-mail listening channel can be configured using internal flag in Administration>Listening Channel>Generic Email-1.0>Channel Attributes; however, there is no support available for internal e-mail listening channel.
b2b.MaxTimeinAquiredState does not work for inbound message if JTA times out. Set the JTA timeout to provide enough time for b2b.MaxTimeinAquiredState.
B2B related data cannot be purged using a standard SOA purge script. To purge B2B related data use the B2B purge utility. See "Purging Data" in Oracle Fusion Middleware User's Guide for Oracle B2B for information about the utilities. It is recommended that this purge be done with the exact same criteria that was used for the SOA purge.
This issue applies only to the Linux 64-bit platform.
When a message with an incorrect GUID format for EDI XML is enqueued, B2B server goes down and is unable to start up again going into NOT_RESTARTABLE state.
For example, a good GUID looks like:
"{2AFCF387-AC9E-11DF-AC03-005056A618D7}"
A bad GUID looks like:
"2d313431383032353434333337333537"
Possible workarounds:
1. Correct the GUID to the expected format.
2. Do not pass any GUID at all.
1. The outbound JMS property, jca.jms.JMSProperty.INREPLYTO_MSG_ID
, does not work in ebMS if the property jca.jms.JMSProperty.MSG_TYPE
is not set to 1. This is not required when using AQ or Fabric.
2. The outbound setting of JMS property, jca.jms.JMSProperty.CONVERSATION_ID
, does not set the conversation ID in the outbound message.
Workaround:
This must be passed along with the property
jca.jms.JMSProperty.INREPLYTO_MSG_ID
Pass it in this way:
jca.jms.JMSProperty.INREPLYTO_MSG_ID=MSGID_OF_THE_REFERRED_MSG:CONVERSATION_ID
The MSGID_OF_THE_REFERRED_MSG
is the business message ID of the message to which the enqueued message is responding.
CONVERSATION_ID
is the conversation ID that is required to be set in the outbound ebMS message.
If no message is being referenced, it can be left out and just the conversation ID can be passed after the colon.
When running the CPA export utility, the B2B metadata is unzipped into the export folder before conversion of the same to CPA file. The unzip does not clean up older data in that location which causes problems in the CPA export utility. To work around this issue, clean up older data when running the CPA export utility to avoid interference.
CPA with encryption setting of a channel should be set the same in the B2B model; however, when running the CPA import utility to generate the B2B model, the CPA import utility is not bringing the same back into the B2B soa.zip
created.
Using the default XML-based store for making updates from B2B, which could be on a managed server, can cause inconsistent results leading to unpredictable errors. It is recommended that all stores (identity, policy, csf) be LDAP-based external OID stores when used with B2B.
The issue occurs in cases where AttachmentsDirectory property is not defined, and the e-mail body contains message body content and also has an attachment.
To avoid this error, define the AttachmentsDirectory property, which specifies the location where e-mail attachments are saved.
Using the Firefox web browser, if an Oracle WebLogic Server-created B2B Monitor role user which does not have an assigned trading partner in B2B tries to login to the Oracle B2B console, then that user may see an error that "Firefox has detected that the server is redirecting the request for this address in a way that will never complete. This problem can sometimes be caused by disabling or refusing to accept cookies."
To log in to B2B console after seeing this error, remove cookies in the Firefox browser using Tools>Options>Privacy>Show Cookies>Remove Cookies.
The B2B utility b2benqueue
is not supported in Oracle B2B release 11.1.1.4.0.
In the case of an inbound message processing error, B2B does not send an Async AS2 MDN (ack) back to remote trading partner.
If b2b.checkDuplicate
is set to false (default is true), then there could be a situation where B2B starts sending repeated messages to itself in a never ending loop.
The workaround is to stop the server and start it up again.
Bug 10647786, base Bug 10638480
When receiving a large payload over Generic HTTP on a Microsoft Windows environment, the payload is stored in the configured large payload folder (as set in the Configuration of B2B console). If the incoming message ID contains characters such as : < > and so on, it could cause a problem creating the payload file in the folder.
Note that when using JMS, the message ID created does contain such characters in the message ID.
Normally, an AS2 MDN should report the MIC hash calculated by the receiving end. The MIC reported in the MDN must be same as the MIC calculated when sending the outbound message. This validation in necessary to confirm that there was no message tampering in between.
B2B does not validate the MIC and hence will accept non-matching MIC values without errors.
Normally, upon receiving an unsigned message with a request for signed MDN, the receiving party is supported to calculate the MIC and report the same in the MDN under the field RECEIVED-CONTENT-MIC. The MIC is verified by the sending to ensure that there was no message tampering.
Actual Behavior: On receiving the unsigned message, the MIC calculated and reported back to the sender does not seem to be correct.
When running messages under the document sequencing mode, any error for a message will block subsequent messages from delivery until the message with the error is cleared. To clear this error (if it was a delivery failure due to an unavailable endpoint) ideally a wire message resubmit should work. However, the wire message resubmit does not work for outbound stacked messages in sequence.
Normally, if there is delivery failure on a document retry attempt, the failure should be handled by Channel retry; however, the failure in a document retry attempt is not handled by the remaining channel retries nor by the remaining document retries.
The following line should not be in the B2B documentation:
"Cases involving no channel retry, Document retry will be triggered after Document retry interval."
The property jca.jms.JMSProperty.DynamicIP
does not work.
The workaround is to use the use actionName
parameter to set DynamicIP.
The EDI Interchange and Group ECS files can be uploaded in two places:
1) When creating new Document Protocol Version from the links Administration>Documents in the B2B console.
2) These ECS files can be overridden at the Trading Partner level by going to Partners>Documents in the B2B console and selecting the checkbox for Override Version Param.
If you upload new Interchange/Group ECS files, as in step(1), the Trading Partner level ECS files are removed and dangling references are created in the MDS repository. This error is not detected until runtime.
If you make any such changes, you must to go to all Trading Partner configurations, uncheck Override Version Param, and then check it again. This will fix the dangling ECS file references.
This section describes configuration issues and workarounds. It includes the following topics:
Section 19.2.1, "Functional Ack Internal Properties Setting Ignored for HL7"
Section 19.2.3, "Unable To Set Ack Requested Field for Interchange"
Section 19.2.4, "Overriding Defaults in a Host Document Not Carried to the Remote Trading Partner"
Section 19.2.5, ""Query Sent to an Unactivated UnitOfWork" Exception"
Section 19.2.6, "Limitation of b2b.addcorrelatedfainfoinexceptionxml Property"
Section 19.2.7, "Enable Auto Search Feature Does Not Function"
Section 19.2.8, "Use the ACTION_NAME Parameter to Pass JMS Interop Parameters"
For HL7, setting the Functional Ack internal property (FAInternalProperty) to false using the Administration > Configuration page in the Oracle B2B interface causes Oracle B2B to nevertheless use the payload header FA internal properties instead of the design-time parameters.
When the FAInternalProperty is set to true and there are different payload and design-time parameter values, you may see an error in the Ack message. Therefore, it is recommended that you do not set the FAInternalProperty to true for HL7.
Although the metadata for a remote trading partner stores separate information for the sender and the receiver for the same document definition, you cannot specify these differences using the Oracle B2B interface.
The workaround is to create a new document definition and use the two definitions to specify the parameters for the sender and receiver separately.
The Oracle B2B interface does not offer the ability to set the Ack Requested field for Interchange.
When creating a host document, including specifying the version, type, and definition, Oracle B2B assigns default values to certain fields that can be overridden by the user. If you override one or more nonmandatory fields by making them blank and then add the definition to the remote trading partner, the default values that you intentionally left blank reappear for the remote trading partner.
To resolve this issue, manually make the nonmandatory fields blank again for the remote trading partner.
When using any document protocol, the following exception appears in the seller's soa.log file:
oracle.toplink.exceptions.QueryException Exception Description: Query sent to an unactivated UnitOfWork.
The workaround is to increase the JTA timeout from 30 to a higher value using Oracle WebLogic Server Administration Console.
When enabled, the property b2b.addCorrelatedFAInfoInExceptionXML
sets exception message with detail of the Correlated FA message that indicated error for the outbound EDI document. This additional information is passed only to the AQ exception message and not to the Fabric exception message.
In the Oracle B2B interface, the Enable Auto Search parameter (on the Administration > Configuration page) does not function in this release.
Several parameters are used to communicate to/from B2B using JMS. Currently the following parameters are not directly available for JMS so you must use ACTION_NAME to pass the parameters.
FILENAME (Fabric (In Memory) parameter - b2b.filename)
CONTENTTYPE (Fabric (In Memory) parameter - b2b.contentType)
GROUPING (Fabric (In Memory) parameter - b2b.toTradingPartnerGroup)
TARGET (Fabric (In Memory) parameter - b2b.sequencingTarget)
CONNMODE (Fabric (In Memory) parameter - b2b.connMode)
CUSTOMHEADER (Fabric (In Memory) parameter - b2b.customHeader)
DYNAMICIP (Fabric (In Memory) parameter - b2b.toDynamicIP)
CONVERSATIONIDSEPERATOR (Fabric (In Memory) parameter - b2b.conversationIdSeperator)
In the B2B console, saving a trading partner with a large number of indentifiers and agreements can take a very long time.
This section describes documentation errata. It includes the following topics:
Section 19.3.3, "Default Value for the b2b.r1ps1 Property Is True"
Section 19.3.4, "B2B Configuration Wizard Tooltip in JDeveloper Incorrectly Refers to OC4J"
Section 19.3.5, "Outbound File/FTP/SFTP Changes to Default File Name Format"
Section 19.3.6, "New Section: Monitoring Oracle B2B Faults and Rejected Messages"
Section 19.3.7, "FA for Batched EDIEL Documents With Some Errors Indicates Accepted"
Section 19.3.8, "New Property b2b.addCorrelatedFAInfoInExceptionXML"
Section 19.3.9, "Additional Fabric Application Interface Parameter Details"
Section 19.3.10, "Use b2b.hl7docidentification To Extract Document Information"
Section 19.3.11, "Additional Information About Translation Web Service Request Attribute @type"
Section 19.3.12, "Transport Protocol Parameter Timestamp Format Specification"
Section 19.3.13, "Name Identifier Removed at ebMS Run Time; Use b2b.ebmsname=true Property"
Section 19.3.14, "CPP/CPA Import and Export Performance Optimization"
Section 19.3.17, "Oracle B2B Document Editor MapBuilder Component Not Supported"
Section 19.3.21, "Do Not Purge Instance Metadata When Messages Are Being Processed"
Section 19.3.22, "Some Listening Channel Details Are Not Relevant for the Selected Protocol"
Section 19.3.24, "Enabling Multibyte Support for EDIFACT and HL7 Documents"
Section 19.3.25, "Tablespace Configuration Recommendation for Production Environments"
Section 19.3.26, "Updates to Trading Partner Configuration Documentation"
Section 19.3.27, "Updates to Scheduling Trading Partner Downtime Documentation"
Section 19.3.28, "Updates to Document Sequencing Configuration Documentation"
Section 19.3.29, "Updates to Command-line Tools Documentation"
Section 19.3.30, "Updates to Enqueue and Dequeue Utilities Documentation"
The use of the TRADACOMS protocol is a developer preview feature for 11.1.1.4.0. To use TRADACOMS you must create the following identifiers through B2BConsole in Administration>Types tab:
TRADACOMS Name
TRADACOMS Code
See Oracle Fusion Middleware User's Guide for Oracle B2B for more complete information than what is available from the Help link in Oracle B2B. In particular, the guide includes descriptions of the Active Document Types fields and Active Trading Partners fields (Table 17-1) and the Summary fields (Table 17-2) that are not found in the online help.
In Figure 30-3, "Configuring B2B Attributes," in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle BPM Suite, the value displayed for the b2b.r1ps1 property in the Element_1 node is incorrect. The default value for this property is true, not false.
The descriptive text (tooltip) that pops up when you move the cursor over the Test B2B button on the Application Server Connection page of the B2B Configuration Wizard in Oracle JDeveloper incorrectly refers to the SOA OC4J HTTP port. Clicking this button tests the B2B server connection.
The outbound File/FTP/SFTP channel has the file name format changed in 11gR1 PS2 as follows,
ToParty_YearMonthDay_Hr_Min_Sec_millisec_<Threadhashvalue>_<VMID>.dat
For example,
GlobalChips_850_4010_2009FEB23_03_22_07_321_238_245 .dat
Threadhashvalue - executing threads value.
VMID - virtual machines unique identifier.
Note: the original format is ToParty_<timestamp>.dat
.
The Oracle Enterprise Manager Fusion Middleware Control Recent Faults area lists the faults, including details such as the error message, time of the fault, and the associated composite instance ID. Faults can be logged on the incoming messages processed by a service binding component, or on the outgoing messages processed by a reference binding component.
Note that while all errors will appear in the Oracle B2B console, only a subset of faults will appear in Oracle Enterprise Manager Fusion Middleware Control. This subset includes all inbound messages containing an error after trading partner identification in Oracle B2B.
See Chapter 4, "Monitoring the SOA Infrastructure,"and Chapter 38, "Monitoring Service and Reference Binding Components," in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle BPM Suite for more information.
Note the following:
1) Oracle B2B faults and rejected messages can be monitored from the composite home or domain home page.
2) Oracle B2B error messages can be seen in the Error Message column, and you can use the error link to see the error details and Oracle B2B message payload (if authorized).
3) Recovery details indicates that these faults are not recoverable from Oracle Enterprise Manager, however you can see the error details and payload (if authorized) to identify the problem. And in the Oracle B2B console, you can resubmit these rejected messages if necessary.
4) Composite instance IDs are not are shown for Oracle B2B faults (Unavailable), because in these cases no SOA composite instance was created.
5) Click on Logs to see the correlated Oracle B2B log messages.
In EDIEL, because the UCM segment is not used in the CONTRL messages, the error for individual messages (received as part of a complete batched inbound message) do not get reported back. The interchange level acknowledgment will indicate status as 7, which is the accepted status message.
If the property b2b.addCorrelatedFAInfoInExceptionXML
is set to true
, then Oracle B2B will add the Business Message ID of the Functional Ack message which holds error information for the outbound EDI message.
Without this information, because the error contains only information of the outbound message that went to error state, the user is unable to quickly correlate the outbound message to the Functional Ack message.
In the Oracle Fusion Middleware User's Guide for Oracle B2B, Appendix C "Back-End Applications Interface," the following B2B Fabric application interface parameter details are to be added:
In Oracle Fusion Middleware 10g, Oracle B2B utilizes ACTION_NAME
in IP_MESSAGE_TYPE
to provide some special and dynamic features for the back end application to communicate with Oracle B2B. In Oracle Fusion Middleware 11g, Oracle B2B users can also use normalized message properties to achieve the same functionality as described in Table 19-1.
Table 19-1 Oracle B2B 10g IP_MESSAGE_TYPE Mappings to Oracle Fusion Middleware 11g SCA/Fabric Normalized Message Properties
Feature | Description | ACTION_NAME (IP_MESSAGE_TYPE) | SCA/Fabric | Protocol |
---|---|---|---|---|
Dynamic IP |
Value of IP address to be dynamically overridden. |
DYNAMICIP:<IP Address> example: DYNAMICIP:GlobalChips:10.177.255.212:12345 |
b2b.toDynamicIP example: GlobalChips:10.177.255.212:12345 |
HL7/MLLP |
Dynamic EMail |
Email address to be dynamically overridden. |
DynamicEmail:<email address> example: DynamicEmail:admin@oracle.com |
b2b.toDynamicEmail example: admin@oracle.com |
Generic Email |
Email Subject |
Email subject to be dynamically overridden. |
EmailSubject:<subject> example: EmailSubject:PurchaseOrder |
b2b.toEmailSubject example: PurchaseOrder |
Generic Email |
File Name |
File Name of the message. This is used typically for File name Preserve. |
filename:<file name> example: filename:salesorder.xml |
b2b.fileName example: salesorder.xml |
AS2 |
Content Type |
Content Type of the message. |
contentType:<content type> example: contentType:text/xml |
b2b.contentType example: text/xml |
AS2 |
Broadcast |
Group Name of the trading partner for which the message to be broadcast. |
Grouping:<group name> example: Grouping:InventoryRequest |
b2b.toTradingPartnerGroup example: InventoryRequest |
- |
Sequencing |
sequenceTarget associated with the message. |
TARGET:<target> example: TARGET:PatientId123 |
b2b.sequencingTarget example: PatientId123 |
HL7/MLLP |
Large Payload |
LARGE_PAYLOAD |
payload field in NM |
All protocols |
|
Action |
EBMS Action name associated with the message. |
ACTION:<Action name> example: ACTION:ebMSRequest |
b2b.action example: ebMSRequest |
EBMS Generic File FTP SFTP |
Service |
EBMS Service associated with the message. |
SERVICE:<Service name> example: SERVICE:FileTransfer |
b2b.ebms.Service example: FileTransfer |
EBMS |
Service Type |
EBMS Service Type associated with the message. |
SERVICETYPE:<Service Type> example: SERVICETYPE:String |
b2b.ebms.ServiceType example: String |
EBMS |
From Role |
EBMS From Role associated with the message. |
FROMROLE:<From Role> example: FROMROLE:Buyer |
b2b.ebms.FromRole example: Buyer |
EBMS |
To Role |
EBMS To Role associated with the message. |
TOROLE:<To Role> example: TOROLE:Seller |
b2b.ebms.ToRole example: Seller |
EBMS |
Overriding ConnectionMode |
Connection Mode associated with the message. |
CONNMODE:<ConnectionMode> example: CONNMODE:Permanent |
b2b.connMode example: Permanent |
MLLP |
Custom Header |
CUSTOM HEADER associated with the message. |
CUSTOM_HEADER:<Value> example: CUSTOM_HEADER: SequenceId |
b2b.customHeader example: SequenceId |
MLLP |
If you enqueue an HL7 document without specifying a document type name and revision, it should be able to extract that information from the HL7 payload. To retrieve the document type name and version if it is not specified in the out queue by the application, set the following property in Oracle Enterprise Manager Fusion Middleware Console.
b2b.HL7DocIdentification=true
The following information belongs in Table 19-4 "Translation Web Service Request" in Oracle Fusion Middleware User's Guide for Oracle B2B.
This attribute is applicable for both from
and to
. The value expected for from
and to
are the name of the Trading Partner. If you want to use different identifiers instead of Name
you can supply a value against attribute @type
.
The following example holds the name of the trading partner:
<from>Acme</from>
The following example holds the DUNS ID of the trading partner. Note that because the example uses DUNS ID, it is mentioned explicitly against type
. (This example applies also applies to the to
element.)
<from type="DUNS">11111111</from>
The following information belongs in Oracle Fusion Middleware User's Guide for Oracle B2B, Table 5-3 "Transport Protocol Parameters," in the Filename Format
row.
For outbound and inbound processing using generic exchange, the generated file name contains a time stamp of the default format (that is, YYYYMMMdd_HH_mm_ss_SSS
).
In 11gR1 PS2, Filename Format provides the ability to provide a different timestamp format in the Transport Protocol Parameter: Filename Format, by entering the desired time stamp format in between square brackets ([]).
For example:
%FROM_PARTY%_%TIMESTAMP[YYYYMMMdd_HH_mm_ss_SSS]%.dat
would generate a file name like this:
Acme_2010MAR20_12_34_231.dat
In PS2, the name identifier that is always present in an ebMS agreement is not sent as part of PartyId
at runtime. You must add an ebMS Identifier for every ebMS agreement using the property b2b.ebMSName=true
. This property can be set using the configmbeanutil
utility.
The following information belongs in sections 18.9 "CPP/CPA Import" and 18.10 "CPP/CPA Export" in Oracle Fusion Middleware User's Guide for Oracle B2B.
In 11gR1 PS2, the Oracle B2B command line utility for CPP/CPA import and export, a new command line argument was added to optimize performance. The new property is
-Dstandard=true
When CPP/CPA import is performed using -Dstandard=true
, then CPP/CPA export must be performed with -Dstandard=true
.
For example:
ant -f ant-b2b-util.xml b2bcpaimport -Dpropfile="<property-file>" -Dstandard=true ant -f ant-b2b-util.xml b2bcpaexport -Dpropfile="<property-file>" -Dstandard=true
If CPP/CPA import is performed using the -Dstandard=true
flag, then for runtime to utilize this you must set b2b.useCPAid=true
.
Outbound enqueue example:
eventName=ACTION:ebmsaction1;SERVICE:ebmsservice;SERVICETYPE:String;CPAID:myc
paid12343;
Similarly, for the inbound Trading Partner side, set b2b.useCPAid=true
if CPP/CPA import is performed using -Dstandard=true
.
The CPA export/import utility will not support standard=false
option in the command line utility.
When validating an agreement, Oracle B2B validates the saved data. Oracle B2B does not validate any unsaved changes that you make to an agreement.
http://www.oracle.com/technology/sample_code/products/b2b/index.html
The MapBuilder component of Oracle B2B Document Editor is neither certified nor supported.
The list of MIME types in the documentation for the Additional MIME Types configuration property in Table 16-1 is incorrect. The correct list for version 11.1.1.3.0 is application/xml : application/octet-stream : application/EDIFACT : application/EDI-X12 : application/jpg : application/gzip : application/x-gzip : application/pkcs7-signature
.
Note the following:
If an exception occurs during an outbound batch, the batch is not cleared from the repository. This is true even if a trigger has been fired. In this case, you must manually delete the scheduled batch entry using the Administration > Manage Batch page in the Oracle B2B interface.
If you disable a single time invocation batch schedule, any messages set in WAIT_BATCH mode remain in this mode if the schedule is not re-enabled before the expiry time. Furthermore, a new batch schedule created for the same document will not process these messages. The workaround is to resend the message using the resubmit application message option.
After deleting a user using Oracle WebLogic Server Administration Console, the user continues to appear in the Oracle B2B interface for approximately five minutes. This is because the user information remains cached in the managed server (Oracle B2B) for a user-configurable period of time. Performing certain operations, such as provisioning this user, can generate an error.
The workaround is to wait for longer than five minutes after deleting a user using Oracle WebLogic Server Administration Console.
Alternatively, you can specify the following system property in the setDomain.sh
file to disable the cache:
-Dweblogic.security.identityAssertionTTL=-1
Do not purge instance metadata (using the Purge Instance Metadata button on the Administration > Purge tab) when messages are being processed. Doing so can result in messages in progress being lost. Instead, use the b2bpurge
command-line utility, which accepts a date range and message state as arguments. When using the b2bpurge
command, remove messages in the Completed state only (unless you have a specific reason for doing otherwise).
On the Listening Channel tab, some parameter fields that are displayed in the Channel Details area based on your protocol selection are not relevant to that protocol. Entering a value for these parameters has no effect. Table 19-2 lists the parameter fields that are not relevant.
Table 19-2 Fields That Display but Are Not Relevant for the Selected Protocol
If you select this protocol... | Then you can ignore these parameter fields... |
---|---|
AS1-1.0 |
Subject, Send as attachment, Ack Mode, Response Mode, Retry Count, Retry Interval, all fields on the Security tab |
Generic File-1.0 |
Retry Count, Retry Interval |
Generic AQ-1.0 |
Retry Count, Retry Interval |
Generic FTP-1.0 |
Use Proxy, Retry Count, Retry Interval |
Generic SFTP-1.0 |
Retry Count, Retry Interval |
Generic JMS-1.0 |
Retry Count, Retry Interval |
Generic Email-1.0 |
Subject, Send as attachment, Retry Count, Retry Interval |
If you select multiple agreements to export (from Administration > Import/Export), and any of those agreement names are in a multibyte character language, then in the export ZIP file, which contains a separate ZIP file for each agreement, the ZIP file names for the agreement names with the multibyte characters are garbled. The ZIP files with the garbled names are corrupted and cannot be successfully imported. However, a single agreement name (or repository name) in a multibyte character language is exported correctly.
For documents using the XEngine, such as EDIFACT and HL7 documents, when you have a payload with multibyte characters that are not in the EDIFACT and HL7 document character set registry, you may see the error, "A data element contains characters not listed in the allowed character set."
To avoid this error, create a custom character set (CS) file in Oracle B2B Document Editor called user.cs
:
In Oracle B2B Document Editor, click Tools > Character Set Registry.
In the Character Set Registry window, select the character set you want to override.
For example, you may want to override EDIFACT UNOB CS or HL7 CS.
Click the Duplicate icon.
In the Duplicate Character Set Properties window, accept the defaults and add the specific multibyte characters at the end of the Charset blank; then click OK.
With the duplicated file still selected, click the Export icon.
Name the file user.cs
and save it.
Copy user.cs
to
ORACLE_HOME/soa/thirdparty/edifecs/Common
Now documents such as EDIFACT and HL7 will use the user.cs
file instead of the default CS file to verify the payload file.
Increase the default tablespace configuration in production environments to prevent error conditions that can occur when processing a large number of messages.
In Table 5-3 "Transport Protocol Parameters," the following Filename format
property values are supported in addition to those listed: %CONVERSATION_ID%
, %INREPLYTO_MSG_ID%
.
The following is an addition to the new chapter on scheduling trading partner downtime in the Oracle Fusion Middleware User's Guide for Oracle B2B.
The dispatcher is used to dispatch messages that are stacked after the trading partner downtime. Once the trading partner is available to receive messages, B2B sends the messages from the application along with the stacked messages.
There is a chance that stacked messages:
a. Affect the outbound message flow from an application.
b. Swamp the trading partner with the stacked messages that are scheduled during downtime.
To prevent these issues, you can set a dispatch interval, which is the delay in the dispatcher after every dispatch, so that application messages have a higher priority without swamping the trading partner with stacked messages.
Guidelines for Setting the Dispatch Interval
For a delay of 1 second, the dispatcher sends 1 message per second. Depending on the number of messages per second, the dispatcher interval should be set for production usage. It is also required to consider memory, CPU usage, load, and so on, in arriving at the optimal setting.
The configuration property is set in Oracle Enterprise Manager Fusion Middleware Console as
b2b.OutboundDispatchInterval = milliseconds
In section 15.5 "Configuring Document Sequencing," note the following updates:
There are two options available to enable document sequencing for an AQ or JMS Trading Partner-facing listening channel.
The Trading Partner can send messages with sequence target if inbound message sequencing is desired at the receiving end.
The host Trading Partner can enable the sequencing option in the AQ or JMS Trading Partner-facing listening channel to sequence inbound messages. In this case, by default, B2B picks the queue name as sequence target.
The following are additions to the B2B Command-Line Tools documentation
In step 1 of the procedure the example is updated:
set ORACLE_HOME=C:\oracle\wls_home set ANT_HOME=%ORACLE_HOME%\modules\org.apache.ant_1.7.1 set JAVA_HOME=%ORACLE_HOME%\jdk160_21
For any wrong key the command line user interface throws an error message. This is applicable to all the command line utilities in B2B.
For example, if the following command is entered:
ant -f ant-b2b-util.xml b2bschedule -Dfromdate="18/08/2010 1:50PM" -Dtodate="18/08/2010 1:55 PM" -Dschedulename="Load" -Dtp=GlobalChips -Dchannelname=GlobalChips_File_Endpoint -Dexten=true
The error thrown is:
" Could not complete the operation due to invalid option - exten allowed options [mode, tp, schedulename, fromdate, todate, channelname, extend] "
For any key=<no value>, the command line interface throws the error
"Invalid key: channelname value: null"
Agreement ID/CPAID-based activating/deactivating agreement.
This option will activate/deactivate the agreements for the CPAID provided as
-Dagreementid argument
For example:
ant -f ant-b2b-util.xml b2bmanagedeploy -Dagreementid=Acme_Oracle_CPA -Dstate=active/inactive
It is also possible to activate/deactivate based on the agreement name by using the option in this example:
ant -f ant-b2b-util.xml b2bmanagedeploy -Dagreement=Acme_Oracle_CPA -Dstate=inactive/active
This feature lets you check the availability of agreement for a given agreement ID or CPAID and trading partner. Based on the result, you can further import the agreement with option overwrite=True|False
.
For example:
ant –f ant-b2b-util.xml b2bcheckcpaid –Dargs="my_file.zip"
In Table 19-2 "Options for b2bpurge utility," note the following updates:
Option | Description | Domain | Required |
---|---|---|---|
cascadedelete | DT mode. Deletes agreement/ tp and its dependencies. | true/false | If tp option is given without agreementid, then cascadedelete must be true. |
agreementid | DT mode. agreementid option must used with tp option. All the agreements exist for given tp and agreementid get purged. if cascadedelete=true and its dependencies like supported document definition and document type not referred in any other agreement then, supported document definition entry in trading partner and document type also be purged. After all these operation, if given tp does not have at least one supported document definition then tp also be purged. | - | No |
fromdate | (no change) | Date format:
dd/MM/yyyy hh:mm AM/PM |
No |
todate | (no change) | Date format:
dd/MM/yyyy hh:mm AM/PM |
No |
The tp
and agreementid
options are available to use with the b2bdeploy
utility.
It is possible to import a CPA (Collaboration Profile Agreement) using the command-line with following options:
Metadata such as Action, service, service type, From Role, To Role, and CPAID, which are the key attributes that define the uniqueness for any ebMS document.
Use of overwrite
flag in B2B import:
As part of the optimizing the run-time performance, which includes validation of ebMS headers against CPA, Oracle B2B creates an index out of CPA and the same is stored in Document Type parameters.
Only with overwrite=true
can this CPA Index can be rebuilt. For any change in the core ebMS metadata it is always required to use overwrite=true
.
B) All other metadata, such as Trading Partner Identifiers, delivery channel information with a different name, and so on, is appended with overwrite=false
.
Effect of overwrite
flag on various B2B artifacts
1. Party Information/Trading Partner Identifiers
For Trading Partner Identifiers, the effect of overwrite = true/false
is the same, that is, the Identifier is appended to the trading partner in either case.
Assume the trading partner has a DUNS Identifier with value 1234, for a change in CPA with DUNS value 4567, it is appended to the trading partner and only 4567 is used as part of the Agreement. Even while CPA exports DUNS value of 4567 is used.
It is possible for the user to switch between DUNS 4567 and 1234 without performing a CPA import.
2. Certificate does not have any impact on the overwrite
flag as it is stored outside B2B repository in JKS file.
3. Delivery channel details are overwritten only with overwrite=true
. When overwrite=false
the delivery channel with the same name is ignored but all the other delivery channels are appended.
All the attributes of the delivery channel such as duplicate elimination, Certificate Alias, security credentials, and so on, follow the same pattern as in delivery channel.
4. When overwrite=true
, any attribute of any granularity in the core metadata is replaced.
The property oracle.tip.b2b.ebms.BPSSDocument
is no longer available.
Additional common properties include:
Back End Application to Oracle B2B (AQ/JMS/FILE/FTP/SFTP):
oracle.tip.b2b.ebms.internalDeliveryChannel.protocol=JMS
JMS:
oracle.tip.b2b.ebms.internalDeliveryChannel.JMS.destinationname=jms/b2b/B2B_IN_QUEUE oracle.tip.b2b.ebms.internalDeliveryChannel.JMS.connectionfactory=jms/b2b/B2BQueueConnectionFactory oracle.tip.b2b.ebms.internalDeliveryChannel.JMS.pollinginterval=5 oracle.tip.b2b.ebms.internalDeliveryChannel.JMS.msgType=TEXT oracle.tip.b2b.ebms.KeystoreLocation=/tmp/JKS/Acme.jks oracle.tip.b2b.ebms.KeystorePassword=password oracle.tip.b2b.ebms.validate=/tmp/b2b/CPA/cpp-cpa-2_0.xsd
Additional option for use with b2bcpaimport
and b2bcpaexport
:
Option: standard
Description: Way to import the cpa in an optimized mode
Value: true (Note: Value as false
is not supported)
Required: Yes
Additional options for b2bresubmit
utility:
Option | Description | Value | Required |
---|---|---|---|
mode | Simulates the command without execution by either giving the rows affected or the count.
To list and show the count of messages for the selected criteria. It does not delete the messages, but just lists the information |
list,count | No |
exclresubmit | Excludes the already resubmitted message | Default: false | No |
exclstate | Excludes a specific message state | - | No |
exclmsgid | Excludes specific messageId | - | No |
maxcount | Limits the maximum number of messages to be resubmitted for the selected criteria.
To offer resubmission in batch. |
- | No |
oldcpaid | Resumbmission for a changed cpaID case. This is achieved by providing both the cpa ids oldcpaid and newcpaid | - | No |
The following properties are also available when the JMS enqueue utility, oracle.tip.b2b.data.JMSEnqueue
(in addition to Table 22-3 JMS Enqueue Properties):
Table 19-3 Additional JMS Enqueue Properties
Name | Description |
---|---|
fromIdType |
Identifier type to be used. This is required only if the value provided against "from" is other than the identifier type "Name". |
toIdType |
Identifier type to be used. This is required only if the value provided against "to" is other than the identifier type "Name". |
The property b2b.certificateValidation
has this update to the documentation:
Certificates are used for signing and encryption of the ebMS messages and must be valid, active certificates. This feature validates the certificates during runtime and raises an exception in case of expiry. To disable the certificate validation, set b2b.certificateValidation=false
. The default value is true
.
The properties in Table 19-4 can be set in Oracle Enterprise Manager Fusion Middleware Control Console in addition to those listed in Appendix B "Setting B2B Configuration Properties in Fusion Middleware Control" in Oracle Fusion Middleware User's Guide for Oracle B2B.
Table 19-4 Additional Oracle B2B Properties in Oracle Enterprise Manager Fusion Middleware Control
Property | Description |
---|---|
b2b.TPAbasedebMSIdValidateAndOverride |
This property enables: 1. Trading partner Identifier sent from Middleware or Trading partner is validated against the configured Identifiers in the Agreement for both inbound and outbound flow. 2. Override the Identifiers configured in the Agreement using the Identifier sent from back-end application or from trading partner. The default value is If b2b.TPAbasedebMSIdValidateAndOverride= true: 1. Agreement is configured with Identifier ID1, ID2 and inbound message has Identifier ID2, then ID2 would be sent to the back-end application. Note: this applies to outbound messages. 2. Agreement is configured with Identifier ID1, ID2 and inbound message has Identifier ID3, even though the trading partner is configured with Identifier ID3, there is a failure in Agreement Identification. 3. For any outbound message without a specific Identifier type, Name identifier is used in ebMS message header. If b2b.TPAbasedebMSIdValidateAndOverride= false: The Identification is done against the configured Identifier in the profile, and the configured Identifier in the Agreement is used in ebMS headers. |
b2b.ebMSHeaderValidation |
This property enables the ebMS header validation against CPA for both inbound and outbound. The ebMS headers which are validated are Action, service, serviceType, FromRole, ToRole. As a pre-requisite, set: b2b.useCPAid= true. By default, ebMS header validation is performed during message exchange. Set the property b2b.ebMSHeaderValidation=false to disable the validation. A negative Acknowledgement is sent for any failure in the validation during inbound scenario. Similarly, for an outbound scenario, an exception is raised with the state of the message changed to ERROR. |
To enable FTP sequencing you must configure an FTP listening channel with following parameters:
Sequencing
TimeStamp Format
TimeStamp Offset
TimeStamp Source
Note that selecting only the Sequencing flag does not work.
If sequencing is enabled, also note that:
The order in which files are copied to the folder is the order in which it they are processed.
If a large payload is copied, the trading partner has to wait until their large payload copy is complete before sending the next file, as sequencing works based on the last-modified-timestamp on the file.
Note that SFTP transport does not have TimeStamp Format, TimeStamp Offset, and TimeStamp Source parameters; therefore, the above does not apply to SFTP.
1. The correct names of the parameters are as following:
jca.jms.JMSProperty.FILENAME
jca.jms.JMSProperty.CONTENTTYPE
jca.jms.JMSProperty.GROUPING
jca.jms.JMSProperty.TARGET
jca.jms.JMSProperty.CONNMODE
jca.jms.JMSProperty.CUSTOM_HEADER
jca.jms.JMSProperty.DynamicIP
2. jca.jms.JMSProperty.FILENAME is only applicable for AS2.
3. jca.jms.JMSProperty.CONNMODE is only applicable to Generic MLLP.