Michael Peppler
Sybase Consulting
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
Sybase on Linux FAQ
Sybperl FAQ
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: michael dot peppler at bnpparibas dot com
Subject: Re: DBD::Sybase runtime problem
Date: Nov 11 2005 1:01PM

DBD::Sybase tries to use the highest possible version of client library
capabilities that it can find. This is a value that is passed to cs_init()
and to a couple of other functions during initialization and that
establishes what level of capabilities the server and client share (e.g.
wide varchar columns, date and time datatypes, etc.).

When you link statically with the 12.5.3 libraries the internal code will
attempt to use the 12.5.3 capabilities. If the SYBASE home directory points
to the 12.0 directory this will cause the error you are seeing as the
support files (in $SYBASE/config, among others) are from an earlier

You can see how this is handled in the syb_init() function in the dbdimp.c

All in all I would try to use the binary with a single Sybase code tree,
and instead define a different interfaces file to use as necessary (see the
"interfaces" connection attribute for more information.)


Internet - 11/11/2005 13:39

Sent by:

To:    sybperl-l


Subject:    DBD::Sybase runtime problem


I've got an issue with DBD::Sybase (1.07_01) which I hope you can help

This was installed on a Solaris 2.8 machine which has Perl 5.8.7 and was
originally dynamically linked with Sybase 12.5.1 ESD#10 SDK .
We also have Sybase 12.0, and 12.5.3 ASE on this machine. A perl
program was written which does a basic connect to each of the running ASE
servers, grabs a bit of information then closes.

This works fine. However for various reasons it was decided that we had to
link the Sybase libraries in statically instead of dynamically (linked
against the same SDK as when dynamic linking was used).

Now at runtime I get the following error when my environment is using the
12.0 ASE server :-

The context allocation routine failed.

The following problem caused the failure:

Invalid context version.

This happens when the use DBD::Sybase is issued at the start of the perl
script. However the rest of the script still continues and connects to the
server etc.. and returns the required data.

Any ideas what is going on here



This message and any attachments (the "message") is
intended solely for the addressees and is confidential. 
If you receive this message in error, please delete it and 
immediately notify the sender. Any use not in accord with 
its purpose, any dissemination or disclosure, either whole 
or partial, is prohibited except formal approval. The internet
can not guarantee the integrity of this message. 
BNP PARIBAS (and its subsidiaries) shall (will) not 
therefore be liable for the message if modified. 


Ce message et toutes les pieces jointes (ci-apres le 
"message") sont etablis a l'intention exclusive de ses 
destinataires et sont confidentiels. Si vous recevez ce 
message par erreur, merci de le detruire et d'en avertir 
immediatement l'expediteur. Toute utilisation de ce 
message non conforme a sa destination, toute diffusion 
ou toute publication, totale ou partielle, est interdite, sauf 
autorisation expresse. L'internet ne permettant pas 
d'assurer l'integrite de ce message, BNP PARIBAS (et ses
filiales) decline(nt) toute responsabilite au titre de ce 
message, dans l'hypothese ou il aurait ete modifie.