JMS Data Objects
A JMS data object is a physical data object that accesses a JMS server. After you configure a JMS connection, create a JMS data object to read from JMS sources.
JMS providers are message-oriented middleware systems that send JMS messages. The JMS data object connects to a JMS provider to read or write data.
The JMS data object can read JMS messages from a JMS provider message queue . When you configure a JMS data object, configure properties to reflect the message structure of the JMS messages. The input ports and output ports are JMS message headers.
When you configure the read data operation properties, specify the format in which the JMS data object reads data. You can specify XML, JSON, or Flat as format. When you specify XML format, you must provide an XSD file. When you specify JSON, you must provide a sample file.
You can pass any payload format directly from source to target in Streaming mappings. You can project columns in binary format pass a payload from source to target in its original form or to pass a payload format that is not supported.
Streaming mappings can read, process, and write hierarchical data. You can use array, struct, and map complex data types to process the hierarchical data. You assign complex data types to ports in a mapping to flow hierarchical data. Ports that flow hierarchical data are called complex ports.
For more information about processing hierarchical data, see the Informatica Big Data Management User Guide.
Integration with JMS
You manually create JMS source and target data objects to reflect the message structure of JMS messages.
The JMS data object can read messages of type TextMessage. This type of message contains a string object. TextMessages can contain XML or JSON message data.
JMS Message Structure
JMS messages contain the following components:
Header Fields
JMS messages contain a fixed number of header fields. Each JMS message uses these fields regardless of message type. Every JMS source and target definition includes a pre-defined set of header fields.
The following table describes the JMS message header fields:
Header Field | Description |
---|
JMSDestination | Destination to which the message is sent. JMS destinations can be a message queue or a recipient who listens for messages based on the message topic. |
JMSDeliveryMode | Delivery mode of the message. The delivery mode can be persistent or non-persistent. |
JMSMessageID | Unique identification value for the message. |
JMSTimestamp | Time at which the message was handed off to the provider to be sent to the destination. |
JMSCorrelationID | Links one message with another. For example, JMSCorrelationID can link a response message with the corresponding request message. |
JMSReplyTo | Destination to which a reply message can be sent. |
JMSRedelivered | Indicates that a message might have been delivered previously, but not acknowledged. |
JMSType | Type of message based on a description of the message. For example, if a message contains a stock trade, the message type might be stock trade. |
JMSExpiration | Amount of time in milliseconds the message remains valid. The messages remain in memory during this period. |
JMSPriority | Priority of the message from 0-9. 0 is the lowest priority. 9 is the highest. |
Property Fields
JMS source and target definitions can optionally include message property fields. Property fields contain additional message header information. JMS providers use properties in a JMS message to give provider-specific information. Applications that use a JMS provider can add property fields with application-specific information to a message.
Body Fields
JMS source and target definitions can optionally include a message body. The body contains one or more fields. Only certain types of JMS messages contain a body.
JMS Data Object Overview Properties
The Data Integration Service uses overview properties when it reads data from a JMS source.
Overview properties include general properties that apply to the JMS data object. They also include object properties that apply to the resources in the JMS data object. The Developer tool displays overview properties for JMS messages in the Overview view.
General Properties
The following table describes the general properties that you configure for JMS data objects:
Property | Description |
---|
Name | The name of the JMS data object. |
Description | The description of the JMS data object. |
Connection | The name of the JMS connection. |
Objects Properties
The following table describes the objects properties that you configure for JMS data objects:
Property | Description |
---|
Name | The name of the topic or queue of the JMS source. |
Description | The description of the JMS source. |
Native Name | The native name of JMS source. |
Path Information | The type and name of the topic or topic pattern of the JMS source. |
JMS Data Object Read Operation Properties
The Data Integration Service uses read operation properties when it reads data from a JMS source. You can edit the format, run-time, and advanced properties.
General Properties
The Developer tool displays general properties for JMS sources in the Read view.
The following table describes the general properties that you view for JMS sources:
Property | Description |
---|
Name | The name of the JMS source. This property is read-only. You can edit the name in the Overview view. When you use the JMS source as a source in a mapping, you can edit the name in the mapping. |
Description | The description of the JMS source. |
Ports Properties
Ports properties for a physical data object include port names and port attributes such as data type and precision.
The following table describes the ports properties that you configure for JMS sources:
Property | Description |
---|
Name | The name of the JMS source. |
Type | The native data type of the source. |
Precision | The maximum number of significant digits for numeric data types, or the maximum number of characters for string data types. |
Scale | The scale of the data type. |
Description | The description of the resource. |
Sources Properties
The sources properties list the resources of the JMS data object. You can add or remove resources in the data object.
Run-time Properties
The run-time properties displays the name of the connection.
The following table describes the run-time property that you configure for JMS sources:
Property | Description |
---|
Connection | Name of the JMS connection. |
Advanced Properties
The Developer tool displays the advanced properties for JMS sources in the Output transformation in the Read view.
You can configure the following advanced properties for JMS sources:
Property | Description |
---|
Operation Type | Specifies the type of data object operation. This is a read-only property. |
JMS Destination | Name of the queue or topic to which the JMS provider publishes messages. The data object subscribes to JMS messages from this queue or topic. |
Client ID | Client identifier to identify the connection and set up a durable connections. |
Durable Subscription Name | Name of the durable subscription that can receive messages sent while the subscribers are not active. Durable subscriptions provide the flexibility and reliability of queues, but still allow clients to send messages to many recipients. |
JMS Message Selector | Criteria for filtering message header or message properties, to limit which JMS messages the data object receives. |
Guaranteed Processing | Guaranteed processing ensures that the mapping processes messages published by the sources and delivers them to the targets at least once. In the event of a failure, there could be potential duplicates but the messages are processed successfully. If the external source or the target is not available, the mapping execution stops to avoid any data loss. Select this option for guaranteed delivery of data streamed from the JMS sources. |
Column Projections Properties
The following table describes the columns projection properties that you configure for JMS sources:
Property | Description |
---|
Column Name | The name field that contains data. This property is read-only. |
Type | The native data type of the resource. This property is read-only. |
Enable Column Projection | Indicates that you use a schema to read the data that the source streams. By default, the data is streamed in binary format. To change the format in which the data is streamed, select this option and specify the schema format. |
Schema Format | The format in which the source streams data. You can select one of the following formats: |
Schema | Specify the XSD schema for the XML format or the sample JSON for the JSON format. For the Flat file format, configure the schema to associate a flat file to the source. When you provide a sample file, the Data Integration Service uses UTF-8 code page when reading the data. |
Column Mapping | The mapping of source data to the data object. Click View to see the mapping. |
Project Column as Complex Data Type | Project columns as complex data type for hierarchical data. For more information, see the Informatica Big Data Management User Guide. |
Configuring a Schema for Flat Files
Configure schema for flat files when you configure column projection properties.
1. On the Column Projection tab, enable column projection and select the flat schema format.
The page displays the column projection properties page.
2. On the column projection properties page, configure the following properties:
- - Sample Metadata File. Select a sample file.
- - Code page. Select the UTF-8 code page.
- - Format. Format in which the source processes data. Default value is Delimited. You cannot change it.
3. Click Next.
4. In the delimited format properties page, configure the following properties:
Property | Description |
---|
Delimiters | Specify the character that separates entries in the file. Default is a comma (,). You can only specify one delimiter at a time. If you select Other and specify a custom delimiter, you can only specify a single-character delimiter. |
Text Qualifier | Specify the character used to enclose text that should be treated as one entry. Use a text qualifier to disregard the delimiter character within text. Default is No quotes. You can only specify an escape character of one character. |
Preview Options | Specify the escape character. The row delimiter is not applicable as only one row is created at a time. |
Maximum rows to preview | Specify the rows of data you want to preview. |
5. Click Next to preview the flat file data object.
If required, you can change the column attributes. The data type timestampWithTZ format is not supported.
6. Click Finish.
The data object opens in the editor.