F Setting B2B Configuration Properties in Fusion Middleware Control

This appendix describes how to use Oracle Enterprise Manager Fusion Middleware Control to set B2B configuration properties for properties that are not set on the Configuration tab of the Oracle B2B interface. See Configuring B2B System Parameters for more information. It also discusses how to set B2B properties by using the configmbeanutil utility.

The appendix includes the following sections:

F.1 Properties to Set in Fusion Middleware Control

The section lists the properties that can be set in Fusion Middleware control.

The properties in Table F-1 can be set in Oracle Enterprise Manager Fusion Middleware Control. See Configuring Oracle B2B Server Properties for how to set the properties.

Note:

Restarting the SOA Server is required for changes to B2B properties.

Table F-1 Oracle B2B Properties in Oracle Enterprise Manager Fusion Middleware Control

Property Description
b2b.addebMSHeaders

Used to add the incoming ebMS message details of ACTION, SERVICE, SERVICE TYPE, CPAID, FROMROLE, and TOROLE to the ACTION_NAME header in AQ.

By default only the ACTION is passed as part of ACTION_NAME.

b2b.attachments.dir

To specify an attachments directory location, set this property.

If enabled, this property allows users to specify a directory into which all of the attachments will be written.

Changes to this property require a server restart for the new value to take effect.

b2b.certificatevalidation

This property is used to enable or disable the validation of the certificate received on ebMS. For example, an expired certificate normally throws an error; however, if the property is set to false, it allows the certificate without throwing validation errors. The default value is true, indicating that by default, Oracle B2B validates the certificate.

b2b.checkDuplicate

To check for duplicate messages, set this property to true, which is the default.

If this property is set to false, a check for a duplicate of the incoming business message is not performed.

By default, Oracle B2B checks for duplicate messages based on the business message ID of the incoming message.

This property needs to be set to false to enable processing of duplicate RosettaNet messages.

All document protocols can use this feature. Note that this checking is based on business message ID only. An example on how to reproduce this is using the file name format in this PDF document, on page 6:

http://www.oracle.com/technetwork/middleware/b2b-integrations/learnmore/tnb2b11g002-326857.pdf

Inbound to Oracle B2B (Request): You are sending a messages

Format:

%TO_PARTY%_

%DOCTYPE_NAME%_

%DOCTYPE_REVISION%_

%MSG_TYPE%_

%MSG_ID%

Filename example: SalesInc_850_4010_1_1234.dat

The business message ID is 1234. The first file consumed is fine. If the second file with the same name is used, B2B will mark the message state with MSG_ERROR if b2b.checkDuplicate is set to true; this is for inbound messages only. The property checking is not applicable to inbound wire message resubmitted from the UI or the command line utility.

b2b.rejectDuplicateMessage

When this property is set to true, duplicate messages with same message ID are not allowed in a batch. If such messages are sent, Oracle B2B changes the message ID of messages and sets the messages to ERROR state.

Also, in Reports page, the following error is reported:

“Duplicate message with same message id found in a batch. Changing original message id <org_msg_id> to new message id <org_msg_id+timestamp) and rejecting the message."

The default value of this property is false.

b2b.useJMSDataSourceCache

Set this property to determine whether JMS objects or SOA datasource information is cached.

The value of the property is either true or false. By default, the value is true. If the property is set to true, then Oracle B2B looks up for the JMS objects or SOA datasource in the cache. If there is a cache hit, the cached value is returned, otherwise the lookup value is returned. This property may be used for incremental performance improvement.

b2b.batchMonitorSleepInterval

Defaults to 1 minute. After this interval B2B performs the check for the count and size of batch. This relates to when there are a large number of messages that you want to batch together.

You can control the Sleep Interval, which is specified in minutes. The

change of the interval occurs on expiry of the current running interval. Note that although adding or updating the interval using the property b2b.batchMonitorSleepInterval in Fusion Middleware Control has immediate effect, deleting the same will take effect only after restart. Set this back to 1 min in Fusion Middleware Control if you want to have the batch interval run with the default of 1 minute.

b2b.batchMonitorStragglerBatchName

Retrieves the pending messages for this particular batch if the time for pending message exceeds the time specified in the value in b2b.batchMonitorStragglerTimeLag.

This value can be defined as comma-separated batch_1,batch_2,batch_3,...<time_for_batch_1>,<time_for_batch_2>,<time_for_batch_3>... (which is defined in minute unit.)

If the b2b.batchMonitorStragglerBatchName is defined with mix of specific batch name and #ALL_BATCHES#, then the specified batch will use the time defined for the batch and other batches not defined will use time specified for #ALL_BATCHES#.

For example, if b2b.batchMonitorStragglerBatchName=b1,b2,b3 and b2b.batchMonitorStragglerTimeLag= 5,10,15, this indicates if the count is not reached for batch name b1 and the first pending message created (time lag) has exceeded 5 minutes, then the outbound batch will occur.

Note that the important word is "first". If the count, file size and time lag all satisfy the criteria set in B2B Batching criteria when the monitoring thread wakes up, B2B will recompute as if the messages are flowing in one by one. This way, B2B is able to ensure that the generated batch file does not exceed any of the criteria. For example, when the monitoring thread wakes, B2B found there are 11000 messages, sum of xml file size is 11 MB, the time lag has exceeded the b2b.batchMonitorStragglerTimeLag, and the Batching criteria for count is set to 10000 and the xml file size is 10 MB; B2B will generate an outbound batch of NNN number messages that would not exceed 10000 messages or 10 MB xml size.

Another example: if file size and time lag both satisfy the criteria set in B2B Batching criteria, then an outbound batch will be generated base on the file size. In this case, if the file size setting is 10 MB and there are 15 files in the pending message table and each file is 0.99 MB. B2B will batch out the first 11 files since it takes 11 files to excess the 10 MB threshold (xml file size).

If there are 25 files of 0.99 MB each, then two batches will be created of 11 files each and the remaining batch will consist of 3 files. The batch out native file size will vary.

b2b.batchMonitorStragglerTimeLag

This property works in tandem with the property b2b.batchMonitorStragglerBatchName.

Refer to the details of b2b.batchMonitorStragglerBatchName for further information on its usage.

b2b.additionalDebugInfo

The value is LogDir=<directory>, where the directory is a location to write the value of the b2b.batchMonitorStragglerBatchName and b2b.batchMonitorStragglerTimeLag in the files. The BatchStragglerKeySet_<unique_guid>.dat file contains the value of the b2b.batchMonitorStragglerBatchName and b2b.batchMonitorStragglerTimeLag. The BatchStragglerKeySet_<unique_guid>.dat file contains the key name of the b2b.batchMonitorStragglerBatchName during the batch processing time.

These files are created only if you specify a value for this property. To disable logging, remove this property.

Note:

In case of an incorrect directory name or a file creation failed in the given directory, then no file is written. As long as the this property is defined, the information is still logged in the server diagnostic as information.

b2b.useUnwindLoop

Set this property to optimize status updates in the case of outbound batching for a large number of messages. If the channels used in the agreement have Ack Mode set, this property works in conjunction with Ack Mode set to None. If channels do not have Ack Mode set, by default the Ack Mode is set to None. The default value for b2b.useUnwindLoop is false. When set to true, in the case of outbound batching, the status update executions are improved, where the database operations are minimized, thereby enhancing performance.

Note:

This property affects performance improvement for outbound batching for a large number of messages for the X12 functional outbound Ack (997/999) only. The performance of other protocols is not affected.

b2b.deploy.validation

To turn off validation during deployment, set this property to false.

This is useful when deploying a large number of agreements where you are certain that the data is valid.

b2b.useSequenceControlNum

Set this property to determine whether the EDI control number will be generated by using Oracle sequence mechanism. If undefined or set to false, Oracle B2B uses the b2b_control_number table to generate new control number. If b2b.useSequenceControlNum is set as true, then Oracle B2B generates sequence name with the following sequence name pattern:

<Control><Protocol>_<Remote_TP>_<Host_TP>

where <Control> is one of the following:

  • T = Sequence for Transaction Level control number

  • I = Sequence for Interchange Level control number

  • G = Sequence for Group Level control number

and <Protocol> is one of the following:

  • X = X12 Message Protocol

  • E = EDIFACT Message Protocol

The sequence name format is as follows:

  • <Remote_TP> is the name of the remote trading partner

  • <Host_TP> is the name of the host trading partner

Note:

This property works for the generation of the control number of EDI documents X12 and EDIFACT. Do not set this for HL7.

Since the sequence name allows 30 characters only, the <Control><Protocol>_<Remote_TP>_<Host_TP> format is truncated to 30 characters if the length exceeds 30 characters.

If the trading partner is deleted, all sequences related to the deleted trading partner are also removed from Oracle sequence table.

b2b.ebMS.ProtMsgId.prependHost

When this property is set to true, then Protocol Message ID and Protocol Collaboration ID values are prefixed with the Host Trading Partner name. By default, this property is set to false.

For example:

When b2b.ebMS.ProtMsgId.prependHost is false, the values will be:

Protocol Message Id: @0A261B4D13F33830161000006AB9B3F8

Protocol Collaboration Id: @0A261B4D13F33830161000006AB9B3F8

When b2b.ebMS.ProtMsgId.prependHost is true, the values will be:

Protocol Message Id: INDIGO@0A261B4D13F33830161000006AB9B3F8

Protocol Collaboration Id: INDIGO@0A261B4D13F33830161000006AB9B3F8

wherein INDIGO is the Host Trading Partner name.

b2b.mdsCache.minutesToLive

Set this property to 0 to specify that the MDS cache would be stored in memory forever. By default, the value for this property is 5, which means that the cache would be removed from memory after 5 minutes, if the objects are not used. You can set the value of the property to be 0 or any other non-zero value.

b2b.docPluginList

Using this property, document plugins are loaded as per the order specified in this property. For example,

b2b.docPluginList=Custom,EDI_X12,EDI_EDIFACT,HL7,RosettaNet

ensures that document plugins are loaded as per the specified order. If no value is provided for this property, then all document plugins from the system (protocol.xml) are loaded.

b2b.edi.enablePreprocess

Set this property to true to pre-process data to remove the trailing CRLF (new line characters) and/or unwanted CRLF that maybe present in file.

The default value is false.

Changes to this property require a server restart for the new value to take effect.

oracle.tip.b2b.edi.binaryDocType

For outbound message processing, this property is used by Oracle B2B to handle binary data present in BIN segment for EDI payloads.

For inbound message processing, This property needs to be used along with Oracle B2B Server property b2b.binaryTransferRequired=true for Oracle B2B to handle binary data present in BIN segment for EDI payloads.

Setting this property ensures that Oracle B2B processes BIN segment data correctly by treating its content as binary. Otherwise the data would get corrupted.

You can specify a comma-separated list of document types so that this behavior applies to multiple document types:oracle.tip.b2b.edi.binaryDocType=<DOC_TYPE1>,<DOC_TYPE2>

where <DOC_TYPE1> and <DOC_TYPE2> are actual Document Types such as 841 and 842.

oracle.tip.b2b.addCorrelatedFAInfoInExceptionXML

When set to true, the Exception message raised on the receipt of a negative FA contains the B2B Message ID of the incoming FA, which indicated error for the outbound EDI message.

b2b.edi.identifyToTP

To identify the toTP from the TP information present in the incoming message, use this property.

This property is used for inbound message processing. If it is set to true, the toTP is identified from the TP information present in the incoming message. The default value is false.

b2b.edi.ignoreValidation

To turn off the EDI envelope validation and ignore interchange validation errors for EDI messages, you can set comma separated envelope header with this property.

For example:

b2b.edi.ignoreValidation=InterchangeSenderID, InterchangeReceiverID

or use the value ALL to turn off the complete envelope header validation.

This property value can be overridden at the Document Protocol Version level under the Miscellaneous tab in the Oracle B2B console.

Note: If you add or update this flag, a server restart is not needed. However, if you remove the flag, the server must be restarted for the change to take effect.

b2b.edi.correlateInterchangeOnly

When an inbound Control Message is received, the original message state is set based on Control status of the message. Use this property to set original inbound Control message to correct status.

If Oracle B2B cannot find the CONTROL status, by default, it sets the status of original message to COMPLETE.

If you want to set the original message to correct status, then you need to set the following property to true: b2b.edi.correlateInterchangeOnly=true

b2b.encoding

This property can be used to specify encoding other than default UTF-8.

b2b.errorsCumulativeReported

To indicate whether reported errors are cumulative or not, set this property to true or false.

Set this property to true (the default) to report errors in a cumulative fashion.

If set to false, the error text and error description fields are not concatenated with the description starting on a new line.

This property is most useful with EDI batching error messages.

b2b.fa.inbound.validation

b2b.fa.outbound.validation

Use these properties to control inbound and outbound FA validation.

To turn off the outbound FA validation, set the b2b.fa.outbound.validation property to false. The default value is true.

To turn off the inbound FA validation, set the b2b.fa.inbound.validation property to false. The default value is true.

At the agreement level:

  • When b2b.fa.inbound.validation is set to true, then validation takes place. In this case, the value selected at agreement level takes effect.

  • When b2b.fa.inbound.validation is set to false, then validation does not take place. In this case, the FA validation at the global level is turned off. As a result, the value selected at the agreement level does not take effect.

This property value can be overridden at the Agreement level in the Oracle B2B console.

b2b.rejectUnknownFA

Set this property to true, to treat the incoming FA message that failed to correlate as an unknown message. The default value is false.

b2b.transportCache

Set this property to true to enable the transport cache to cache the transport message objects between the transport layer and the engine.

b2b.FACorrelatedByInterchangeId

To correlate inbound and outbound FAs correctly if the same control numbers are used between the same trading partners, set this property to true.

By default Oracle B2B does not correlate inbound and outbound FAs correctly if the same control numbers are used between the same trading partners. Set this property to true so that Oracle B2B will correlate based on Control Number + (Interchange Sender ID + Interchange Receiver ID) for both Inbound and Outbound messages.

b2b.FailedMessagesDirectory

To change the location of the failed application message that is written to the file system, when b2b.jmsRedeliveryLimit is reached, set this property. The location can be changed from the default to another location by setting this property to another folder.

b2b.HAInstance

Set this property to true to ensure only one node in a High Availability (HA) cluster starts a polling thread for the configured File, FTP, or Email channels. Without this property being set, each node starts its own polling thread and could pick the same file multiple times.

The default value of this property is false.

A restart of all the nodes in the cluster is required to ensure each node works in the expected HA Mode.

b2b.IDENTIFY_TP_BY_HOSTNAME

In cases of TCP-based exchange protocols, such as MLLP and Generic TCP, where the host name is masked, to enable Oracle B2B to determine the host name of each message, set this boolean property to true.

If set to true, then Oracle B2B retrieves the host name from the IP address of the host.

If set to false, then Oracle B2B does not lookup the host name from the IP address.

The default value for this property is true.

b2b.ignoreTPWithAsterisk

In cases where the B2B UI is configured with a generic identifier as a client IP address in the partner profile and the partner has provided a range of IP addresses in the form of a mask (e.g. 120.12.23.*) from which they can send a document, then B2B cannot recognize the sender and fails with an Agreement Not Found Error. Set this boolean property to true to enable B2B to find the agreement.

The default value for this property is false.

b2b.fabricRetryCount

This specifies how many times retry of a failed message to fabric is attempted. For fabric, retry count is a global property and for non-fabric it is a channel retry count.

b2b.fabricRetryInterval

This specifies the number of seconds between attempts to retry delivery of a message to fabric.

b2b.TPBasedSeqTarget

To enable a channel name or a trading partner name as a sequence target, set this property to true.

If a message has a sequence target as a part of the action name, then priority is be given to that message property. However, if there is no message level sequence target, and the property (b2b.TPBasedSeqTarget) is enabled, then the trading partner name is considered as the sequence target.

To enable sequencing in case of:

  • TCP: If sequencing is enabled (in trading partner facing channel) and TARGET is not specified, use the trading partner name as the TARGET to query the cache. This happens at the entry point in 10.

  • Non-TCP protocols: Because in non-TCP protocols, the channel is not bidirectional, use the TO-PARTY name as TARGET.

  • Nonfabric: Use the sequencing flag in the channel of outbound listening internal channel.

b2b.showEncryptedData

For an encrypted RosettaNet message being exchanged, you need to set this property to true for viewing Packed Message contents.

b2b.threads.LogStatusInterval

b2b.threads.LogStatusLevel

Use this feature to log the number of active inbound and outbound threads from the available pool of threads during a periodic interval. Oracle B2B publishes event thread information such as name, last active status at periodic intervals to DMS metrics and diagnostic logs. By default, thread information are published at a 30 minute interval and the log level is DEBUG.

Users can change the interval and log level using these properties.

Possible values for b2b.threads.LogStatusLevel are DEBUG, INFORMATION, WARNING, and ERROR.

For the feature to work:

  • When b2b.threads.LogStatusLevel = DEBUG, the server log level needs to be set to TRACE.

    When b2b.threads.LogStatusLevel = INFORMATION, then the server log level needs to be set to NOTIFICATION.

Sample Output:

<Mar 3, 2011 11:37:01 PM PST> <Error> <oracle.soa.b2b.engine> <BEA-000000>

<B2B Thread Name :

weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@f6e5fd8 - Direction :

Default - Status : ACTIVE>

b2b.addAllDocParams

Set this property to false to stop adding unwanted or unset parameters in the import zip.

b2b.useDefaultQuery

Set this property to false to make the value of Receive Time Stamp blank and Send Time Stamp to be automatically filled.

The default value is true.

b2b.refreshCache

Set this property to true indicate if there must be a retry by refreshing the cache in case of a failure (only for EBMS.) The property is required only in a cluster environment when the cache synchronization is not set up.

The default value is false.

b2b.commitTxnOnMsgDelivery

Set this property to true to indicate whether the database transaction message should be (intermediate) committed while delivering the message to the back end. If this parameter is not set, the message is still delivered to the back end, but the database records are not committed.

b2b.hl7.ignoreValidation

To turn off the hl7 envelope validation, you can set comma separated envelope header with this property.

For example:

b2b.hl7.ignoreValidation = MessageReceivingFacility, MessageSendingApp

or set it to ALL to turn off the complete envelope header validation.

This property value can be overridden at the Document Protocol Version level under the Miscellaneous tab in the Oracle B2B console.

b2b.HL7DocIdentification

Typically Oracle B2B identifies agreements or endpoint documents based on the document type and document type revision supplied from the back end application. If the back end application is not able to provide the document type and document type revision information, the same can be retrieved from the outbound XML payload.

Set the b2b.HL7DocIdentification to true to retrieve the information.

b2b.inboundThreadCount

b2b.outboundThreadCount

b2b.defaultThreadCount

b2b.inboundSleepTime

b2b.outboundSleepTime

b2b.defaultSleepTime

Set these properties to set the number of threads and thread sleep time to improve message processing.

The recommended values for b2b.inboundThreadCount and b2b.outboundThreadCount depend on your system. For a 2 GB computer, a setting of 3 to 5 is recommended.

If Oracle B2B is running in a single thread mode (default), then a blocked outbound HTTP message could cause failure in Oracle B2B to process the subsequent message. The HTTP delivery has a default timeout of 60 seconds, and the timeout would push the message to error and unblock the processing. To avoid delays in processing, it is recommended that you increase the thread count property b2b.outboundThreadCount to 3 or 4 threads.

If b2b.inboundThreadCount and b2b.outboundThreadCount are set, then b2b.defaultThreadCount sets the number of threads to process events other than inbound messages or outbound messages. For example, events such as auto retry, manual resubmit, trading partner agreement deployment, batch messages together, and send batch out events are processed by b2b.defaultThreadCount threads. If b2b.inboundThreadCount and b2b.outboundThreadCount are not set, then b2b.defaultThreadCount threads will process all the events including inbound messages or outbound messages.

The b2b.inboundSleepTime, b2b.outboundSleepTime, and b2b.defaultSleepTime properties put a thread to sleep after message processing. A setting between 10 and 1000 (milliseconds) is recommended.

b2b.jmsRedeliveryLimit

You can change the retry limit for reading messages from the JMS queue by setting this property, causing Oracle B2B to retry reading the message for the number of times specified there. The default retry limit is 5.

When the limit count expires, the message and the header contents are written into the file system (the default location is the /tmp folder). Oracle B2B also sends an exception message to the JMS - B2B_IN_QUEUE, reporting the error and providing the location of the saved message.

You can specify the location for failed messages by setting b2b.FailedMessagesDirectory.

b2b.listening.channel.restart.wait

Sometimes Oracle B2B creates multiple file monitor threads for a listening channel. Setting a longer interval using this property helps to avoid the race condition of threads during initialization.

b2b.MaxTimeinAquiredState

Set this property to avoid an issue in which the autostack handler does not resume processing of messages after restart.

The time unit value of b2b.MaxTimeinAquiredState property is in minutes and 30 is the default value.

b2b.mdsCache cache_size

To set the Metadata Service (MDS) instance cache size, set this property.

A ratio of 5:1 is recommended for the xmx-to-mdsCache values. For example, if the xmx size is 1024, maintain mdsCache at 200 MB.

b2b.OutboundDispatchInterval

To control the delay between every cycle of dispatch, use this property. Set this property to specify the amount of time to wait (in milliseconds) between dispatching of sequenced messages.

If enabled, the property will control the delay between every cycle of dispatch. The property can be used along with Message Sequencing and Trading Partner Downtime Schedule features.

When auto stack handler is used, then Oracle B2B retries the outbound failed messages in sequence. after the endpoint is reached for delivery, all messages in the sequence will be eligible for delivery and this may cause an overload of message delivery at the endpoint. To reduce the load, this property can be used to set the interval between dispatch of messages in milliseconds.

b2b.outboundOneErrorAllError

To specify how errors are flagged, set this parameter to true or false.

For outbound messages, b2b.outboundOneErrorAllError can be set to true or false. The default is false. If the property is set to true, then for outbound messages, even with a single message in error, all outbound batch messages are set to the error state. None of the batched messages are sent to the trading partner.

When using the b2b.outboundOneErrorAllError property, inbound messages behave as if b2b.outboundOneErrorAllError is set to false; that is, if an error occurs during an inbound message process, then only that message is flagged with the error and other messages are passed. There is no option to flag every message as failed.

b2b.payloadObfuscation

To turn on payload obfuscation, set this property to true.

For more information, see Payload Obfuscation.

b2b.rowLockingForCorrelation

To enable row level locking, set this property to true.

When Oracle B2B receives an EDI FA message and an AS2 MDN message (Acknowledgment message) simultaneously, a race condition can occur which causes the outbound EDI message to remain in the MSG_WAIT_FA state (although FA was successfully processed).

Use this row level locking parameter so that the original EDI message can be accessed sequentially when the correlated FA and Acknowledgment messages are processed concurrently. It avoids a racing condition when Oracle B2B updates the original message.

b2b.setDynamicNameSpace

To use EDI ecs and xsd files from Oracle B2B 10g, set this property to true.

When using EDI ecs and xsd files in Oracle B2B 11g that were used in Oracle B2B 10g, the XEngine may generate dynamic namespace for the translated xml. For example,

xmlns="NS_31CA8D0F33324F95A0BF15D85539C27E20060518215520"

To turn off dynamic namespace generation for inbound EDI messages, set this property to false.

b2b.SyncAppDelivery

When using callouts, to enable delivery of messages to the back-end message queue, set this property to true. To disable the message delivery, set this property to false. By default, this property is disabled (set to false). This property is case-sensitive.

b2b.setisLargePayloadPropertyForSmallMsg

Oracle B2B sets the LARGE_PAYLOAD header property to true only if the payload is large (as per configured size). In case the payload is small, the LARGE_PAYLOAD header property is not set. If you want to set the LARGE_PAYLOAD property for small payloads also, set the b2b.setisLargePayloadPropertyForSmallMsg property to true.

By default, the value of the property is false.

b2b.listening_channels.continue_reconnect

By default, if the resource server, such as SFTP or JMS is down, Oracle B2B tries to reconnect only a specified number of times. However, if Oracle B2B cannot reconnect within the specified retries, it simply stops the particular listening channel.

When this property is set to true, Oracle B2B makes continuous attempts to reconnect to resource server in downtime.

In case of SFTP, the resource server is an SFTP server, and in case of JMS, the resource server is an JMS server.

By default, the value of the property is false.

b2b.reuseHttpConnections

Set the value of this property to true to reuse HTTP connections. By default, the value of this property is false. When the default value is used, HTTP connections are opened and closed repeatedly when accessing the same URL consecutively.

However, this property depends on other property values to take effect. If you call HTTPClient.HTTPConnection.setCurrentProxy when reusing an HTTP connection, side effect changes (such as reusing HTTP connections, closing the socket) are invoked only if the proxy settings have actually changed for the obtained HTTP connection instance. If invoking setCurrentProxy applies values currently set in the HTTP connection instance, the setCurrentProxy call is ignored.

So you need to compare HTTPClient.HTTPConnection.getProxyHost and HTTPConnection.getProxyPort values against proposed new values, and call HTTPConnection.setCurrentProxy only if the values are different.

b2b.deliverPingPongToBackend

In ebMS, you can check the server state by using a set of messages called 'Ping and Pong'. Set the b2b.deliverPingPongToBackend property to true for enabling Oracle B2B to pass these messages to the back end applications on receipt of such messages.

By default, the value of the property is false, which forces Oracle B2B to consume these Ping and Pong messages on receipt.

b2b.trackInboundCtlNum

By default, the value of this property is true, which controls the Oracle B2B behavior of saving the control numbers of inbound EDI messages in the database (the control numbers of inbound EDI message from a given partner will be inserted, or updated if the partner entry is already present). However, if set to false, then Oracle B2B does not attempt to insert the control numbers for inbound messages.

b2b.SingleTransactionAtInbound

In the case of an inbound MLLP HA, if the server crashes after wire message has been committed to the database but before the event gets enqueued to Event Queue, it is perpetually stuck in the Sequence Manager table and is not processed. This blocks the inbound message flow in the sequencing case.

Set the b2b.SingleTransactionAtInbound to true only in the case of MLLP HA to enable the JMS and database commit to take place in a single transaction. It is suitable only for the MLLP case where only one inbound message is received at a time.

The default value of the property is false.

b2b.xEngineThreadCount

This property affects processing of EDI/X12/HL7 document types.

It controls the number of threads which can invoke XEngine processing functions in parallel. The default value of the parameter is 6.

On Solaris platform environments this property should be set to a value of the following:

inboundThreadCount + outboundThreadCount.

On linux environments the default (6) values. This defaults are tuned to perform optimally on linux environments.

b2b.retainmsgid

When this value is set to true, @msgid is retained for the specific message ID, protocol message ID and collaboration ID during an Application Message resubmit.

If this value is set to false, @msgid is retained for the message ID, but a new ID is generated for the protocol message ID and the collaboration ID.

The default value for this property is false.

b2b.TPACache

Use this property to enable or disable Trading Partner Agreement (TPA) layer processing cache. By default, this property is not enabled.

Limitation of the property: The TPA cache relies on agreement deployments to refresh the change in values. So, when this parameter is enabled, hot uptake of channel parameter changes does not work. It would require the agreements to be deployed. You need to restart the server for applying any changes to this parameter.

The valid value for this parameter is local.

b2b.optimizeStorage

Use this property to determine whether the storage of payloads would be optimized (shared) across Business, Wire, and Application instances, if applicable. Setting this property accordingly reduces the I/O load at the database layer due to persistence of payloads. You need to restart the server for applying any changes to this parameter.

The valid values for the parameter are true and false (default).

b2b.DispatcherCache

Use this property to enable or disable the Dispatcher processing cache. By default, this property is not enabled. You need to restart the server for applying any changes to this parameter.

The valid value for this parameter is local.

b2b.enableDeliveryHelper

Use this property to spawn a separate thread for dispatching messages to the back-end application. Enable this property to improve the performance of the inbound dispatcher. You need to restart the server for applying any changes to this parameter.

The valid values for this property are true or false.

b2b.sequencingFetchSize

Use this property to define the batch size for sequencing fetches. The Inbound or outbound Dispatcher attempt to pick <batchsize> number of messages for a given sequence target in a single fetch. The default value for this property is 20. You need to restart the server for applying any changes to this parameter.

The valid value for this parameter is Integer.

b2b.fromHeaderName

If the HTTP From message header contains a value that can be mapped to an IP Address, then Oracle B2B converts the value to an IP Address. If the remote Trading Partner identifiers, specifically, Generic Identifier, does not contain that IP Address, then Oracle B2B fails to identify that the message came from which Trading Partner.

Use this property to specify a value for the header name so that when a message arrives, Oracle B2B does an exact match (no IP Address conversion) of the value extracted from the From message header with the Generic Identifier specified for the remote Trading Partner.

The value of this property is case-sensitive. So, the header must match exactly with the value that is provided in the message.

The value for this property takes the following format:

<header name>#<header name2>...

The value can contain multiple header names separated by #, such as sender_id#receiver_id.

b2b.auditFileLocationb2b.maxNumAuditFile

Use b2b.auditFileLocation to retrieve the EM URL for Composite Flow Trace . The property takes a string value.

Example:

b2b.auditFileLocation=/tmp/audit.log

Use b2b.maxNumAuditFile to specify the maximum number of audit logs. The default value for this property is 10.

Format: audit-<managed server name>.log.<n>o where n=0,1,2,3

Example:

b2b.maxNumAuditFile= 10

The audit file is stored in the CSV format.

b2b.TreatRNIFasRNDocument

Use this property to identify a RosettaNet document. If you set this property to true and the document is received through RNExchangePlugin, then the document is identified successfully.

If you set this property to false, then the document is identified based on the XPath expression and its value (just like a custom document.)

b2b.mdnAliasesAndAlgorithm

If an inbound AS2 message has requested the sign MDN, the outbound MDN needs to be signed. However, B2B does not have information about the private key that is needed to sign the MDN nor does it have the algorithm used. This is solved by using this property to handle signing of negative MDN for AS2 messages. The property takes its value in the following format:

B2BHost=<default alias to sign>:<default algorithm>;<TP1>=<alias1>:<alg1>;...<TPn>=<aliasn>:<algn>

Example:

B2BHost=b2bs0:md5;ACME=stg_2010:md5;GLOBALCHIPS=stage2014:sha1

This property only affects the AS2 Exchange protocol. The managed server does not need to be re-started for the property to take effect.

b2b.fromTPXPath

Use this property to include XPath from where the Trading Partner name has to be extracted from the payload.

When a message comes, Oracle B2B uses the XPath specified in the EnterPrise Management console to extract the Trading Partner name from the payload, and then Oracle B2B compares that value to the value specified as a Generic Identifier to determine which Trading Partner has sent the message.

Note: Do not include /text() at the end of the XPath, otherwise Oracle B2B will not find the path.

b2b.correlateResponse

Use this property to toggle correlation in Oracle B2B.

The default value for this property is true.

If you set this property to false, Oracle B2B does not to correlate the outbound enqueued message with an existing message having the ID that is specified in the replyToMsgID field.

b2b.protMsgIdAsBmId

Set this property to true enable Oracle B2B to send the protocol MsgID to the back end application.

The default value for this property is false.

b2b.sqldumpTimeRange

Set this property to get the time range for SQL dumps. This property is used during the Diagnostic Framework implementation. The time is specified in minutes.

b2b.flowTraceEMURL

When Oracle B2B is hosted in one domain and the Oracle SOA composite (Oracle B2B adapter with the JMS option) is deployed in a different domain (Oracle Enterprise Manager Fusion Middleware Control in a different domain), Oracle B2B needs a mechanism to provide the link to the domain where the composite is deployed.

Use this property to provide the domain URL details of the Oracle SOA composite for tracking the instance message flow based on the ECID.

The format for setting the value of this property is:

http://<host>:<port>#<domain_name>#<domain_type>

You can also specify this URL details at the Delivery Channel level by using the Oracle B2B console.

This URL is available as a Flow Trace link for individual messages in the Oracle B2B Application Message reports.

While creating the Flow Trace link, Oracle B2B first checks if the value is provided at the channel level. If the value is present, it is used to construct the URL link. If the value is not present, Oracle B2B checks whether b2b.flowTraceEMURL is set in Oracle Enterprise Manager Fusion Middleware Control. If it is set, then the property value is used to construct the URL link. If both values are not set, by default, Oracle B2B assumes that the composite is available in the local domain and constructs the URL link accordingly.

See Configuring Oracle B2B Logging Mode in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

b2b.b2bReportsURL

Set this property (along with b2b.flowTraceEMURL) on the domain where Oracle Enterprise Manager Fusion Middleware Control is hosted to construct the Flow Trace URL link in the reports of the Oracle B2B console.

The format for setting the value of this property is:

http://<host>:<port>

Note: Currently, Oracle SOA Suite supports tracking of multiple SOA domains and one Oracle B2B instance. This is because this property is set at the global level.

b2b.rowLockingForCorrelation

Set this property to true to change the message state of an MLLP 2.0 outbound message from MSG_WAIT_TRANSMIT to MSG_WAIT_ACK. However, enabling this property has a negative impact on performance, because locking rows results in performance loss.

If this property is not enabled, then the message state does not display any change on transmitting the message. However, the message state changes on receiving the commit ack directly.

b2b.TPAbasedebMSIdValidateAndOverride

This property enables:

  • Trading partner Identifier sent from Middleware or Trading partner is validated against the configured Identifiers in the Agreement for both inbound and outbound flow.

  • Override the Identifiers configured in the Agreement using the Identifier sent from back-end application or from trading partner.

The default value is false.

If b2b.TPAbasedebMSIdValidateAndOverride= true:

  • 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.

  • 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.

  • 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.resubmitOutboundAck

Set this property to true to enable resubmission of OUTBOUND ACK.

The default value is false.

b2b.genNegFAForDupInterchangeControl

By default, this is set to false, which means that a neg TA1 will be generated if B2B detects a duplicate control number. If it is set to true, a neg 997 will be generated with AK5 error code instead.

b2b.defaultCustomDocTypeVersion

When the payload comes in as inbound over AS2 delivery channel, B2B tries to identify the document protocol which is not possible because there is no identifier in the payload to look at. The payload can be any flat file or binary file payload. Set this to binary to define the protocol.

b2b.defaultCustomDocType

When the payload comes in as inbound over AS2 delivery channel, B2B tries to identify the document protocol which is not possible because there is no identifier in the payload to look at. The payload can be any flat file or binary file payload. Set this to generic to define the protocol.

b2b.httpsTrustStore

If this property is set to true, then B2B uses the default .jks file to send for the https delivery channel.

Coherence system properties

coherence.b2bDispatcherCache.size

coherence.b2bDispatcherCache.expiry

coherence.b2bTPACache.size

coherence.b2bTPACache.expiry

These system properties help you to tune the cache size and expiry durations.

The following are the default values of the system properties:

coherence.b2bDispatcherCache.size - 20000

coherence.b2bDispatcherCache.expiry - 3 minutes

coherence.b2bTPACache.size - 20000

coherence.b2bTPACache.expiry - 30 minutes

F.2 Using the configmbeanutil Utility

You can also use the configmbeanutil utility to set properties.

To use the configmbeanutil utility:

  1. Set the MW_HOME environment variable to point to the Fusion Middleware installation directory. For example,
    setenv MW_HOME /scratch/$user/fmwhome
    

    Note:

    To access the Fusion Middleware directory, you must provide an mbean property file (mbeanutil.properties) that contains host, port, user, and password information. For example,

    host=myfmw.com
    port=7001
    user=weblogic
    password=mypwd 
  2. Set the JAVA_HOME environment variable. For example,
    setenv JAVA_HOME ${MW_HOME}/jdk160_14_R27.6.4-18
    
  3. Add the Java bin directory to the PATH environment variable. For example,
    setenv PATH ${JAVA_HOME}/bin:${PATH}
    

Example F-1 To Print All Properties to the Console

java -cp $MW_HOME/soa/soa/modules/oracle.soa.b2b_11.1.1/b2b.jar:$MW_HOME
/wlserver/server/lib/wljmxclient.jar:$MW_HOME/oracle_common/modules/
glassfish.el_1.2.0.0_2-2.jar oracle.tip.b2b.utility.ConfigMBeanUtility 

Example F-2 To Add a Property

java -cp $MW_HOME/soa/soa/modules/oracle.soa.b2b_11.1.1/b2b.jar:$MW_HOME
/wlserver/server/lib/wljmxclient.jar:$MW_HOME/oracle_common/modules/
glassfish.el_1.2.0.0_2-2.jar oracle.tip.b2b.utility.ConfigMBeanUtility 
add b2b.test cool ok

Example F-3 To Update a Property

java -cp $MW_HOME/soa/soa/modules/oracle.soa.b2b_11.1.1/b2b.jar:$MW_HOME
/wlserver/server/lib/wljmxclient.jar:$MW_HOME/oracle_common/modules/
glassfish.el_1.2.0.0_2-2.jar oracle.tip.b2b.utility.ConfigMBeanUtility 
update b2b.test thru

Example F-4 To Remove a Property

java -cp $MW_HOME/soa/soa/modules/oracle.soa.b2b_11.1.1/b2b.jar:$MW_HOME
/wlserver/server/lib/wljmxclient.jar:$MW_HOME/oracle_common/modules/
glassfish.el_1.2.0.0_2-2.jar oracle.tip.b2b.utility.ConfigMBeanUtility 
remove b2b.test

Example F-1, Example F-2, Example F-3, and Example F-4 show uses for this utility.