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: "Kiriakos Georgiou (Contractor)" <kiriakos dot georgiou at nrl dot navy dot mil>
Subject: ct_param problem
Date: Mar 19 2004 5:19PM

I recently upgraded from DBD-Sybase-0.91 and DBI-1.14 to

DBD-Sybase-1.02 and DBI-1.40

I tried to use 12.5.1 open client to connect to a 12.0 ASE server (we 
are in transition from 12.0 to 12.5.1) but that was giving me the error 

[Fri Mar 19 11:05:42 2004] [notice] Accept mutex: fcntl (Default: fcntl)
ct_param() failed! at 
line 122.
DBD::Sybase::st execute failed: OpenClient message: LAYER = (1) ORIGIN = 
(1) SEVERITY = (1) NUMBER = (46)
Server production, database
Message String: ct_param(): user api layer: external error: An illegal 
value of 0 was placed in the status field of the CS_DATAFMT structure.

So I installed and used open client 12.0 and everything seemed fine on 
our development and staging server.  Now I am getting the same above 
error on the production server.

The relevant section of the is below, it fails 
on the execute.

my $sth = $self->{dbh}->prepare(qq{
UPDATE sessions SET a_session = $session->{serialized} WHERE id = ?
$sth->execute( $session->{data}->{_session_id} );

I thought we might accidentally be using the wrong version of open 
client, but it doesn't seem that way.  Can someone with knowledge of the 
CT API tell me what the above error message means?  Apache-Session has 
remained at version 1.54 so unless I am using the wrong open client 
version I am wondering if anything relevant to this changed in DBD-Sybase.