Skip to end of metadata
Go to start of metadata

Purpose

This wiki helps to understand GUIProx TDS tracing tool.

GUI Prox is great for tracing client to ASE connections with timestamp, hex, capture files and ssl.

Overview

GUI Prox was create internally for TDS tracing.  This tool is like Ribo, however GUI Prox records raw hex data, allows http/ldap/ftp traffic to pass-through in hex mode,  ssl decoding, and performance timestamps.

Hex Data Dump

This filter allows GUIProx to display hex data.  This information can be helpful in checking the TDS messages sent back and forth.

Here is a sample of a commend sent from isql to ASE:
00000000: 0f 01 00 1f  00 00 00 00  21 12 00 00  00 00 73 65  ........!.....se
00000010: 6c 65 63 74  20 40 40 76  65 72 73 69  6f 6e 0a     lect @@version.

SQL Statements

SQL statements gives TDS more of a structure.  This will show who is sending what information. It will also show SQL commands that are sent.
Here is the same output from running an isql statement to ASE:

Thread-0: Opening socket to Server
Thread-0: Client->Server: read 512 from client
Thread-0: Client->Server: read 107 from client
Thread-1: Server->Client: packetSize set to 2048
Thread-1: Server->Client: read 165 from server.
Thread-1: Server->Client: Writing ..
Thread-0: Client->Server: read 31 from client
SQL Statement : select @@version
Thread-1: Server->Client: read 165 from server.
Thread-1: Server->Client: Writing ..
Thread-0: Client->Server: read 10 from client
Thread-1: Server->Client: read 17 from server.
Thread-1: Server->Client: Writing ..
Thread-0: Client->Server Exception: : java.lang.Exception: Failed to read from client
Thread-1: Server->Client: Failed to close: java.lang.NullPointerException
Thread-0: Client->Server: Failed to close client server sockets:

TimeStamp logging

Timestamp is one of the biggest reasons to use GUIProx.  Timestamp allows you to see when the command was executed and how long it took to do so.

 [2016-04-06 15:50:18.911] Thread-0: Opening socket to Server
[2016-04-06 15:50:18.917] Thread-0: Client->Server: read 512 from client
[2016-04-06 15:50:18.918] Thread-0: Client->Server: read 107 from client
[2016-04-06 15:50:18.952] Thread-1: Server->Client: packetSize set to 2048
[2016-04-06 15:50:18.953] Thread-1: Server->Client: read 165 from server. response time was 33.843 ms.
2016-04-06 15:50:18.953] Thread-1: Server->Client: Writing ..
[2016-04-06 15:50:27.449] Thread-0: Client->Server: read 31 from client, think time was 8496.36 ms.
[2016-04-06 15:50:27.481] Thread-1: Server->Client: read 165 from server. response time was 31.281 ms.
[2016-04-06 15:50:27.481] Thread-1: Server->Client: Writing ..
[2016-04-06 15:50:28.68] Thread-0: Client->Server: read 10 from client, think time was 1200.21 ms.
[2016-04-06 15:50:28.712] Thread-1: Server->Client: read 17 from server. response time was 30.816 ms.
[2016-04-06 15:50:28.712] Thread-1: Server->Client: Writing ..
[2016-04-06 15:50:28.712] Thread-0: Client->Server Exception: : java.lang.Exception: Failed to read from client
[2016-04-06 15:50:28.712] Thread-1: Server->Client: Failed to close: java.lang.NullPointerException
[2016-04-06 15:50:28.713] Thread-0: Client->Server: Failed to close client server sockets: 

GUI Viewable Output

This will allow you to display the trace live, without having to stop the connection. 
Select the "Show Data" button to view this popup.

Log to stdout

This will allow you to display the data in the GUIProx cmd prompt or putty session.

Lilo logging

The GUI Viewable output or Show Data button is now logged into a file where GuiProx was ran.  The file name will be Lilo.dbg

ssl debugging

This is to start Ribo in SSL mode. Once you select SSL Debugging you will have new textboxes where you will be required to add ssl certificates. GuiProx can then read encrypted packets from the client to the ASE.
The new textboxes with example values:
Keystore location = C:\sybase\jutils-3_0\ribo\keystore
Keystore password = changeit
Truststore location = C:\sybase\jutils-3_0\ribo\truststore
Truststore Password = changeit

If you need help setting this up see related sap notes/kbas at the bottom.

remote port is ssl

Remote port is ssl is telling Ribo that you are connecting to an ASE that has ssl enabled.  Check this box if you have ssl debugging checked.

capture tds to file

Enabling capture tds to file will record the TDS packets and will save these log files where GuiProx run location.
This is the same information that is displayed when selecting the ShowTds button.
This file is not humanly readable and will need to be converted to text by Ribo.
Ribo cap0.tds cap0.txt

Related Content

Related Documents

Cannot add GUIProx.ini or GUIProx15.jar in a wiki.
See KBA attached 

Related sap notes/kbas

2300141 - How to setup Guiprox for SSL TDS tracing