Vous êtes sur la page 1sur 6

Using Debugger Debugger Session Types You can select three different debugger session types when you

configure the Debugger. The Debugger runs a workflow for each session type. You can choose from the following Debugger session types when you configure the Debugger: Use an existing non-reusable session: The Debugger uses existing source, target, and session configuration properties. When you run the Debugger, the Integration Service runs the non-reusable session and the existing workflow. The Debugger does not suspend on error. Use an existing reusable session: The Debugger uses existing source, target, and session configuration properties. When you run the Debugger, the Integration Service runs a debug instance of the reusable session and creates and runs a debug workflow for the session. Create a debug session instance: You can configure source, target, and session configuration properties through the Debugger Wizard. When you run the Debugger, the Integration Service runs a debug instance of the debug workflow and creates and runs a debug workflow for the session The following figure shows the windows in the Mapping Designer that appears when you run the Debugger:

Note: You cannot create breakpoints for mapplet Input and Output transformations . Creating Error Breakpoints When you create an error breakpoint, the Debugger pauses when the Integration Service encounters error conditions such as a transformation error or calls to the ERROR function .

You also set the number of errors to skip for each breakpoint before the Debugger pauses: - If you want the Debugger to pause at every error, set the number of errors to zero. - If you want the Debugger to pause after a specified number of errors, set the number of errors greater than zero. For example, if you set the number of errors to five, the Debugger skips five errors and pauses at every sixth error. Using ISNULL and ISDEFAULT You can create ISNULL and ISDEFAULT conditions in transformation and global data breakpoints. When you use the ISNULL or ISDEFAULT operator, you cannot use the type or value in the condition. When you create an ISNULL condition, the Debugger pauses when the Integration Service encounters a null input value, and the port contains the system default value. When you create an ISDEFAULT condition, the Debugger pauses in the following circumstances: - The Integration Service encounters an output transformation error, and the port contains a userdefined default value of a constant value or constant expression. - The Integration Service encounters a null input value, and the port contains a user-defined default value of a constant value or constant expression.

Running an Existing Session in Debug Mode If you choose to run an existing session in debug mode, the Debugger Wizard displays a list of all sessions in the current folder that use the mapping. Select the session you want to use. You cannot run the Debugger against a session configured with multiple partitions or a session configured to run on a grid. You must either change the properties of the session or choose to create a debug session for the mapping.

Set Target Options On the last page of the Debugger Wizard, you can select the following target options: Discard target data: You can choose to load or discard target data when you run the Debugger . If you discard target data, the Integration Service does not connect to the target . Display target data: You can select the target instances you want to display in the Target window while you run a debug session. When you click Finish, if the mapping includes mapplets, the Debugger displays the mapplet instance dialog box. Select the mapplets from this dialog box that you want to debug. To clear a selected mapplet, press the Ctrl key and select the mapplet.

When you select a mapplet to debug, the Designer expands it to display the individual transformations when the Debugger runs. When you do not select a mapplet to debug, the Designer does not expand it in the workspace. You cannot complete the following tasks for transformations in the mapplet: - Monitor or modify transformation data. - Evaluate expressions. - Edit breakpoints. - Step to a transformation instance. The Debugger can be in one of the following states: Initializing: The Designer connects to the Integration Service. Running: The Integration Service processes the data. Paused: the Integration Service encounters a break and pauses the Debugger . Note: To enable multiple users to debug the same mapping at the same time, each user must configure different port numbers in the Tools > Options > Debug tab. The Debugger does not use the high availability functionality . The following table describes the different tasks you can perform in each of the Debugger states:

Working with Persisted Values When you run the Debugger against mappings with sequence generators and mapping variables, the Integration Service might save or discard persisted values: Discard persisted values: The Integration Service does not save final values of generated sequence numbers or mapping variables to the repository when you run a debug session or you run a session in debug mode and discard target data . Save persisted values: The Integration Service saves final values of generated sequence numbers and mapping variables to the repository when you run a session in debug mode and do not discard target data. You can view the final value for Sequence Generator and Normalizer transformations in the transformation properties.

Designer Behavior When the Debugger starts, you cannot perform the following tasks: - Close the folder or open another folder. - Use the Navigator. - Perform repository functions, such as Save. - Edit or close the mapping. - Switch to another tool in the Designer, such as Target Designer. - Close the Designer. Note: Dynamic partitioning is disabled during debugging. Monitoring the Debugger When you run the Debugger, you can monitor the following information: Session status: Monitor the status of the session. Data movement: Monitor data as it moves through transformations. Breakpoints: Monitor data that meets breakpoint conditions. Target data: Monitor target data on a row-by-row basis. The Mapping Designer displays windows and debug indicators that help you monitor the session: Debug indicators: Debug indicators on transformations help you follow breakpoints and data flow. Instance window: When the Debugger pauses, you can view transformation data and row information in the Instance window. Target window: View target data for each target in the mapping. Output window: The Integration Service writes messages to the following tabs in the Output window: - Debugger tab: The debug log displays in the Debugger tab. - Session Log tab: The session log displays in the Session Log tab. - Notifications tab: Displays messages from the Repository Service.

You can step to connected transformations in the mapping, even if they do not have an associated breakpoint. You cannot step to the following instances: - Sources - Targets - Unconnected transformations - Mapplets not selected for debugging Modifying Data When the Debugger pauses, the current instance displays in the Instance window, and the current instance indicator displays on the transformation in the mapping. You can make the following modifications to the current instance when the Debugger pauses on a data breakpoint : Modify output data: You can modify output data of the current transformation. When you continue the session, the Integration Service validates the data. It performs the same validation it performs when it passes data from port to port in a regular session. Change null data to not-null: Clear the null column, and enter a value in the value column to change null data to not-null. Change not-null to null: Select the null column to change not-null data to null. The Designer prompts you to confirm that you want to make this change.

Modify row types: Modify Update Strategy, Filter, or Router transformation row types . For Router transformations, you can change the row type to override the group condition evaluation for user defined groups. For example, if the group condition evaluates to false, the rows are not passed through the output ports to the next transformation or target. The Instance window displays <no data available>, and the row type is filtered. If you want to pass the filtered row to the next transformation or target, you can change the row type to Insert . Likewise, for a group that meets the group condition, you can change the row type from insert to filtered. After you change data, you can refresh the cache before you continue the session . When you issue the Refresh command, the Designer processes the request for the current transformation, and you can see if the data you enter is valid. You can change the data again before you continue the session Restrictions You cannot change data for the following output ports: Normalizer transformation: Generated Keys and Generated Column ID ports. Rank transformation: RANKINDEX port. Router transformation: All output ports. Sequence Generator transformation: CURRVAL and NEXTVAL ports. Lookup transformation: NewLookupRow port for a Lookup transformation configured to use a dynamic cache. Custom transformation: Ports in output groups other than the current output group. Java transformation: Ports in output groups other than the current output group.
Additionally, you cannot change data associated with the following: - Mapplets that are not selected for debugging - Input or input/output ports - Output ports when the Debugger pauses on an error breakpoint