Skip to Content

Ribo - Tracing TDS trace between IQ and IQ


Ribo diagnostic utility can be used to trace TDS protocol stream between TDS client and TDS Server . TDS client include jConnect, JDBC,
isql, dbisql , SAP Sybase Adaptive Server Enterprise and SAP Sybase SQL Anywhere ODBC driver and Open Client.
TDS Servers include SAP Sybase Adaptive Server Enterprise, SAP Sybase SQL Anywhere and SAP Sybase IQ.  Ribo
works with TDS 5.x and above. For TDS 5.0 Funcational specs see:

Ribo can be used  in following 3 modes:


  • Dump TDS protocol stream to a file
  • Translate captured TDS dump to an Ascii format
  • Capture a TDS dump to a file and translate the
    protocol’s text representation to the screen or a GUI Window


Ribo is located  under $SYBASE/jutils-3_0/ribo.


Ribo Syntax:


[sybase@redhead shared]$ $RIBO_HOME/Ribo -h

Capture usage:  Ribo [-l <listen_port>] [-s
<server_host>] [-p <server_port>]

-c <capture_file_prefix>] [-t [<trans_file_prefix>]] [-gui] [-d]

[-f<filter_file>] [-h]

-l<listen_port>   - port number to listen on, (default: 5005)

-s<server_host>   - server hostname, (default: localhost)

-p <server_port>   - server port number, (default: 2638)

-c<capture_file_prefix> - prefix is the filename prefix for saving the captured data,
(default: cap)

-t[<trans_file_prefix>] - captured data is translated to a file,

<trans_file_prefix> is the prefix for s
aving the translated output, (default: %5s)

-gui     - use the UI interface

-d       - Displays translated data while capturing

-f<filter_file>   - filter file for translating TDS

-h    - this help message

-v    - show
version information

   Translator usage: Ribo
<input_capture_file> [<output_file>]

<input_capture_file> - capture file to by analyzed

[<output_file>]      - filename to save translated output

if ommited, translated data is sent to STDOUT


  1. Set $JAVA_HOME and $RIBO_HOME environment variables

        setenv RIBO_HOME $SYBASE/jutils-3_0/ribo


    setenv JAVA_HOME $SYBASE/shared/JRE-6_0_24_64BIT

   2.  Add Ribo entry in $SYBASE/interfaces


                   master tcp ether redhead 5000

                   query tcp ether redhead 5000


    3. Start Ribo


            [sybase@redhead data1541]$ $RIBO_HOME/Ribo -s redhead -l 5000 -p 9631 -d    &

           -s  redhead (host machine name)

           -l  5000 (Ribo port)

          - p 9631 ( IQ 16 port)


         So instead of IQ (15.4)->IQ (16.0) we have IQ (15.4) ->Ribo -> IQ (16.0)

  4. Create odbc dsn for Ribo in odbc.ini










  5.  Add Ribo as remote server

        create server Ribo class 'SAODBC' using 'dsn=Ribo'

   6. If login on remote server is different then create externlogin


Create externlogin  “DBA”  to “Ribo” remote login ‘DBA’  identified by ‘sql’


   7. Run insert location command


       (DBA)> insert t1 location 'Ribo.iqdb' {select * from t1}


new connection from: /

Sending captured traffic to: cap0.tds

2 row(s) inserted

Execution time: 0.385 seconds

Closing dump file cap0.tds

  8.   Capture files should be generated in directory from where Ribo wsa started.

9. Convert capn.tds to tds

          $RIBO_HOME/Ribo cap0.tds >tds0.out

Same steps can be used to setup Ribo between
ASE and IQ

No comments