[Catalyst] Database-backed sessions: Session::Store::DBI/DBIC and MSSQL

Stuart Watt swatt at infobal.com
Wed Jun 17 20:34:55 GMT 2009


I don't know if anyone else has hit these problems, and I am working on =

them, but there appear to be a set of significant issues around the DBI =

and DBIC session stores using Microsoft SQL Server as the back-end. =

These are mostly related to the fact that MSSQL only allows one active =

statement at a time. Therefore, you get errors like:

[error] Caught exception in engine =

"DBIx::Class::Storage::DBI::__ANON__(): DBI Exception: DBD::ODBC::st =

execute failed: [Microsoft][ODBC SQL Server Driver]Connection is busy =

with results for another hstmt (SQL-HY000) [for Statement "UPDATE =

sessions SET expires =3D ? WHERE id =3D ?" with ParamValues: 1=3D1245271741=
, =

2=3D'session:6b263f72b22e53043beca20c3746dee2baa3bf35'] at =

D:/perl510-20090611/site/lib/Catalyst/Plugin/Session/Store/DBI.pm line 52"

Since I was using Session::Store::DBI rather than Session::Store::DBIC I =

thought that might be the problem, but I now suspect the session =

handling needs its own connections. (On a side note, I got all sorts of =

strange error messages trying to set up Session::Store::DBIC, and I am =

not worrying about them just yet.)

Since Session::Store::DBI can be set to use its own connection, I =

thought that might resolve it. Not completely, unfortunately, and now =

the error is due to the recommended use of a text column for the data. =

It seems the DBI+DBD::ODBC likes to require LongTruncLen set to a rather =

larger value than is the default (apparently the default can even be =

zero!), so you get truncation errors when reading any session data. The =

way the statements are set up (in a batch) makes it hard to set this for =

one statement independently, and supposedly it needs to be set before a =

statement is prepared.

I had thought the transition to MSSQL would be as easy for session =

handling as it had been for model data. Not so. And no, MSSQL was not my =

idea!

All the best
Stuart
-- =

Stuart Watt
ARM Product Developer
Information Balance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20090617/372b7=
7e8/attachment.htm


More information about the Catalyst mailing list