How to enable TDS parser to display TDS frames when SQLServer is listening on port other than default 1433

If you try to view a netmon trace in Netmon 3.4, you will see TDS traffic is nicely parsed for you. You will see a display similar to this:

clip_image001

The parsing works nicely because SQLServer is listening on default tcp port 1433. But, if your SQLServer is listening on a different port (other than 1433), then these TDS parsing won't work by default. You will see a display similar to this (no frames resolving to TDS):

clip_image002

To enable the parser to parse TDS traffic for ports other than 1433 (in this case, 63959), we need to take following steps:

1. Click on "Parsers" tab in netmon UI. This will display list of parsers installed. You will see tcp.npl, tds.npl along with several different parsers

clip_image003

2. Double click on tcp.npl and search for "1433", you will get into a switch/case code block saying "case 1433". We basically need to include our port 63959 here. Just add a case statement above “case 1433” without any parsing code.

case 63959:

case 1433:

//TDS-parsing code goes here

 

This is what it’s look like after the change:

 

image

3. Save your changes

4. Reload your netmon trace, now it should look like following. With the change, TDS parser will resolve TDS traffic on this particular non-default port (63959).

clip_image005

Author : Enamul(MSFT), SQL Developer Technical Lead