http://qs1969.pair.com?node_id=428884

altern8 has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to use perl to help simulate a large number of users accessing an oracle database. The problem I'm running into is during the forking process. I want each db connection to handle a number of SQL commands simultaneously with the others.

I have a package I created which contains a function I wrote for fork, which for forking one instance works fine. I call that method from my script with a for loop wrapped around it to create the number of connections I want to use on the database.

If I use dbi->connect inside the child of the fork, it appears that all the children end up sharing the same DBH. If I create the dbh before the fork and pass it to the child I get strange errors like:

DBD::Oracle::db DESTROY failed: ORA-03113: end-of-file on communication channel (DBD ERROR: OCISessionEnd)

Is there anyone out there who has tried this scenario before and solved it, or who might have some tips on how best to approach this task?