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 write to JMS targets.
JMS providers are message-oriented middleware systems that send JMS messages. The JMS data object connects to a JMS provider to write data.
The JMS data object can write JMS messages to a JMS provider. 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 write data operation properties, specify the format in which the JMS data object writes 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 or Flat format, 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 Write Operation Properties
The Data Integration Service uses write operation properties when it writes data to a JMS source. You can edit the format, run-time, and advanced properties.
General Properties
The Developer tool displays general properties for JMS targets in the Write view.
The following table describes the general properties that you view for JMS targets:
Property | Description |
---|
Name | The name of the JMS target. This property is read-only. You can edit the name in the Overview view. When you use the JMS target as a target in a mapping, you can edit the name in the mapping. |
Description | The description of the JMS target. |
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 targets:
Property | Description |
---|
Name | The name of the JMS target. |
Type | The native data type of the target. |
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. |
Target Properties
The target 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 targets:
Property | Description |
---|
Connection | Name of the JMS connection. |
Advanced Properties
The Developer tool displays the advanced properties for JMS targets in the Input transformation in the Write view.
You can configure the following advanced properties for JMS targets:
Property | Description |
---|
Operation Type | Specifies the type of data object operation. This is a read-only property. |
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. |
Message Type | The format in which the message is written to the target. Specify one of the following formats: |
Column Projections Properties
The following table describes the columns projection properties that you configure for JMS targets:
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 publish the data to the target. 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 you stream data to the target. You can select one of the following formats: |
Schema | Specify the XSD schema for the XML format, and the sample JSON for the JSON format. For the Flat file format, configure the schema to associate a flat file. |
Column Mapping | The mapping of source data to the data object. Click View to see the mapping. |