http://qs321.pair.com?node_id=800914

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

When I connect with DBD::Sybase, I get the error:
"failed: OpenClient message: LAYER = (1) ORIGIN = (2) SEVERITY = (2) NUMBER = (63)     "
Message String: ct_connect(): user api layer: internal Client Library error: Read from the server has timed out. 

I need help in resolving the issue. What I should have done that may have prevented this? I used 32-bit Perl on 64-bit platform, if that may give any clue.

Thanks.

Replies are listed 'Best First'.
Re: DBD::Sybase installation
by derby (Abbot) on Oct 13, 2009 at 15:36 UTC

    What does your connection string look like? Are you setting the timeout there? By default it's set to 0 (do not timeout). I'm not 100% certain but I believe timeout is controlled by the client and not the server (but I could be wrong about that).

    -derby
      No, I don't set the time outs.

      $dbh = DBI->connect("dbi:Sybase:server=$server", $user, $passwd);
Re: DBD::Sybase installation
by Bloodnok (Vicar) on Oct 13, 2009 at 15:34 UTC
    The first and IMHO most obvious, question is whether it is possible to connect to the server, via the CLI, using the same connection parameters - that will narrow/open it (the scope of the discussion) up...

    A user level that continues to overstate my experience :-))
      I can connect with isql to server on CLI.
        Hmmm, to supplement derbys question, do the symptoms change if the timeout is changed/extended - the default for which, according to the Sybase docs, appears to be 60 secs ?

        A user level that continues to overstate my experience :-))
      It appears that I cannot connect with command line anymore. I get the message
      "CT-LIBRARY error:
           ct_connect(): 
      user api layer: 
      internal Client Library error: 
      Read from the server has timed out."
      
Re: DBD::Sybase installation
by mpeppler (Vicar) on Oct 15, 2009 at 08:11 UTC
    This simply means that the client (DBD::Sybase, in this case) can't connect within the required time frame (60 seconds by default). This can happen when a firewall has been set up that simply drops packets instead of actively rejecting them (in the latter case you'd get a "connection refused" message instead).

    So check the network to make sure that access is possible - you can try with "telnet <hostname> <port>" just to see if connectivity is available.

    Michael