DB_File Load err - cannot load db_file.dll

Posted by venkeykanle on 2018-11-03 06:25

Hi,

Im porting ActivePerl 5.8 to 5.26 on cloud. This web app uses classic ASP+PerlScript. While most of the pages working, one page throwing error...
This is the error got it from IIs log...

2018-11-03 14:07:38 10.95.254.84 GET /search.asp forum=&string=web&Search=Search+Sentinel%27s+Archive|0|80004005|Can't_load_'C:/Perl/site/lib/auto/DB_File/DB_File.dll'_for_module_DB_File:_load_file:The_specified_module_could_not_be_found_at_C:/Perl/lib/XSLoader.pm_line_96._ 80 - 10.95.254.84 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko http://sentineldevcloud.testweb.bp.com/search.asp 500 0 0 716

Any one help me here please...

Note: I tried copying XSLoader.pm from on-prem to my cloud VM. Then no pages works.

Thanks,
Venkatesh Kanale

grahams
ActiveState Staff
Fri, 2018-11-09 11:51

The old DB_file module no longer exists in an ActivePerl.
https://community.activestate.com/forum/510-and-dbfile

ActiveState PPM does not make a compatible version of DB_File for any version of ActivePerl on Windows.
http://code.activestate.com/ppm/DB_File/

You cannot re-use modules from old versions of Perl with new versions of Perl. Perl binaries are incompatible across major version numbers by design.

Your error message suggests that you have sourced DB_File from a non-ActiveState repository. Non-ActiveState PPM repositories are always built using dynamic linking. Check your db_file.dll with Dependency Walker, and you will probably find that you are missing a dependency. There will be a dependency on installing the Oracle Berkeley DB libraries, and the libraries will have to be installed in a folder where IIS can access them. (This will likely have to be done by your Cloud provider).