Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.此内容没有您所选择的语言版本。
Chapter 7. To Trace a Message Through a Route
Abstract
					This tutorial walks you through the process of tracing a message through a route.
				
Goals
复制链接链接已复制到粘贴板!
			In this tutorial you will:
		
- run the CBRroute in the Fuse Integration perspective
- enable tracing on the CBRroute
- drop messages onto the CBRroute and track them through all route nodes
Prerequisites
复制链接链接已复制到粘贴板!
			To complete this tutorial you will need the 
CBRroute project you updated in Chapter 5, To Add Another Route to the CBR Routing Context.
		Note
				If you skipped any tutorial after Chapter 2, To Create a New Route, you can use the prefabricated 
camelContext6.xml file to work through this tutorial (for details, see Chapter 1, Using the Fuse Tooling Resource Files).
			Accessing Fuse Integration perspective
复制链接链接已复制到粘贴板!
			To open Fuse Integration perspective and optimally arrange its layout:
		
- NoteYou can use the Open Perspective icon ( ) in the perspectives tab to access the list of available perspectives. ) in the perspectives tab to access the list of available perspectives.Figure 7.1. Fuse Integration perspective NoteTo make it easy to access a Camel Context.xmlfile, especially when a project consists of multiple contexts, the tooling lists them in theCamel Contextsfolder, beneath the project's root folder in Project Explorer; for example:
- Drag the Diagram View tab and the Shell tab, located to the left of the JMX Navigator tab, and drop them to the right of the JMX Navigator tab, as shown in Figure 7.2.Figure 7.2. Fuse Integration perspective rearranged This layout will provide more space for Diagram View to display the route's nodes in a graphical representation, enabling you to visually trace the path that messages take in traversing the routing context.
Starting message tracing
复制链接链接已复制到粘贴板!
			To start message tracing on the CBRroute project:
		
- In Project Explorer, expand theCBRrouteproject to expose thesrc/main/resources/OSGI-INF/blueprint/camelContext.xmlfile.
- Selectfrom the camelContext.xmlfile's context menu.
- In JMX Navigator, expand Local Processes.
- Double clickLocal Camel Context[Id][Disconnected]to connect to it and expand the elements of your route, as shown in Figure 7.3, “Route elements in JMX Navigator”.Figure 7.3. Route elements in JMX Navigator 
- Right-click the node to open the context menu, and select .The tooling displays a graphical representation of your route in Diagram View, as shown in Figure 7.4.Figure 7.4. Routes' graphical representation 
Dropping messages on the running CBRroute project
复制链接链接已复制到粘贴板!
			To drop messages on the running CBRroute project:
		
- In Project Explorer, expandCBRroute/src/data, so you can access the message files (message1.xmlthroughmessage6.xml), as shown in Figure 7.5, “Message files in CBRroute project”.Figure 7.5. Message files in CBRroute project 
- Dragmessage1.xmland drop it on theblueprintContext>Endpoints>file>src/data?noop=truenode in JMX Navigator, as shown in Figure 7.6.Figure 7.6. Local Camel Context tree expanded to input source node As the message traverses the route, the tooling traces and records its passage at each step. To update Diagram View with the new message count, you need to click theblueprintContextnode in JMX Navigator.NoteTheLocal Camel Context[xxx]tree collapses to theblueprintContextnode after you drop the next message on the input src node. You need not re-expand it. When dragging the other messages, hover over each node in the tree to expose the next node, until you reach thesrc/data?noop=truenode. Then drop the message on it. This method prevents the tooling from redrawing the graphical representation in Diagram View.
Initializing and configuring Messages View
复制链接链接已复制到粘贴板!
			You need to initialize Messages View before it will display message traces. You also need to configure the columns in Messages View to persist across all message traces.
		
- Switch from Console to Messages View.
- Click theblueprintContextnode in JMX Navigator to initialize Messages View withmessage1.xml's details.NoteYou can control columnar layout in all of the tooling's tables. Use the drag method to temporarily rearrange tabular format. For example, drag a column's border rule to expand or contract its width. To hide a column, totally contract its borders. Drag the column header to relocate a column within the table. For your arrangement to persist, you must use themethod instead. 
- In Messages View, click the icon on the panel's menu bar, and select  to open the  wizard, as shown in Figure 7.7. icon on the panel's menu bar, and select  to open the  wizard, as shown in Figure 7.7.Figure 7.7. Configure Columns defaults NoteNotice that the message header,Destination, which you set for the messages in your routing context, appears in the list.You can include or exclude items from Messages View by selecting or deselecting them. You can rearrange the columnar order in which items appear in Messages View by highlighting individual, selected items and moving them up or down in the list.
- In the Configure Columns wizard, select and order the items as shown in Figure 7.8.Figure 7.8. Configure Columns set These items and their order will persist in Messages View until you change them again.
Arranging Diagram View
复制链接链接已复制到粘贴板!
			To see all message flow paths clearly, you'll probably need to rearrange the nodes by dragging them to fit neatly in Diagram View. You may also need to adjust the size of the other views and tabs in Red Hat JBoss Developer Studio to allow Diagram View to expand.
		
Stepping through message traces
复制链接链接已复制到粘贴板!
			To step through the message traces:
		
- In Messages View, click the (Refresh button) on top, right of the panel's menu bar to populate the view with (Refresh button) on top, right of the panel's menu bar to populate the view withmessage1.xml's message traces.Each time you drop a message on the inputsrcnode in JMX Navigator, you need to refresh Messages View to populate it with the message traces.
- Click one of the message traces to see more details about it in Properties view, as shown in Figure 7.9.Figure 7.9. Message trace selected The tooling displays the details about a message trace (including message headers when they are set) in the top half of the Properties panel and the contents of the message instance in the bottom half of the Properties panel. So, if your application sets headers at any step within a route, you can check the Message Details to see whether they were set as expected.You can step through the message instances by highlighting each one to see how a particular message traversed the route and whether it was processed as expected at each step in the route.In Diagram View, the associated step in the route is highlighted, as shown in Figure 7.10.Figure 7.10. Diagram View: message trace node 
Finishing up
复制链接链接已复制到粘贴板!
- Dragmessage2.xmland drop it on theblueprintContext>Endpoints>file>src/data?noop=truenode in JMX Navigator.Hover over each node in the tree until you expose thesrc/data?noop=truenode, then dropmessage2.xmlon it.
- Switch from Console to Messages View.
- In Messages View, click the (Refresh button) on top, right of the panel's menu bar to populate the view with (Refresh button) on top, right of the panel's menu bar to populate the view withmessage2.xml's message traces.NoteAs shown in Figure 7.11, the tooling draws the route in Diagram View, tagging paths exiting a processing step with timing and performance metrics (in milliseconds). Only the metric Total exchanges is displayed in the diagram.Figure 7.11. Fuse Integration perspective's message tracing components Hovering over the displayed metrics reveals additional metrics about message flow, as shown in Figure 7.12.Figure 7.12. Additional message metrics - mean time the step took to process a message
- maximum time the step took to process a message
- minimum time the step took to process a message
 
- When done:- In JMX Navigator, right-click and select from the context menu.
- Open the Console and click the button in the upper right of the panel to stop the Console. Then click the button in the upper right of the panel to stop the Console. Then click the button to clear console output. button to clear console output.
 
Next steps
复制链接链接已复制到粘贴板!
			After you create a JUnit test case for your project, you can run your project with it, as described in Chapter 8, To Test a Route with JUnit.
		
 
     
     
     
     
     
     
     
     
     
     
     
    