This chapter describes issues associated with Oracle Technology Adapters and the Oracle Fusion Middleware User's Guide for Technology Adapters. 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 15.1.1, "Oracle JCA Adapters Issues and Workarounds"
Section 15.1.2, "Oracle JCA Adapter for Files/FTP Issues and Workarounds"
Section 15.1.3, "Oracle JCA Adapter for AQ Issues and Workarounds"
Section 15.1.4, "Oracle JCA Adapter for JMS Issues and Workarounds"
Section 15.1.5, "Oracle JCA Adapter for Database Issues and Workarounds"
Section 15.1.6, "Oracle JCA Adapter for MQ Series Issues and Workarounds"
Section 15.1.7, "Oracle JCA Adapter for Socket Issues and Workarounds"
Section 15.1.8, "Native Format Builder Issues and Workarounds"
This section describes issues and workarounds that are applicable to all adapters: Oracle AQ Adapter, Oracle JMS Adapter, Oracle Files/FTP Adapter, Oracle MQ Series Adapter, Oracle Database Adapter, and Oracle Socket Adapter.
This section includes the following issue:
Section 15.1.1.1, "ECID Propagation Is Not Supported by Oracle Technology Adapters"
Section 15.1.1.3, "JCA Binding Component Error Messages During Forceful Shutdown"
Section 15.1.1.4, "Manual Edits to WSDL Lost When Re-running the Adapter Configuration Wizard"
Section 15.1.1.5, "Setting the Payload Threshold in MBean for DB Adapter Outbound Operations"
The ECID is used to keep track of message flow in Oracle Enterprise Manager. The ECID is not preserved when two composites communicate via adapters over an external protocol, like fro example, a file system or sockets since these protocols do not have support for headers to, for example, hold the ECID.
If an outbound adapter throws an exception with GLOBAL_RETRY
, then the retry configured at the outbound adapter level will not take effect. The retry falls back to the caller which could be a BPEL process. The retry happens from the inbound to the BPEL process (caller of BPEL process) in either of the following transaction semantics in Oracle BPEL process:
<property name="bpel.config.transaction">requiresNew</property> <property name="bpel.config.oneWayDeliveryPolicy">sync</property>
<property name="bpel.config.transaction">required</property> <property name="bpel.config.oneWayDeliveryPolicy">sync</property>
If the adapter throws a LOCAL_RETRY
, then the retry configured at the outbound adapter level will take effect.
Note that for the inbound retry to work, Oracle BPEL process must not have any dehydration points.
During forceful shutdown of Oracle WebLogic Server, if the severs are processing data, then you may see JCA Binding Component error messages. These messages are benign.
Every time you use the Adapter Configuration Wizard to edit an adapter, the wizard uses the data you enter to recreate the adapter WSDL. If you made manual edits to the WSDL before, the Adapter Configuration Wizard will discard those changes the next time you edit the adapter.
The workaround for this issue is to make the same manual edits each time you use the Adapter Configuration Wizard.
You can set the payload threshold in MBeans for DB Adapter Outbound operations such as Select, Pure SQL, and the Stored Procedure Adapter's Select Operations. However, values you set in the MBean might not take effect dynamically; when you change the value in the Mbean, you need to redeploy the SOA composite. This release note is specific to both Windows and Linux operating system platforms.
You can use the following procedure to set the payload threshold in Mbeans:
Deploy a composite with a threshold value in the composite.xml file.This value in the composite.xml overrides the value in MBean defined in EM Console.
If the value in the Mbean is changed, and if that value is the value that is to take effect, you must redeploy the composite application.
For the outbound Select, whenever the threshold value is changed, whether in Mbean or in the composite.xml, it is safe to redeploy the composite.
This section describes the following issues and workarounds related to Oracle File and FTP Adapters:
It includes the following sections:
Section 15.1.2.1, "Files Lost During an SOA Server Failover"
Section 15.1.2.4, "Prerequisite for Oracle FTP Adapter Debatching Scenarios on FTPS"
Section 15.1.2.5, "Editable Append Property With Dynamic File Name"
Section 15.1.2.6, "Data Lost During Read Operation from an Input File with Errors"
Section 15.1.2.7, "Attachments and Payload Validation are Incompatible"
The Oracle File Adapter picks up a file from an inbound directory, processes the file, and sends the processed file to an output directory. However, during this process if a failover occurs in an SOA managed server, then the file may be lost because of the nontransactional nature of Oracle File Adapter. As a result, some files read by the inbound adapter may not be sent to the output directory. You must configure the Oracle File Adapter for high availability, to ensure that files are not lost during a failover.
When Oracle File and FTP Adapters read a Unicode XML file with byte order mark (BOM), a DOM parsing exception is thrown at runtime. If the Unicode XML file does not use BOM, then an exception is not thrown.
If Oracle File and FTP Adapters use logical directories for inbound or outbound operations, then JCA property updates from Oracle Enterprise Manager Console are not applied.
If the FTP server returns error code 421 (service not available), it can mean that the FTP server is becomng overwhelmed with requests and you might need to throttle the inbound adapter; one easy way of doing so is to model the inbound service as a synchronous one.
The ability to append to a file while maintaining a dynamic file naming convention is possible. There are cases where one would like to implement similar functionality to a "rolling file appender" with a convention like "log_%yyMMdd%.txt" where each day a new file is created, all entries are appended to that file and as the day rolls over the log file does also.
When a dynamic file name is specified for an output file, the Append
property must not be edited. However, the Oracle Enterprise Manager Fusion Middleware Control Console allows you to edit the Append
property even when you specify a dynamic file name for an output file.
When using a dynamic file name the value of the Append
property must be false
. By default, the value of the Append
property is false
and this must not be edited while using a dynamic file name.
When an Oracle File Adapter processes a file with some invalid records, the entire file is actually copied to an error-archive-folder (if one is specified with the PhysicalErrorArchiveDirectory) or to a default error-archive if such a parameter is not configured.
To ensure that no data is lost, input files with invalid data must be sent to the error archive queue. You must set the following properties in the WSDL file for the Read file operation to ensure that input files with errors are sent to the error archive queue:
PhysicalErrorArchiveDirectory="physical_directory_ path"
LogicalErrorArchiveDirectory="logical_directory_path"
If you enable payload validation when using attachments, the Oracle FTP Adapter fails with a java.lang.NullPointerException
and logs an error like: "FtpIn FtpInAdapter Service FtpIn was unable to perform delivery of inbound message to the composite".
When using attachments, disable payload validation. For Attachments, payload validation is unnecessary.
This section describes the following issue and workaround related to Oracle JCA Adapter for AQ:
It includes the following section:
Section 15.1.3.2, "Oracle AQ Adapter No More Data to Read- Apply Patches"
Section 15.1.3.3, "XMLTYPE PAYLOAD GREATER THAN 4KB IS NOT PROCESSED CORRECTLY"
It is recommended that you use Oracle Adapter for Oracle Applications to dequeue from queues in E-Business Suite Applications and not Oracle JCA Adapter for AQ.
When the AQ Adapter is run against the Oracle® Database 11g Release 1 (11.2.01 on the LINUX.X64 platform) , you might see the following error while the AQAdapter tries to dequeue a message from a queue:
java.sql.SQLRecoverableException: No more data to read from socket
To resolve the above exception, you need to apply the patches listed below for the Oracle® Database 11g Release 1 (11.2.01):
ARU: 11.2.0.1.0 ARU 11998753 completed for Linux x86
ARU: 11.2.0.1.0 ARU 11998754 completed for Linux x86-64
Currently the size of XMLType payload that can be processed by the Oracle AQ adapter is restricted to a 4KB limit. As a possible workaround, you can replace XMLType with CLOB (conversion might be needed) to overcome the current limitation.
This section describes the following issues and workarounds related to Oracle JMS Adapter:
Section 15.1.4.1, "Example of Flow Control Settings for Oracle JMS Adapter"
Section 15.1.4.3, "Distributed Topic in Clustered Environment Creates Extra Messages"
Section 15.1.4.5, "AQJMS Dequeue Failed Error When Redeployed By Adding Durable Subscription"
Anytime the exception weblogic.messaging.kernel.QuotaException: Quota blocking time exceeded and no quota available is encountered, WLS JMS provider allows flow control settings that you can tweak to control the number of messages that are produced/consumed.
For more information about tweaking the control settings, see
The following is an example of the flow control settings used and the various thresholds for a message carrying a payload size of 5k:
Config JMSServer: Message Buffer Size:5000 Config JMSConnectionFactory: Flow Control: Flow Maximum: 30 Flow Minimum: 1 Flow Interval: 10 Flow Step: 10 check Flow Control Enabled Default Delivery: Send Timeout: 3000000 Config JMS Destinations: Bytes Threshold High: 50000 Bytes Threshold Low: 50 Messages Threshold High: 100 Messages Threshold Low: 1 Set Quota
While migrating a project from one environment to another, Oracle JMS Adapter Wizard populates the Destination and JNDI name fields in edit mode in the following pages:
Consume Operation Parameters page
Produce Operation Parameters page
Request Operation Parameters page
Reply Operation Parameters page
Request/Reply Operation Parameters page
However, if you click Next, the Adapter Configuration Wizard validates whether this is a valid destination, and accordingly, displays a warning message if found to be invalid. You have the option to proceed or enter a valid destination.
When you use Oracle JMS adapter with a distributed topic deployed in a cluster, the scenario would result in more messages processed than the actual number of messages passed to the topic.
Each subscriber to the topic is handed a copy of the message to be processed by WLS JMS. So, the number of processed messages will be equal to the number of active subscribers on the distributed topic. This is a known behavior of Oracle WebLogic JMS in Oracle WebLogic Application Server 10.3.
Adapter logs might occasionally log the following error when you are using the JMS adapter during stress and failover scenarios:
JmsConsumer_run:[destination = XXXX, subscriber = null]: A resource exceptionoccurred while waiting for inbound messages: Consumer not found.
The above exception stating Consumer Not Found
is encountered at the time of consumer creation and occurs as a result of an invalid connection/session that is used in the poller thread. The Adapter ensures that the exception is captured (by logging the error), and at the same time it takes corrective measure by removing the invalid connection from connection pool, thereby resulting in successful consumer creation in the next recovery cycle.
When an AQJMS Topic inbound process. without a durable subscription , is already deployed to the server, is redeployed adding a durable subscription to the InboundTopic the following error occurs at the time of dequeing the message:
Caused by: oracle.jms.AQjmsException: JMS-120: Dequeue failed at oracle.jms.AQjmsError.throwEx(AQjmsError.java:315) at oracle.jms.AQjmsConsumer.jdbcDequeue(AQjmsConsumer.java:1620) at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:1035) at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:960) at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:938) at oracle.jms.AQjmsConsumer.receive(AQjmsConsumer.java:790)
This section describes the following issues and workarounds related to Oracle Database Adapter:
Section 15.1.5.1, "Distributed Polling Using MarkReservedValue Disabled by Default"
Section 15.1.5.2, "XMLTYPE PAYLOAD GREATER THAN 4KB IS NOT PROCESSED CORRECTLY"
In this release, Oracle recommends that you use the new distributed polling approach based on skip locking. When editing an Oracle Database Adapter service which has a MarkReservedValue
set, that value will be removed to enable the new best practice.
To use the old distributed polling approach based on a reserved value, select the value from the drop down menu.
Currently the size of XMLType payload that can be processed by the Oracle AQ adapter is restricted to a 4KB limit. As a possible workaround, you can replace XMLType with CLOB (conversion might be needed) to overcome the current limitation.
This section describes the following issues and workarounds related to Oracle MQ Series Adapter:
Section 15.1.6.1, "Oracle MQ Series Adapter Does Not Support Asynchronous Request-Response Pattern"
Section 15.1.6.3, "Adding Additional Encoding Not Supported"
Section 15.1.6.4, "Using MQ Series version 7.0.0.2 and XA Transactions"
Section 15.1.6.5, "MQ Adapter:Async Req-Response(Non-solicit) Always Requires Fallback Queue"
Oracle MQ Series Adapter does not support asynchronous request-response pattern. The Asynchronous Request-Response pattern is not applicable to any adapter (including MQSeries adapter)
If you select the outbound resource as XA, then the Oracle MQ Series Adapter throws an exception and does not retry because it does not support an outbound retry with outbound resource as XA. On the other hand, if the outbound resource is non-XA, then the retry happens correctly. If the outbound MQSeries adapter is configured with XA, then Section 15.1.1.2, "Outbound Adapter Does Not Perform an Outbound Retry If the Outbound Adapter Throws an Exception with GLOBAL_RETRY" applies since this is treated by the framework as a
GLOBAL_RETRY
.
Standard Java encodings and their mappings are provided with the MQ Series Adapter but the Adapter Configuration Wizard does not support addition of additional Java encodings that you may require.
To add support for the standard Java encodings that are not provided in the list, you can perform the following steps:
Extract the MQSeriesAdapter.jar
file from the MQSeriesAdapter.rar
file.
Extract the mq.properties
file from the MQSeriesAdapter.jar file.
Add the entry in the mq.properties
file. This file has two entries for a mapping between MQ Series encoding and Java encoding. For each new encoding that you require, you must make two entries to the mq.properties
file. Make an entry for the MQ Series encoding to the corresponding Java encoding and the other entry for the Java encoding to the corresponding MQ Series encoding.
Oracle JCA Adapter for MQ Series is certified with MQ Series version 7.0.0.2. If you are using XA transactions, then you must configure the server connection channel with a level of conversation sharing set to 0.
In the MQ Adapter Wizard, if the user does not provide the Fallback Queue, but does provide a valid Reply Queue, it complains about Illegal Reply queue; but, if the user provides the Fallback Queue, and also provides the Reply Queue, then the adapter replies properly to the Reply Queue.
This happens when you have Message Type as "Normal" and not "Request". As a workaround, the user can enter some dummy queue for the Fallback Queue, if the intention is not to use the Fallback Queue.
This section describes the following issue and workaround related to Oracle Socket Adapter:
Section 15.1.7.1, "Oracle Socket Adapter Not Supported On a Cluster-Based Environment"
Section 15.1.7.2, "Inbound Operation Hostname Should Be an IP Address for a Multiple-NIC Host"
Oracle Socket Adapter is not supported on a cluster-based environment. If you try to deploy an inbound Oracle Socket Adapter in a clustered environment, then one of the managed servers throws an error message that the server's port is already in use. You will see this issue if you are trying to deploy onto a cluster where one or more managed servers are on the same physical machine.
When configuring the Oracle Socket Adapter using the Adapter Configuration Wizard, at step 4 of 7, if you select either of:
Inbound Synchronous Request/Reply
Inbound Receive
Then, at Adapter Configuration Wizard step 5 of 7, note the following:
If you want to override the default port for the given socket connection JNDI name, check Specify Host and Port.
If you check Specify Host and Port, you must enter a value for Host Name. Note the following:
If your host is associated with only one IP address, that is, if it has only one Network Interface Card (NIC), enter localhost
.
If your host is associated with more than one IP address, that is, has more than one NIC, enter the one IP address you want the Oracle Socket Adapter to listen on.
The Oracle Socket Adapter can listen on only one specific IP address. The Oracle Socket Adapter cannot listen on multiple IP addresses.
This section describes the following issues and workarounds related to the Native Format Builder:
Section 15.1.8.1, "Delimited by White Space Option Not Supported in NXSD"
Section 15.1.8.2, "Payload Validation Fails for Payloads Greater Than 10 MB in Size"
In the Specify Delimiter's page of the Native Format Builder wizard, the White space (any number of tab, space)
option in the Delimited by list is not supported.
When payload validation is enabled, it may fail with a java.lang.ClassCastException
for payloads greater than 10 MB in size.
For more information, see "Payload Validation" in the Oracle Fusion Middleware User's Guide for Technology Adapters.
There are no known configuration issues at this time.