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:

http://www.sybase.com/detail?id=1013412

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

Steps:

  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

              Ribo

                   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

 

            [Ribo]

       DRIVER=/sybase/rel154_iq_esd2/IQ-15_4/lib64/libdbodbc12.so

       EngineName=Ribo

       CommLinks=tcpip(host=redhead;port=5000)

       Userid=DBA

       Password=sql

       AutoStop=no

       DatabaseName=iqdb

  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}

 

     Accepting
new connection from: /10.172.104.109

Sending captured traffic to: cap0.tds

2 row(s) inserted

Execution time: 0.385 seconds

(DBA)>
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

Tags:

No comments