From: eric.kolotyluk at gmail.com (Eric Kolotyluk) Date: Mon, 24 Jan 2011 10:13:10 -0800 Subject: [Pljava-dev] Windows binaries In-Reply-To: References: <4D3C6777.10708@gmail.com> <4D3C6B11.3010706@gmail.com> <4D3C6F68.9060304@gmail.com> <4D3C7606.5080205@gmail.com> <4D3C7E10.7080906@gmail.com> <4D3CA4BD.3010206@gmail.com> <4D3CAF3D.2060802@hogranch.com> <4D3CB385.6010403@gmail.com> <4D3CB623.2060409@hogranch.com> <4D3CB765.709@gmail.com> <4D3CB76D.2040407@hogranch.com> <4D3CBAF8.6080006@gmail.com> <4D3DB4FA.4090001@gmail.com> Message-ID: <4D3DC136.8010709@gmail.com> On 2011-01-24 9:37 AM, Johann 'Myrkraverk' Oskarsson wrote: > On Mon, 24 Jan 2011 17:20:58 -0000, Eric Kolotyluk > wrote: > >> I installed Dependency Walker to look at the pljava.dll file. It >> complained that it could not find jvm.dll, msvcr71.dll, and >> msvcr90.dll - so I put them all in the postgres lib directory where >> pljava.dll is. That problem went away. >> >> However, Dependency Walker is still complaining about >> >> Error: At least one module has an unresolved import due to a missing >> export function in an implicitly dependent module. >> Error: Modules with different CPU types were found. >> Warning: At least one module has an unresolved import due to a >> missing export function in a delay-load dependent module. > > Can you check that the DLLs you copied are all 64 bits? Also, the JVM > (on Unix) needs more DLLs, here is an output I posted previously to > this list, for Solaris: Dependency Walker reports that jvm.dll, msvcr71.dll, and msvcr90.dll are all x86 - as is pljava.dll and all the other postgres DLLs. Why would the DLLs need to be 64-bit? I am using Java 6. I have copied hpi.dll, verify.dll, java.dll, and zip.dll to the lib directory. I could not find dbx_agent.dll > > /export/home/johann/src/external/pljava-head/build/objs/pljava.so > /opt/myrkraverk/jdk1.5.0_22/jre/lib/amd64/server/libjvm.so > > > > /opt/myrkraverk/jdk1.5.0_22/jre/lib/amd64/native_threads/libhpi.so > /opt/myrkraverk/solstudio12.2/lib/dbx/amd64/runtime/libdbx_agent.so > /opt/myrkraverk/jdk1.5.0_22/jre/lib/amd64/libverify.so > /opt/myrkraverk/jdk1.5.0_22/jre/lib/amd64/libjava.so > /opt/myrkraverk/jdk1.5.0_22/jre/lib/amd64/libzip.so > > Notes: > > You don't need to run PL/Java with Java 5, it works equally well with > a Java 6 VM. The libdbx_agent is only for debugging PL/Java code with > dbx, and is not applicable for Windows. > >> Is this a problem because I am running on a 64-bit version of Windows 7? > > It shouldn't be, but it seems your walker is finding a 32bit DLL where > it expects a 64bit DLL. Again, why would it expect 64 bit DLLs when I am running 32-bit postgres and 32-bit Java? However, Dependency Walker is listing a lot of other 64-bit DLLs for some reason. > >> When I try to run install.sql I still get >> psql:install.sql:6: ERROR: could not load library "C:/Program Files >> (x86)/PostgresPlus/9.0SS/lib/pljava.dll": The specified module could >> not be found. > > This is an unfortunate message. In Linux it tells me which (sub) DLL > is missing such as "libjvm.so could not be found." > jvm.dll is in the same directory as pljava.dll. At first it was not and Dependency Walker complained it was missing, so I added it and Dependency Walker stopped complaining. Cheers, Eric