Hi
I'm trying to get DBD::Teradata to work.

The environment is:
Solaris 10
Perl 5.8.7  (64 bit)
DBI 1.604
DBD::Teradata 1.50 
Teradata client - TTU 13.0 SOLARIS SPARC cliv2.13.00.00.00
Teradata Server - V2R6.1

The sequence of events is:

(1) I changed Makefile.Pl to get these settings for Libraires, Includes
and Compile flags
    to allow it to compile.
    The additional compile flags were taken from
        use Config;
        print $Config{ccflags}, "\n";

*       DBD::Teradata will be built using the following
*       directives:
*       Libraries: -L/usr/lib/sparcv9 -lcliv2 -lnet -lsocket -lresolv
-ltdusr
*                  -L/opt/teradata/teragss/solaris-sparc/13.00.00.00/lib
-ltdgss
*       Include files: -I/usr/include
*       Compile flags: -D__error_t_defined=1 -xarch=generic64
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

(2) After I got it to compile, error 302 occurred when trying to connect
to a database.
    I got more info by setting these 2 environment variables:
    $ENV{NETRACE} = 1;
    $ENV{COPANOMLOG} = "/tmp/install/teradata/log/netrace_$dte";

    SCBinit: NOMEM[1] Error cur_req_buf_len is 65536 maxlen is 32768
    DBCHCL: CLICON returned [302]

    RCBinit: buffer too big [63000], max [32768]
    DBCHCL: CLICON returned [302]

    Error 302 is invalid buffer size.

    I tried changing req_buf_len & resp_buf_len by setting tdat_reqsize
& tdat_respsize to 1024
    when connecting but it didn't help.

    $dbh = DBI->connect("dbi:Teradata:$dsn",
                        $user,
                        $pswd,
                        { RaiseError => 0,
                          AutoCommit => 0,
                          PrintError => 1,
                          tdat_database => $db,
                          tdat_reqsize =>  1024
                          tdat_respsize => 1024
                        }

    I finally changed the code in Teradata.xs
    from
      dbcp->req_buf_len = 65536;
      dbcp->resp_buf_len = 63000;
    to
      dbcp->req_buf_len = 32768;
      dbcp->resp_buf_len = 32768;

(3) Changing the code allowed me to get passed Error 302.
    But now I'm getting a Segmentation Fault.

Does anyone has any suggestions?
Any help is appreciated.
thank you

Albert Tom


Reply via email to