Hi Jim Hi Jim Thanks for your comments - the MS Virtual PC side of things doesn't add any complications, my question can just be read as wanting to transfer the same Perl/BerkeleyDB system from one machine to another.
It seems that there is a difference between how the BerkeleyDB engine is installed as between a Windows and a Unix/Linux installation - see Brian Raven's comments. I've been trying ProcessExplorer at someone else's suggestion to see which happens when the DB_File module is loaded. I debugged the small Perl script that was producing some test BerkeleyDB files using Komodo and I found that the only change to the loaded processes when the DB_File module was loaded was a DB_File.dll one. Also I found that the properties for that dll had a string that referred to version 4.1.25 of BerkeleyDB which matched the version of the BerkeleyDB engine that my test script showed. I'm not sure whether this confirms that the BerkeleyDB engine is controlled by the DB_File module for a Windows machine? Unfortunately I'm testing Perl scripts that already use DB_File so I can't change the database system. These were written so that they could be run on servers, whether Windows or Unix/Linux, that didn't have any more sophisticated database system, such as MySQL, Oracle, so using DB_File with the BerkeleyDB engine was the best option (assuming the DB_File module was available). Eric Robertson -----Original Message----- From: Jim Schueler [mailto:[EMAIL PROTECTED] Sent: Monday, November 12, 2007 6:07 PM To: Eric Robertson Cc: [email protected] Subject: Re: Berkeley DB Installation Hello. I don't know anything about MS Virtual PC, so I don't understand your question very well. I have about 15 years expertise with BerkeleyDB on Unix and wrote the BerkeleyDB::Lite module. I only monitor this group to answer BerkeleyDB questions, even though I don't think my module is distributed by ActivePerl. This doesn't seem to be a Perl problem, and even less likely to concern ActivePerl. There is a BerkeleyDB Usenet group that is obstensibly monitored by what used to be SleepyCat (now Oracle) engineers. Have you posted there? BerkeleyDB is an embedded database. It consists of a library that adds database functionality to any application. Usually, database functionality means persistent storage of significant volumes of data. So on a diskless platform, a BerkeleyDB application at least requires a virtualized file system. Additionally BerkeleyDB optimization performs caching and swapping separate from the OS/FS. So a virtual file system needs to be optimized specifically for BerkeleyDB to begin matching the performance of native hard storage. In short BerkeleyDB is a database engine instead of a database application (although the BerkeleyDB distribution includes a primitive database server to migrate up to a client/server model). In your case, why use BerkeleyDB at all? The Perl ability to represent databases as tied objects was the original appeal of BerkeleyDB back in the day. But now, DBI does the same thing for any database model/application. Jim Schueler Motor City Interactive On Sat, 10 Nov 2007, Eric Robertson wrote: > I posted a question 10 days ago and I've found that somehow or other it got > tagged onto the end of another thread so perhaps has been overlooked so I'm > trying again! Here's an amended version of that question. > > I've been using a networked PC running NT4 Server to test some Perl CGI > scripts using the remote debugging features of Komodo, which is running on > an XP Pro PC. I've been experimenting with running the scripts on a virtual > machine (using MS Virtual PC) hosted by the XP Pro PC so that I only need to > have one PC to test these Perl scripts. This is working well except that I'm > having problems with some Perl scripts that use DB_File. > > I don't seem to be able to read the same database files on the virtual > machine and I have discovered that although I thought I had the same set up > on both machines this is not the case which could account for this. The > standalone PC is running DB_File version 1.73 and Berkeley DB version > 2.004010 while the virtual machine has DB_File version 1.806 and Berkeley DB > version 4.001025. > > I came across a test to check how well Berkeley DB is working in conjunction > with Perl and I found that with the standalone machine it took 1 wallclock > second to use DB_File to write 10,000 records while with the virtual machine > it took 58. There was a note associated with this test to say that there was > a bug in version 4.1 of Berkeley DB which might not have been corrected and > which would have caused it to run very slowly. I'm wondering if this is > perhaps the problem although it could just be that this is because it's > running in a virtual machine and/or I've not allocated enough RAM to the > virtual machine. > > I don't know how I've managed to have a different version of Berkeley DB on > the virtual machine. Am I correct in thinking that Berkeley DB comes with > the OS and is not part of the Perl installation? I see that the Service Pack > on the standalone PC is SP5 whereas the one on the virtual machine is SP6 so > perhaps this accounts for the difference. > > > _______________________________________________ > ActivePerl mailing list > [email protected] > To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs > -- _______________________________________________ ActivePerl mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
