Oracle® Application Server Release Notes and New Features 10g Release 3 (10.1.3.4) Part Number E12523-05 |
|
|
View PDF |
This chapter describes issues associated with Oracle Application Server Technology adapters. It includes the following topics:
MaxTransactionSize
Should be Limited for Oracle Database AdapterIn Database adapter, set a limited value for MaxTransactionSize
. For example, set
MaxTransactionSize=10
Setting higher values to MaxTransactionSize
will likely time out.
XA on RAC results in message loss when processing master-detail adapter during failover.
For XA on RAC in Oracle Application Server 10g Release 10.1.3.4, ensure that if multiple components are connecting to a RAC database, then they share the same managed datasource definition, and not just the same connection pool definition.
Oracle File/FTP adapter clustering will not work across endpoints in different subnets. However, it works fine with UDP protocol.
To resolve this problem, when the SOA cluster is across the subnet, use TCP protocol in jgroups-protocol.xml
, and ensure that you set the activation agent property useJGroupConfigFile=false
in bpel.xml
of the corresponding BPEL process.
This section describes the new features for Oracle Application Server 10g Release 10.1.3.4 for the following technology adapters:
Section 11.4.2, "Oracle Application Server Adapter for Files/FTP New Features"
Section 11.4.3, "Oracle Application Server Adapter for Java Message Service New Features"
Section 11.4.4, "Oracle Application Server Adapter for Advanced Queuing New Features"
Section 11.4.5, "Oracle Application Server Adapter for Database New Features"
Section 11.4.6, "Oracle Application Server Adapter for MQSeries New Features"
Oracle Application Server 10g Release 10.1.3.4 includes the following new features for the Native Format Builder Wizard:
There can be instances where the special characters, such as a delimiter are part of the data. In such cases, the actual data should be included within quotes. If quotes exist in the field data, then you must double the embedded quote characters, and delimit the field with double-quotes. Consider the following CSV data field example:
Arun said, " I love google".
The special characters in the preceding example must be escaped in the native as follows:
"Arun said, "" I love google""."
Note that here the special characters, ,
(comma) and "
(double-quotes) are part of the data.
you can configure adapters to perform stricter validations on inbound operation at level 1 and level 2. This new feature ensures that the adapter will not publish invalid records.The following validations are available in this release:
At the top level, you can validate DOMResult
against the XML schema. Though this sort of validation is useful, it does not provide translation context information, such as the line and the column in the native stream where this error occurred. However, this validation can control the publishing of invalid records and provide XML validation errors. The following code snippet enables XML validation:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd" targetNamespace="http://xmlns.oracle.com/pcbpel/nxsd/smoketest" elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:stream="chars" nxsd:version="NXSD" nxsd:validation="true" >
Type validation support at the field level - XML schema type validation is performed for each token read from the native stream. In case of an error, an error is reported with the line and column number in the native stream, and the corresponding XML type where this validation failure occurred.
The following code snippet enables field-level validation:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd" targetNamespace="http://xmlns.oracle.com/pcbpel/nxsd/smoketest" elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:stream="chars" nxsd:version="NXSD" nxsd:fieldValidation="true" >
Note that, currently, field-level validation does not support XML schema patterns and facet-level validation.
Oracle Application Server 10g Release 10.1.3.4 includes the following new features for the File and FTP adapters:
Section 11.4.2.1, "Support for Copying, Moving, and Deleting Files by Using an Outbound Service"
Section 11.4.2.2, "Support for FTPS (FTP over SSL) in Linux"
Section 11.4.2.3, "End of Line Characters Handling in File and FTP Adapters in Linux"
Section 11.4.2.4, "Processing of Files by Their Last Modified Time in File Adapter"
The File and FTP adapter includes a functionality that allows you to copy or move a file from one location to another or delete a file from the target folder. Additionally, the FTP adapter allows you to move or copy files from a local file system to a remote file system and vice versa.
Note that the FTP adapter includes variants for SFTP and FTPS.
Oracle JDeveloper Release 10.1.3.4 does not support this feature. However, it is possible to configure this feature manually. This new feature is being implemented as a new interaction specification for outbound services. So, this feature can be accessed either by using a BPEL invoke activity or an ESB routing rule.
At a high level, you will need to create an outbound service and configure this service with the source and target directories and filenames.
The following use cases demonstrate the new functionality supported by File and FTP adapters that allow you to copy, move, and delete files by using an outbound service:
Section 11.4.2.1.3, "Use Case 3: Deleting a File from a Local File System Folder"
Section 11.4.2.1.4, "Use Case 4: Working with Huge CSV Files"
Section 11.4.2.1.8, "Use Case 8: Copying a File from One FTP Server to Another"
You will model only a part of this procedure by using the wizard because the corresponding Oracle JDeveloper Wizard is not available. You will complete the rest of the procedure by configuring the generated WSDL file manually.
The following are the steps to move a file from a local folder on the file system to another local folder:
Create an empty BPEL process, as shown in Figure 11-1.
Drag and drop File Adapter from the BPEL Services list for the outbound service.
The Adapter Configuration Wizard is displayed.
Click Next. The Service Name page is displayed.
Enter a service name, and optionally enter a description, as shown in Figure 11-2, and then click Next.
In the Operation page, select Synchronous Read File as the operation, as shown in Figure 11-3. You may optionally change the name of operation, and then click Next.
Note that you have selected Synchronous Read File as the operation because the WSDL file that is generated as a result of this operation is similar to the one required for the file IO operation.
In the File Directories page, select a dummy directory for now, which will not be used, as shown in Figure 11-4, and then click Next. You will change the directory manually in a later step.
In the File Name page, select a dummy file for now, as shown in Figure 11-5, which will not be used, and then click Next. You will change the file name manually in a later step.
In the Messages page, as shown in Figure 11-6, select Native format translation is not required (Schema is opaque), and then click Next.
Click Finish.
Create an invoke activity for the MoveFileService
service that you just created, as shown in Figure 11-7.
The next step is to modify the generated WSDL file for MoveFileService
service and configure it with the new interaction specification for the move operation.
Open the MoveFileService.wsdl
file and modify the jca:operation
, as shown in the following example.
You will configure the WSDL file with the source, target directory, and file details. You can either hardcode the source, target directory, and file details in the WDL file or use header variables to populate them. In this example, you will use header variables.
<jca:operation InteractionSpec="oracle.tip.adapter.file.outbound.FileIoInteractionSpec" SourcePhysicalDirectory="foo1" SourceFileName="bar1" TargetPhysicalDirectory="foo2" TargetFileName="bar2" Type="MOVE"> </jca:operation>
Note:
Note that you have modified theclassName
attribute, and added SourcePhysicalDirectory
, SourceFileName
,TargetPhysicalDirectory
, TargetFileName
and Type
. Currently, the values for the source and target details are dummy. You will populate them at runtime. You can also hardcode them to specific directories or filenames.
The Type
attributes decides the type of operation. Apart from MOVE
, the other acceptable values for the Type
attribute are COPY
and DELETE
.
Now that you have configured the WDL file with dummy source and target details, you will need to specify headers so that you can override them at runtime. First, you will need to modify fileAdapterOutboundHeader.wsdl
, and then add the new headers, as shown in the following example:.
<types> <schema ..> <element name="OutboundFileHeaderType"> <complexType> <sequence> <element name="fileName" type="string"/> <element name="directory" type="string"/> <element name="sourceDirectory" type="string"/> <element name="sourceFileName" type="string"/> <element name="targetDirectory" type="string"/> <element name="targetFileName" type="string"/> </sequence> </complexType> </element> </schema> </types>
This is required because you will use the BPEL header mechanism to override the source, target directory, and file details at runtime.
Create a header variable for the invoke activity, as shown in Figure 11-8.
Create a new header variable, as shown in Figure 11-9 , and configure it with the OutboundHeader_msg
message type from the fileAdapterOutboundHeader.wsdl
file.
Create an assign activity to assign the header variable values for sourceDirectory
, sourceFileName
, targetDirectory
and targetFileName
, as shown in Figure 11-10.
Similarly, create a copy operation for sourceFileName
, targetDirectory
and targetFileName
. Now, the assign operation appears in the BPEL source view, as shown in the following code snippet.
<assign name="AssignFileDetails"> <copy> <from expression="'C:\source'"/> <to variable="outHeader" part="outboundHeader" query="/ns2:OutboundFileHeaderType/ns2:sourceDirectory"/> </copy> <copy> <from expression="'in.zip'"/> <to variable="outHeader" part="outboundHeader" query="/ns2:OutboundFileHeaderType/ns2:sourceFileName"/> </copy> <copy> <from expression="'C:\target'"/> <to variable="outHeader" part="outboundHeader" query="/ns2:OutboundFileHeaderType/ns2:targetDirectory"/> </copy> <copy> <from expression="'out.zip'"/> <to variable="outHeader" part="outboundHeader" query="/ns2:OutboundFileHeaderType/ns2:targetFileName"/> </copy> </assign>
Note that you have hardcoded the source and target details here. You can also provide these details as run-time parameters.
Finally, add an initial receive or pick activity.
You have completed moving a file from a local folder on the file system to another local folder.
The following are the steps to copy a file from a local folder on the file system to another local folder:
Follow steps 1 through 10 in Section 11.4.2.1.1, "Use Case 1: Moving a File from a Local Folder on the File System to Another Local Folder".
Change the value of the TYPE
attribute to COPY
in the jca:operation
, as shown in the following example in Step 11 in Section 11.4.2.1.1, "Use Case 1: Moving a File from a Local Folder on the File System to Another Local Folder".
<jca:operation
InteractionSpec="oracle.tip.adapter.file.outbound.FileIoInteractionSpec"
SourcePhysicalDirectory="foo1"
SourceFileName="bar1"
TargetPhysicalDirectory="foo2"
TargetFileName="bar2"
Type="COPY">
</jca:operation>
To delete a file, the parameters you require are TargetPhysicalDirectory
and TargetFileName
. Note that you do not require SourcePhysicalDirectory
and SourceFileName
to delete a file from a local file system folder.
The following are the steps to delete a file delete_me.txt
from /home/alex
:
Follow steps 1 through 10 in Section 11.4.2.1.1, "Use Case 1: Moving a File from a Local Folder on the File System to Another Local Folder"
Change the value of the TYPE
attribute to DELETE
in the jca:operation
in Step 11 in Section 11.4.2.1.1, "Use Case 1: Moving a File from a Local Folder on the File System to Another Local Folder", as shown in the following example:
<jca:operation
InteractionSpec="oracle.tip.adapter.file.outbound.FileIoInteractionSpec"
TargetPhysicalDirectory="/home/alex"
TargetFileName="delete_me.txt"
Type="DELETE">
</jca:operation>
Consider the following scenario:
You have a large CSV file of size 1 gigabyte coming on the source folder, and you need to perform the following:
Translate the CSV into XML.
Transform the resulting XML using XSL.
Finally, translate the result from the transform operation into a fixed length file.
This use case is similar to the FlatStructure
sample in the BPEL samples directory for 121.FileAdapter
. The difference is that the three steps will occur in a single File IO interaction.
Note that all the three steps occur in a single File IO interaction only if all the records in the data file are of the same type.
The following are the steps to perform the three operations on the CSV file:
Copy the address-csv.xsd
and address-fixedLength.xsd
files from the FlatStructure sample into the xsd
directory of your project.
Copy addr1Toaddr2.xsl
from the FlatStructure sample into the xsl
directory of your project.
Configure the File IO interaction, as shown in the following example. At a high level, you will need to specify the source and target schemas as well as the XSL in the interaction specification along with the source, target folder, and file details, as shown in the following example:
<jca:operation InteractionSpec="oracle.tip.adapter.file.outbound.FileIoInteractionSpec" SourcePhysicalDirectory="C:\inputDirectory" SourceFileName="input.csv" TargetPhysicalDirectory="C:\outputDirectory" TargetFileName="output_fixedLength.txt" SourceSchema="address-csv.xsd" SourceSchemaRoot ="Root-Element" SourceType="native" TargetSchema="address-fixedLength.xsd" TargetSchemaRoot ="Root-Element" TargetType="native" Xsl="addr1Toaddr2.xsl" Type="MOVE"> </jca:operation>
Note that you have provided the following additional parameters:
SourceSchema
: Relative path to the source schema.
SourceSchemaRoot
: The root element in the source schema.
SourceType
: The type of data. The other possible type is XML.
TargetSchema
: Relative path to the target schema.
TargetSchemaRoot
: The root element in the target schema.
TargetType
: The type of data. The other possible type is XML.
XSL
: Relative path to the XSL file.
The IO use-cases for the FTP adapter are very similar to those for File adapter. However, there are a few nuances that need attention.
Note that you are moving a file within the same folder, so it seems more like a rename operation on the same server. Most FTP servers support the RNFR
, and the RNTO
FTP commands that allow you to rename a file on the FTP server.
However, even if the RNFR
, and the RNTO
commands are not supported, moving a file within the same folder is still possible by virtue of a binding property UseNativeRenameOperation
. If this property is set to TRUE
, then the FTP adapter uses the native RNFR
and RNTO
commands. However, if this property is set to FALSE
, then the FTP adapter uses the Get
and Put
commands followed by a Delete
command to emulate a move operation. By default, UseNativeRenameOperation
is set to FALSE
in which case the FTP adapter emulates a move operation. If your FTP server supports the RNFR
and RNTO
commands, then set this property to TRUE
.
Similar to the File IO, you will need model a part of the use case using the Oracle JDeveloper wizard because the corresponding Oracle JDeveloper wizard is not available.
Modeling this use case is similar to Section 11.4.2.1.1, "Use Case 1: Moving a File from a Local Folder on the File System to Another Local Folder" except for the following two differences from Use Case 1:
Change InteractionSpec
to oracle.tip.adapter.ftp.outbound.FTPIoInteractionSpec
Add an endpoint property in the bpel.xml
file for the outbound partner link for UseNativeRenameOperation
.
If the FTP server supports the RNFR
, and the RNTO
FTP commands, then you must set UseNativeRenameOperation
to TRUE
. Otherwise, you will need to set it to FALSE
. Define the property in bpel.xml, as shown in the following example:
<partnerLinkBinding name="FtpRenameSvc"> <property name="wsdlLocation">FtpRenameSvc.wsdl</property> <property name=" UseNativeRenameOperation">true</property> <property name="retryInterval">60</property> </partnerLinkBinding>
Follow the rest of the steps as mentioned in Section 11.4.2.1.1, "Use Case 1: Moving a File from a Local Folder on the File System to Another Local Folder", with changes only to the InteractionSpec
class name, as shown in the following example:
<jca:operation InteractionSpec="oracle.tip.adapter.ftp.outbound.FTPIoInteractionSpec" SourcePhysicalDirectory="foo1" SourceFileName="bar1" TargetPhysicalDirectory="foo2" TargetFileName="bar2" Type="MOVE"> </jca:operation>
The steps for this use case are the same as in Section 11.4.2.1.5, "Use Case 5: Moving a File from a Remote Folder to Another Remote Folder on the Same FTP Server" except that you must configure the source folder as local and the target folder as remote.
Use the two properties SourceIsRemote
and TargetIsRemote
to specify whether the source/target file is on the local or remote file system, as shown in the following example:
<jca:operation
InteractionSpec="oracle.tip.adapter.ftp.outbound.FTPIoInteractionSpec"
SourcePhysicalDirectory="foo1"
SourceFileName="bar1"
SourceIsRemote="false"
TargetPhysicalDirectory="foo2"
TargetFileName="bar2"
Type="COPY">
</jca:operation>
Notice that you have configured SourceIsRemote
as FALSE
. In this case, the FTP IO assumes that the source file comes from a local file system. Also, notice that you did not specify the parameter for target because, by default TargetIsRemote
is set to TRUE
.
The steps for this use case are the same as in Section 11.4.2.1.6, "Use Case 6: Copying a File from a Local Folder on the File System to a Remote Folder on the FTP Server" except that you must configure the source folder as remote and the target folder as local, as shown in the following example:
<jca:operation InteractionSpec="oracle.tip.adapter.ftp.outbound.FTPIoInteractionSpec" SourcePhysicalDirectory="foo1" SourceFileName="bar1" TargetPhysicalDirectory="foo2" TargetFileName="bar2" TargetIsRemote="false" Type="COPY"> </jca:operation>
Notice that you have configured TargetIsRemote
as FALSE
. In this case, the FTP IO will assume that the source file comes from a remote file system whereas the target is on a local file-system folder. Also, notice that you did not specify the parameter for source because, by default, SourceIsRemote
is set to TRUE.
Also, note that you cannot set both SourceIsRemote
and TargetIsRemote
as FALSE
, because this use case is applicable for a File adapter and not an FTP adapter.
For this use case, you will need to perform Section 11.4.2.1.6, "Use Case 6: Copying a File from a Local Folder on the File System to a Remote Folder on the FTP Server" and Section 11.4.2.1.7, "Use Case 7: Copying a File from a Remote Folder on the File System to a Local Folder on the File System" in a sequential manner. In Use case 6 the file from the FTP server is downloaded to a local directory and in Use case 7 the file is uploaded to another FTP server from the local directory.
Oracle Application Server 10g Release 10.1.3.4 includes a functionality in which the FTP adapter now supports SSL on Linux in addition to previously supported Solaris.
The configuration for SSL on Linux is the same as the one for Solaris, described in the documentation for FTP over SSL in earlier versions, for example Oracle Application Server 10g Release 10.1.3. In addition, you have to configure the following parameters:
keyStoreProviderName
: oracle.security.pki.OraclePKIProvider
keystoreType
: PKCS12
keystoreAlgorithm
: OracleX509
pkiProvider
: OraclePKI
jsseProvider
: OracleJSSE
Ensure that you add the OraclePKIProvider in java.security
policy file in the SOA-HOME
\jdk\jre\lib\security
directory.
The current XML specification, available at http://www.w3.org/TR/REC-xml/#sec-line-ends
states the following:
Every 0x0D, that is, carriage return (CR) is converted to 0x0A, that is, line feed (LF)
Every consecutive 0x0A are converted into ONE single 0x0A
For example,
0x0D --> 0x0A 0x0D0x0A --> 0x0A 0x0A0x0A0x0A --> 0x0A
An option is required to avoid any CR and LF characters (that is, 0x0D and 0x0A) transformation as described in the preceding example to maintain data consistency from source to target.
Oracle Application Server 10g Release 10.1.3.4 includes a functionality whereby two new parameters normalizeLineTerminators
and encodeLineTerminators
have been added as top level schema directives.
If nxsd:normalizeLineTerminators="false"
, then the translator will not normalize new line characters. For example, \r\n
will be retained as a 0x0D0x0A sequence. By default, normalizeLineTerminators="true"
, and line terminator character sequences are normalized to \n
. If nxsd:encodeLineTerminators="true"
, then the translator will encode line terminators. For example, line feed (\n) will be encoded as 

; and a carriage return (\r) will be encoded as
. By default, encodeLineTerminators
is set to FALSE, that is, \n
will appear as 0x0A and \r
will appear as 0x0D.
Oracle Application Server 10g Release 10.1.3.4 includes a functionality, whereby the inbound adapter can be configured to sort files by configuring a new parameter, Sorter
, in the activation specification for the File adapter.
The Sorter
parameter supports two values currently, one that sorts files in ascending order of modified times and the other that sorts in descending order, as shown in the following example:
Set Sorter="oracle.tip.adapter.file.sorter.TimestampSorterAscending" in order to sort the file names by their modified timestamps in ascending manner or Sorter="oracle.tip.adapter.file.sorter.TimestampSorterDescending in order to sort the file names by their modified timestamps in descending manner You can also plugin your own sorter by implementing java.util.Comparator e.g. public class MySorter implements Comparator { public int compare(Object a, Object b) { FileInfo first = (FileInfo)a; FileInfo second = (FileInfo)b; if(first.get…()… > second.get…()) return 1; else if(first.get…() < second.get…()) return -1; return 0; } }
Finally, you need to copy MySorter.class
to the bpel/system/classes
folder.
Note:
This feature works only if the following two conditions are met:A synchronous Oracle BPEL Process is created or a synchronous ESB routing rule is used.
The number of threads is set to 1 in the pc.properties
file. For Oracle BPEL Process Manager, this file is available in ORAHOME
/bpel/system/service/config
, and for Oracle ESB, it is available in ORAHOME
/integration/esb/config
. Note that you must rename pc.properties.esb
to pc.properties. oracle.tip.adapter.file.numProcessorThreads=1
.
Oracle Application Server 10g Release 10.1.3.4 includes the following new features for the Oracle JMS adapter:
A MapMessage
is used to send a set of name-value pairs where names are strings and values are Java primitive types. The entries can be accessed sequentially or randomly by name. The order of the entries is undefined. It inherits from a message and adds a map message body.
Oracle JMS adapter provides support for processing MapMessage
. It now supports one new Activation and Interaction Spec each namely JmsMapMessageConsumeActivationSpec
and JmsMapMessageProduceInteractionSpec
. The PayloadEntry
property specifies that the MapMessage
entry that will be used as the payload. Users have the option to send payload as an attachment if the AttachmentList
property is defined. If both PayloadEntry
and AttachmentList
property are not defined, then the entire MapMessage
is converted to XML and the XML is transferred as the payload.
Oracle JMS adapter now works with both WebLogic JMS Provider and Active MQ-JMS provider.
Oracle Application Server 10g Release 10.1.3.4 includes the following new features for the Oracle AQ adapter:
DequeueTimeout
PropertyThe DequeueTimeOut
property applicable to 10.1.3.x releases supports for multiple inbound dequeue threads. The value for this property determines how many seconds the dequeue()
API waits for messages before it returns and the next polling cycle begins.
Add this property to the bpel.xml
file, as shown in the following example:
<partnerLinkBindings> <partnerLinkBinding name="InboundPartnerLink"> <property name="wsdlLocation">Dequeuer.wsdl</property> </partnerLinkBinding> ... <activationAgents> <activationAgent className="oracle....JCAActivationAgent" partnerLink="InboundPartnerLink"> <property name="DequeueTimeOut">60</property>
Oracle AQ adapter now support multiple dequeue threads through the activation property adapter.aq.dequeue.threads
. The value of this property determines the number of polling threads that are active at any point in time when the activation is initiated. The following example uses the activation property adapter.aq.dequeue.threads
:
<service name="Raw-Dequeuer"> <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/aq/Raw_Dequeuer/#wsdl.interface(Dequeue_ptt)"/> <binding.jca config="Raw-Dequeuer_aq.jca"/> <property name="adapter.aq.dequeue.threads">2</property> </service>
Oracle Application Server 10g Release 10.1.3.4 includes the following new feature for the Oracle Database adapter:
Pure SQL Adapter is an option in the database adapter wizard that allows you to type the SQL directly and have an XSD/Web service generated automatically. The database tables are introspected dynamically in the wizard to test the SQL and better populate the XSD, that is, with valid return type.
The Pure SQL support allows the database adapter to deal with tables/views as entities and for dealing directly with SQL. You can use Pure SQL:
for simple data projection style report queries
in cases where the result set is not table oriented, such as select count(*)
to perform an update or delete all
when working with XMLType
columns and xquery
when using complex SQL, which are not modelled in the wizard expression builder
You can use the Pure SQL Adapter with Oracle XMLTypes
. It is a natural fit for inserting XML into XMLType
tables and columns, and retrieving XML using xquery
selects. Pure SQL is a natural fit for the database adapter that provides a relational-xml mapping that parallels XML DB(XDB) support. So when using XDB the adapter should be as lightweight and transparent as possible, to let you focus on XDB
and Xquery
.
If your data is in XML (unstructured/semi-structured) format, and you have no relational schema at all that you can map your data to, then you could use XDB. The conventional database adapter allows you to import an existing relational schema as an XML schema to be used with web services. XDBs XML shredding algorithm can generate a relational schema from an existing XML schema for persistent storage.
Note:
In Oracle Application Server 10g Release 10.1.3.3,XMLTypes
are NOT supported with the conventional tables/views database adapter. Database Adapter stored procedures supports anonymous XMLTypes
.Oracle Application Server 10g Release 10.1.3.4 includes the following new feature for the Oracle MQSeries adapter:
To use the character set of MQ message for translation in inbound adapter, set the following property to TRUE in ActivationSpec
:
UseMessageEncodingForTransalation="true"
Once, UseMessageEncodingForTransalation
is set to TRUE, then the MQSeries adapter will use the character set as specified in the MQ message for translation. The default value for this property is TRUE.If the UseMessageEncodingForTransalation
is set to FALSE, then the adapter would use the character set as specified in the schema (NXSD) file.
Similarly, for the outbound adapter if you want to use the character set to be specified at the run time, then you can specify the character set in the outbound header file MQOutboundHeader.wsdl
and set UseMessageEncodingForTransalation
to TRUE in InteractionSpec
.
In the MQOutboundHeader.wsd
l file, currently, the CodedCharSetId
element is not available. You must add this manually in Oracle JDeveloper. If you want to assign the CodedCharSetId
element to the outbound WSDL, then perform the following steps:
After creating the outbound service for the MQ adapter, add the following code in the MQOutboundHeader
element in the MQAdapterOutboundHeader.wsdl
file:
<element name="CodedCharSetId" type="string" minOccurs="0" />
Restart Oracle JDeveloper.
Create an Invoke activity, and in the Adapters tab, create an Outbound header variable.
Use the outbound header variable created in Step 3 to assign the CodedCharSetID
element to the outbound header.