WebSphere Message Broker, Version 8.0.0.7 Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

See information about the latest product version

Resolving mapping and message reference problems when developing message flows

Advice for dealing with some common mapping and message reference problems that can arise when developing message flows:

Resources that are referenced by the mapping file cannot be resolved

  • Scenario: You have imported some message flows into the WebSphere® Message Broker Toolkit that contain mappings. An error is issued, indicating that the resources that are referenced by the mapping file cannot be resolved.
  • Explanation: Mappings can use resources that exist in other projects. For example, a mapping reference to a message set might exist in a different project. If the reference cannot be resolved, it probably means that the reference to the other project has been lost.
  • Solution: Create a new project reference. For more information, see Adding and removing library references.

Errors are issued when you import table schemas into the Graphical Data Mapping editor

  • Scenario: When you try to import and add table schemas in the Graphical Data Mapping editor, you encounter errors like:
    /flow2/schema1/SAMPLE.conxmi cannot be loaded.  
    The following error was reported: schema1/SAMPLE.conxmi
  • Explanation: This error usually means that you have the same database files under the same broker schema name in another project. The relative paths are the same, so the Graphical Data Mapping editor cannot resolve this ambiguity and does not know which table to add.
  • Solution: There are two courses of action:
    • If the table file already exists in the workspace, and this is what you want to use for mapping, reuse the file by clicking the Add database table schemas from workspace option in the Add Database Table Schemas dialog box.
    • If you want a different copy of the tables, rename the broker schema.

Warnings or errors are issued for message references

  • Scenario: Warnings or errors are issued for message references, yet you are certain that your references are correct.
  • Explanation: This is never the case with messages that are using the XML parser. For these message references, direct validation is not performed because the references could be used for generic XML.

    There is an ESQL editor preference that allows you to choose to ignore message reference mismatches, or to have them be reported as a warning or an error. By default, this type of problem is reported as a warning, so that you can still deploy the message flow.

  • Solution: To use the validation feature, ensure that you have set up a project reference from the project that contains the ESQL to the project that contains the message set. For more information, see Adding and removing library references.

    If you are using reference in a subroutine, take the following steps:

    1. Create a reference to the tree and the parser in the module's main procedure.
    2. Associate the reference to the correlation name, for example InputRoot or Root. Alternatively, create the OutputRoot.parser node, where parser is the name of the parser that you want to use.
    3. Pass the reference as a parameter to an ESQL subroutine that identifies the XSD type of the reference.

This practice is beneficial because the passed reference supports content assistance and validation for ESQL. The message type content properties open, or open defined are not used in validation, and the assumption is that this property is closed.

A $db:select out of scope error is generated when you map from a database source

  • Scenario: You have specified a database as the data source and when you save the map file, there is an error saying $db:select out of scope
  • Explanation: A $db:select expression must be within the scope of the $db:select entry in the Map Script column of the Spreadsheet pane, meaning that it must be a descendant of the select statement. If a $db:select expression is out of scope the Graphical Data Mapping editor moves the $db:select entry to a position where the $db:select expression is in scope. The $db:select expression can remain out of scope if it is positioned above the $db:select entry in the Map Script column of the Spreadsheet pane.
  • Solution: Delete the out of scope $db:select expression or move the $db:select entry in the Map Script column. You can drag the element out of the 'for' row, and then drag the $db:select entry in the Map Script column higher in the message, above the out of scope $db:select expression. Ensure that the out of scope $db:select expression is now a descendant of the $db:select entry.

A $db:proc out of scope error is generated when you map from a database stored procedure

  • Scenario: You have specified a stored procedure as the source and when you save the map file, there is an error saying $db:proc out of scope
  • Explanation: A $db:proc expression must be within the scope of the $db:proc entry in the Map Script column of the Spreadsheet pane, meaning that it must be a descendant of the stored procedure statement. If a $db:proc expression is out of scope the Graphical Data Mapping editor moves the $db:proc entry to a position where the $db:proc expression is in scope. The $db:proc expression can remain out of scope if it is positioned above the $db:proc entry in the Map Script column of the Spreadsheet pane.
  • Solution: Delete the out of scope $db:proc expression or move the $db:proc entry in the Map Script column. You can drag the $db:proc entry in the Map Script column higher in the message, above the out of scope $db:proc expression. Ensure that the out of scope $db:proc expression is now a descendant of the $db:proc entry.

A $db:func out of scope error is generated when you map from a database user-defined function

  • Scenario: You have specified a user-defined function as the source and when you save the map file, there is an error saying $db:func out of scope
  • Explanation: A $db:func expression must be within the scope of the $db:func entry in the Map Script column of the Spreadsheet pane, meaning that it must be a descendant of the user defined function statement. If a $db:func expression is out of scope the Graphical Data Mapping editor moves the $db:func entry to a position where the $db:func expression is in scope. The $db:func expression can remain out of scope if it is positioned above the $db:func entry in the Map Script column of the Spreadsheet pane.
  • Solution: Delete the out of scope $db:func expression or move the $db:func entry in the Map Script column. You can drag the $db:func entry in the Map Script column higher in the message, above the out of scope $db:func expression. Ensure that the out of scope $db:func expression is now a descendant of the $db:func entry.

Target is not referencing a valid variable warning when you set the value of a target

  • Scenario: You have set the value for a target to a variable, such as a WebSphere MQ constant, and when you save the map file the warning The target "$target" is not referencing a valid variable is generated.
  • Explanation: The variable that you have referenced is not recognized. For example, you might have entered an expression of the form $mq: followed by a WebSphere MQ constant, but the constant is not recognized. This might be because the variable has been entered incorrectly or it is not supported. Alternatively, you might be referencing a new variable or constant that can be resolved only at run time. If this is the case you can ignore the warning.
  • Solution: Try one of the following to solve the problem:
    • Check that the variable has been entered correctly.
    • If you are using WebSphere MQ constants, use Edit > Content Assist to select from the list of available WebSphere MQ constants.

There are missing or unexpected targets in a message map

  • Scenario: In your message map, warning messages are displayed that indicate a target element is missing, or a target element is at an unexpected location. As a result the output message generated by the message map might be incorrect.
  • Explanation: If target elements are missing from the Spreadsheet pane when you edit and save the message map, a warning is displayed that a target is missing. This situation can occur if you use the Insert Children wizard and do not select all the required elements, or if you create mappings using the drag-and-drop method and do not create mappings for all the required fields. If target elements in the Spreadsheet pane are in an unexpected order, a warning that the element is unexpected at that location is displayed. This situation can occur if you drag elements to new locations in the Spreadsheet pane.
  • Solution: To solve the problem:
    • Use Insert Children on the parent element to add any missing target elements to the Spreadsheet pane.
    • Drag any target elements that are in an unexpected location to the correct location. Use the message tree in the Target pane as a guide to the expected structure of the output message.

Error message BIP6118 is issued: The remaining bitstream is too small contain the indicated structure.

  • Scenario: You have used an unsupported message domain for a target message in your message map.
  • Explanation: The message domain that is associated with a target message is determined by the Message Domain property of your message set. Mapping nodes generate a target message that matches the message domain of the message set. Using a message domain that is not supported by the message mapper can result in an output message with a structure that is not valid for the chosen parser.
  • Solution: To solve the problem, change the target message domain for your message set.

Error message BIP4680 is issued: Unsupported message domain encountered in mapping node.

  • Scenario: You have used an unsupported message domain for a target message in your message map, for example BLOB.
  • Explanation: The message domain that is associated with a target message is determined by the Message Domain property of your message set. Mapping nodes generate a target message that matches the message domain of the message set. Using a message domain that is not supported by the message mapper can result in an output message with a structure that is not valid for the chosen parser.
  • Solution: To solve the problem, change the target message domain for your message set.
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2016Copyright IBM Corporation 1999, 2016.

        
        Last updated:
        
        Last updated: 2016-05-23 14:47:37


Task topicTask topic | Version 8.0.0.7 | au16533_