A while back I mannaged to get an ad-hock implementation working... I treated the connection w/ dbi as a limited resource and shared it among the various threads in Perl using a file locking mechanism. My multi-threaded app only ever connected to the dbi through a seperate perl-script running as a daemon.
On Linux, the multithreaded end was done via fork, on windows I used whatever came with the default activeperl implementation ( I forget )
I tried having them communicate via shared memory, but ended up just using a shared file instead. Linux has reliable append mode, so it was a piece of cake. On windows it was much more difficult to get them synchronized.
Recently I've looked into database transactions, with each instance of the thread having it's own connection to the database, and letting the database handle the connection details.
This is with mysql, but i'm sure oracle supports transactions.
apache::dbi works/plays well with mod_perl in keeping these connections alive between each run-through of the script (before I used this, each connection made was quite time consuming).
Your results will vary.