Serializing Storable.pm objects via DBI to Oracle 10g



Howdy,

I seem to have encountered an odd quirk somewhere when using DBI against
an Oracle 10g database. Here's the situation. I'm taking the following
object, serializing using Storable.pm, and inserting it into a CLOB
field in an Oracle 10g database running Solaris 9/sparc.

$VAR1 = 'obj';
$VAR2 = [
{
'security' => undef,
'data' => {
'tts_prop' => '0',
'tts_enable' => '1',
'tmpl_id' => '',
'channel' => '',
'_radio' => 'tts_enable dis_amd redir',
'_select' => 'mg_retries redir_retries redir_delay',
'prog_id' => '',
'slot_num' => '1',
'slot_text' => 'fklgjdflgkjdfl;kdjfglkjpwerwepmcvopwentweoinfoivnorinveribfdgynvlaiytlawygn cvgbtv iauefvgjdgfirugtv rilufn vughk vgru
gyfireuvgr'
},
'ses_id' => '3e350107dfee1b015a66efce8bf835869372c316',
'cls_id' => 'addprogram19'
}
];

Please make a note that slot_text is 128 bytes. This is very important.

Now, when I pull the "frozen" object from 10g it looks something like
this. Please note that this output was run through the strings(1)
before I cut-n-pasted it:

[
'addprogram19',
'2005/10/17 09:16:02',
'
tts_prop
tts_enable
tmpl_id
channel
tts_enable dis_amd redir
_radio
$mg_retries redir_retries redir_delay
_select
prog_id
slot_num
fklgjdflgkjdfl;kdjfglkjpwerwepmcvopwentweoinfoivnorinveribfdgynvlaiytlawygn cvgbtv iauefvgjdgfirugtv rilufn vughk vgrugyfireuvgr
slot_text',
'2005/10/17 09:16:02',
'3e350107dfee1b015a66efce8bf835869372c316',
undef,
'1'
],

When we attempt to unfreeze it using Storable, our perl program bombs
out spectacularly with an "Out of Memory" error.

Some interesting facts about this particular bug:

* This only happens when talking with Oracle 10g. This has worked
successfully with Oracle 8i running on both SPARC and intel
hardware.
* The application server that runs this code is using the Oracle
8i client software under Solaris 9 intel.
* Everything works fine under Oracle 10g when slot_text is LESS
THAN 128 bytes. Anything larger than that bombs out. I find
this suspect.
* Running our application code on a Solaris 8 sparc box using the
Oracle 8i client libraries produces the same error.
* This error is also reproducible on a Red Hat 9 Linux box running
on intel hardware.
* We have tried this with recent versions of DBI, DBD::Oracle
(1.15), and Storable.pm

I *suspect* the issue is in how Storable is putting the data into
Oracle, but I wanted to see if anyone has run into this error before.

Cheers!

--
Chris Fuhrman | Twenty First Century Communications
chris.fuhrman@xxxxxxxxx | Senior Software Engineer
(W) 614-442-1215 x271 |
(F) 614-442-5662 | PGP/GPG Public Key Available on Request

Attachment:signature.asc
Description: This is a digitally signed message part



Relevant Pages

  • Re: What so special about PostgreSQL and other RDBMS?
    ... That's exactly the link the licence agreement for the database points to when it ... comes to what wecan expect for paying support. ... > "Oracle may provide additional releases or versions of its programs ... If the requirements are volatile I'd do a long term contract detailing what ...
    (comp.lang.php)
  • A cool DBA job wanted
    ... 7, Oracle 6, Sybase, SQL Server ... Proposed proactive database monitoring through ... strategies to administer remote Oracle databases ... Trained installation and support personnel in basic ...
    (comp.databases.oracle.server)
  • Re: I want to add to myknowledge
    ... 7, Oracle 6, Sybase, SQL Server ... Oracle Database Administrator ... Trained installation and support personnel in basic ... Senior Oracle Database Administrator ...
    (comp.databases.oracle.server)
  • Re: choices regarding where to place code - in the database or middle tier
    ... Before Oracle decided to allow you to write stored procedures in Java, ... Even without Java existing, let alone being hosted in the database, you ... of languages that they developed for the middle tier, ... the .NET developers out there will be faced with this choice. ...
    (comp.lang.java.programmer)
  • Re: choices regarding where to place code - in the database or middle tier
    ... Before Oracle decided to allow you to write stored procedures in Java, ... Even without Java existing, let alone being hosted in the database, you ... of languages that they developed for the middle tier, ... the .NET developers out there will be faced with this choice. ...
    (comp.lang.java.databases)