[Dbix-class] DBD::Sybase - Can't call ping() with active statement handles - any ideas?

Nick Dixon nick.dixon at gmail.com
Fri Aug 22 13:08:33 BST 2008


I'm trying to build a simple Catalyst CRUD application using
DBIx::Class 0.08010 and DBD::Sybase connecting to a SQL Server 2005
instance.

I've installed DBIx::Class::Storage::DBI::Sybase and ::Sybase::MSSQL of course.

Now selects work fine, but whenever I try to insert a record with
DBIx::Class::ResultSet::create I get:

DBI Exception: DBD::Sybase::db ping failed: Can't call ping() with
active statement handles at
/usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Schema.pm line 954
	DBIx::Class::Schema::throw_exception('MyDB::Schema=HASH(0x98a7894)',
'DBI Exception: DBD::Sybase::db ping failed: Can\'t call ping(...')
called at /usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Storage.pm
line 122
	DBIx::Class::Storage::throw_exception('DBIx::Class::Storage::DBI::Sybase=HASH(0x98da600)',
'DBI Exception: DBD::Sybase::db ping failed: Can\'t call ping(...')
called at /usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Storage/DBI.pm
line 846
	DBIx::Class::Storage::DBI::__ANON__[/usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Storage/DBI.pm:847]('DBD::Sybase::db
ping failed: Can\'t call ping() with active s...',
'DBI::db=HASH(0x9ce8f64)', -1) called at
/usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Storage/DBI.pm line
710
	DBIx::Class::Storage::DBI::connected('DBIx::Class::Storage::DBI::Sybase=HASH(0x98da600)')
called at /usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Storage/DBI.pm
line 607
	DBIx::Class::Storage::DBI::dbh_do('DBIx::Class::Storage::DBI::Sybase=HASH(0x98da600)',
'CODE(0x9b571c8)', 'DBIx::Class::ResultSource::Table=HASH(0x98da8ac)',
'id') called at
/usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Storage/DBI.pm line
1280

DBIx::Class::Storage::DBI::last_insert_id('DBIx::Class::Storage::DBI::Sybase=HASH(0x98da600)',
'DBIx::Class::ResultSource::Table=HASH(0x98da8ac)', 'id') called at
/usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/Row.pm line 222
	DBIx::Class::Row::insert('MyApp::Model::DBIC::Foo=HASH(0x9d0f68c)')
called at /usr/local/lib/perl5/site_perl/5.8.8/DBIx/Class/ResultSet.pm
line 1638
	DBIx::Class::ResultSet::create('DBIx::Class::ResultSet=HASH(0x9865488)',
'HASH(0x98654c4)') called at
/export/home/myapp/test/MyApp/script/../lib/MyApp/Controller/Foo.pm
line 84

Has anyone else encountered this?

I am suspicious of that reference to
"DBIx::Class::Storage::DBI::Sybase" in the call to last_insert_id().

In my schema classes (eg. MyDB::Schema::Foo.pm), I've added:

  __PACKAGE__->mk_classdata('storage_type' => '::DBI::Sybase::MSSQL');

so I would have expected a DBIx::Class::Storage::DBI::Sybase:MSSQL for
the storage class.

Am I missing something that's obvious to everyone else, or is there a
serious problem talking to Sybase/MSSQL ?



More information about the DBIx-Class mailing list