Table of Contents

Search

  1. Preface
  2. Understanding PowerExchange for JMS
  3. Configuring PowerExchange for JMS
  4. Working with JMS Sources and Targets
  5. Creating and Configuring JMS Workflows
  6. Appendix A: JMS Datatype Reference
  7. Appendix B: Glossary of Terms

PowerExchange for JMS User Guide for PowerCenter

PowerExchange for JMS User Guide for PowerCenter

Troubleshooting JMS Workflows

Troubleshooting JMS Workflows

I ran a session to write JMS messages to a WebSphere MQ JMS provider. The session completed successfully, but the target messages do not contain property fields.
When you configured the connection factory in JNDI for the WebSphere MQ JMS provider, you set the TARGETCLIENT value to MQ. When WebSphere MQ JMS receives target messages, it translates them to WebSphere MQ message format. Messages in WebSphere MQ format contain header fields and a body field. They do not contain property fields.
To receive target messages with property fields, set the value for TARGETCLIENT to JMS in your JNDI configuration, and run the session again. For information about the format of property fields in WebSphere MQ JMS messages, see the WebSphere MQ JMS documentation.
I ran a session to write data from an WebSphere MQ JMS source to a JMS target. The session failed because the PowerCenter Integration Service rejected data from the following header fields: JMSDestination, JMSReplyTo, and JMSMessageID.
When you have a mapping that passes JMS message header data from a JMS source to a JMS target and the source is WebSphere MQ JMS, WebSphere MQ JMS prepends data to the data in the JMSDestination, JMSReplyTo, and JMSMessageID header fields.
For example, the PowerCenter Integration Service writes data from the JMSDestination field in the source to the JMSDestination field in the target. The value for the JMSDestination field in the source is JMS_1. When the PowerCenter Integration Service writes the data to the target, the value is queue://QM_pcserv/JMS_1. The PowerCenter Integration Service rejects the message.
Use an Expression transformation in the mapping to extract the correct value and pass it to the target.
I ran a session to read data from a JMS source and write the data to a non-JMS target. The message ID value for the JMSMessageID field begins with “ID:” instead of only containing the message ID.
When you have a mapping that passes data from the JMSMessageID field in a JMS source to a non-JMS target, JMS includes the string “ID:” in the JMSMessageID field. To remove the “ID:” characters before the message ID, you must use an Expression transformation in the mapping.
I ran a session to write messages to an WebSphere MQ JMS target. The commit interval for the session was high. The session failed due to a JMS exception. It failed to send messages to the WebSphere MQ queue.
When you run a session with a high commit interval to write message to an WebSphere MQ JMS target, the PowerCenter Integration Service writes messages to WebSphere MQ JMS. WebSphere MQ JMS writes the messages to a cache file. Because the commit interval is high, the cache file might run out of memory. As a result, the session fails. To prevent the session from failing, lower the commit interval. Or, increase the size of the WebSphere MQ cache file.
I tried to run several sessions simultaneously to read messages from multiple JMS sources and write the messages to a single target. The sessions used the Idle Time terminating condition and completed when the Idle Time condition was met. When the sessions completed, the session log reported that the PowerCenter Integration Service only read a small number of messages from the source during some sessions.
When you run multiple sessions simultaneously to read messages from multiple JMS sources and write the messages to a single target, the PowerCenter Integration Service might not read messages from the source for a few moments while it writes data to the target. As a result, the PowerCenter Integration Service meets the Idle Time terminating condition and ends the session. To make sure that each session reads the appropriate number of messages, specify a higher value for the Idle Time terminating condition.
I receive the following error message when I run a JMS session with an WebSphere MQ provider:
MAPPING> [JAVA PLUGIN] [ERROR] Unable to load message catalog - mqji
This error message appears even if the session completes successfully. To prevent the error message from displaying, include the <WebSphere MQ JMS>\lib directory in the CLASSPATH.

0 COMMENTS

We’d like to hear from you!