Hi,

We've been using the latest Apache::Session::DBI with some success
using Oracle 8i (DBD::Oracle 1.03) as the data store.  (Basically, we
applied Ajit Deshpande's recommendation of patching DBIStore.pm with a
large number for LongReadLen.  See
http:[EMAIL PROTECTED]
for reference.)

We recently added some more data to our session hashes and everything
broke.  In trying to track the problem down, we've been able to
replicate it OUTSIDE of Apache by writing a Perl script which
simulates Apache::Session and does the following:

        - create a fairly large hash
        - convert it to a binary string using Storable::nfreeze
        - store this string into Oracle  (type is LONG)
        - fetch string from the database
        - compare fetched string to the original string
        - convert fetched string back to a hash using Storable::thaw

The above works great under our development environment, where we are
using Oracle 8.0.5.  But, in our production environment, where we are
using Oracle 8i, the fetched string differs from the original and we
cannot convert it back into the original hash.

To make a long story short, it seems that storing and then fetching a
binary string is broken, but I'm not sure if this is an Oracle or DBD
issue, or if I'm just doing something plain silly.

Any pointers would be appreciated.

Thanks,

Rob

PS. I'm attaching the code as reference.

teststore.pl

Reply via email to