Tracing SOAP messages with tcpmon

You can trace SOAP messages that request web services by using the tcpmon tool.

Before you begin

You can use other trace tools to trace SOAP messages, similar to how you can trace web services components. See the tracing web services information to learn more about these other trace tools.

It is not recommended that you use the tcpmon tool in a stressed environment. Tcpmon is only for monitoring SOAP messages in a lightweight environment.

About this task

You can trace SOAP messages exchanged between a client and the server by installing a monitor or sniffer application to capture the HTTP traffic between the two points. The application server product provides a utility class, com.ibm.ws.webservices.engine.utils.tcpmon, to trace the SOAP messages. The com.ibm.ws.webservices.engine.utils.tcpmon class redirects messages from a port, records the messages, and forwards the messages to another port.

WebSphere® Application Server typically listens on port 9080, or port 80 if you are using IBM® HTTP Server. The tcpmon process can be configured to listen on a particular port, such as 9088, while redirecting messages to another port, such as 9080 or port 80. The client is redirected to use port 9088 to access web services.

Redirecting an application client to a different port is done by changing the SOAP address in the client Web Services Description Language (WSDL) file to use port 9088 and then running the wsdeploy command-line tool on the client enterprise archive (EAR) file to regenerate the service implementation.

The wsdeploy command is supported by Java™ API for XML-based RPC (JAX-RPC) applications. The Java API for XML-Based Web Services (JAX-WS) programming model that is implemented by the application server does not support the wsdeploy command. If your web services application contains only JAX-WS endpoints, you do not need to run the wsdeploy command, as this command is used to process only JAX-RPC endpoints.

Procedure

  1. Run the following command to see if Java is in your path:
    java -fullversion
    • If you received output that indicates the Java version, proceed to the next step.
    • If you did not receive an output that indicates the Java version, set up your environment to use Java. Follow the procedure in Setting up a development environment for web services to set up your environment.
  2. Start tcpmon:
    • Change the directory to app_server_root/runtimes.
    • Run the following command to start a window labeled TCPMonitor:
      
      java -cp com.ibm.ws.webservices.thinclient_8.5.0.jar com.ibm.ws.webservices.engine.utils.tcpmon
      

Results

The messages exchanged between the client and server display in the TCPMonitor Request and Response pane.

What to do next

Save the message data and analyze it.