[BUGS] BUG #3897: plJava dll still doesn't load for 8.3RC2

2008-01-29 Thread David JL Gradwell
Dave  Kris,

I've dug into some of the problems I've been having in a bit more logical
detail.

A useful tool is Dependency Walker http://www.dependencywalker.com/

Try running this against pljava.dll.  You will get varying results,
depending on the PATH and whether you have PostgreSQL 8.2 or 8.3 on the
PATH.  In any case you will see clearly which dlls have to be on the PATH
and whether they can be seen by the dll loader.

From this we can see that PostreSQL 8.2.6 uses a dll called MSVCR71.dll
whereas PostreSQL 8.3RC2 uses MSVCR80.dll which is not to be found in
C:\WINDOWS\System32 on all my machines !  This seems to stop the pljava.dll
loading.

A couple of links give a useful insight:

http://blogs.gotdotnet.com/mikehall/archive/2005/12/01/498999.aspx

http://www.instant-registry-fixes.org/why-do-i-keep-receiving-msvcr80dll-mis
sing-errors/

From this I deduce that the MSVCR80.dll needs to be distributed in the
PostreSQL distribution for Windows.

As part of my investigation I wrote a small Java program that a potential
plJava user can run if they hit problems.  It will give them some clues as
to what to look for ! See attached.

Regards

David Gradwell

-Original Message-
From: Dave Page [mailto:[EMAIL PROTECTED] 
Sent: 28 January 2008 09:43
To: David JL Gradwell
Cc: Kris Jurka; pgsql-bugs@postgresql.org
Subject: Re: BUG #3897: plJava dll still doesn't load for 8.3RC2

On Jan 28, 2008 9:33 AM, David JL Gradwell [EMAIL PROTECTED] wrote:
 Hi Dave,

 Thanks for the help.  I have now got pljava working fine on 8.3RC2 and
have
 re-run all my tests against RC2.  On a database with a data structure of
 100+ tables and about 15 views with extensive (20+ per view) unions the
 performance is far better than 8.1 and better than 8.2.6, even on a small
 test machine.

Good news :-)

 Coming back to pljava, I've still had problems with the error messages
 (which seem to be the wrong way round!)and am happy to see if I can
improve
 them for the benefit of others.  Specifically:

 a)  ERROR: Failed to create Java VM (SQL State is 'XX000') when
 calling sqlj.install_jar actually means that pljava.classpath in
 postgresql.conf is either not set or not set correctly and hence
pljava.jar
 can not be found.  pljava.classpath could be defaulted to C:\Program
 Files\PostgreSQL\8.2\share\pljava in the installation.

I'll leave that one for Kris or one of the other Java guys. I've
written maybe a dozen lines of Java code in my entire life!

 b)  'ERROR: could not load library C:/pljava/pljava.dll: The
specified
 module could not be found.' on
CREATE FUNCTION sqlj.java_call_handler()
  RETURNS language_handler AS 'pljava'
  LANGUAGE C;
 Means (as you said) that the jvm.dll can not be loaded and that the DOS
PATH
 doesn't include C:\Program Files\Java\jdk1.6.0_02\jre\bin\client or
 similar.

Thats a generic messages raised by PostgreSQL when it fails to load a
library - unfortunately I don't think there's not much that can be
done to improve things there, at least without some horribly platform
specific hacks.

Regards, Dave.


PLJavaCheckEnv.java
Description: Binary data


PLJavaCheckEnvButtonActionListener.java
Description: Binary data

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [BUGS] BUG #3897: plJava dll still doesn't load for 8.3RC2

2008-01-29 Thread Dave Page
On Jan 29, 2008 3:33 PM, David JL Gradwell [EMAIL PROTECTED] wrote:
 Dave  Kris,

 From this I deduce that the MSVCR80.dll needs to be distributed in the
 PostreSQL distribution for Windows.

It is - without it, PostgreSQL wouldn't even run (or pgAdmin,
StackBuilder etc for that matter). We distribute the full runtime
package from Microsoft - specifically the Windows Installer merge
module provided with Visual Studio 2005.

The VS2K5 runtimes don't exactly get installed in the mos obvious
places though - for example, on my development machine they're in

c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.DLL

but as long as it's properly installed (which the merge module we use
was specifically designed by Microsoft to do) then it should work OK,
barring other issues such as jvm.dll not being in your path. BTW,
depends.exe will highlight modules that cannot be located in a fairly
obvious way - but beware; you're probably running it with a different
path than Postgres has when started by the SCM, and it won't
necessarily find libraries that Postgres has other ways to locate (for
example ones in the Postgres libdir).

Regards, Dave.

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [BUGS] BUG #3897: plJava dll still doesn't load for 8.3RC2

2008-01-28 Thread Dave Page
On Jan 28, 2008 9:33 AM, David JL Gradwell [EMAIL PROTECTED] wrote:
 Hi Dave,

 Thanks for the help.  I have now got pljava working fine on 8.3RC2 and have
 re-run all my tests against RC2.  On a database with a data structure of
 100+ tables and about 15 views with extensive (20+ per view) unions the
 performance is far better than 8.1 and better than 8.2.6, even on a small
 test machine.

Good news :-)

 Coming back to pljava, I've still had problems with the error messages
 (which seem to be the wrong way round!)and am happy to see if I can improve
 them for the benefit of others.  Specifically:

 a)  ERROR: Failed to create Java VM (SQL State is 'XX000') when
 calling sqlj.install_jar actually means that pljava.classpath in
 postgresql.conf is either not set or not set correctly and hence pljava.jar
 can not be found.  pljava.classpath could be defaulted to C:\Program
 Files\PostgreSQL\8.2\share\pljava in the installation.

I'll leave that one for Kris or one of the other Java guys. I've
written maybe a dozen lines of Java code in my entire life!

 b)  'ERROR: could not load library C:/pljava/pljava.dll: The specified
 module could not be found.' on
CREATE FUNCTION sqlj.java_call_handler()
  RETURNS language_handler AS 'pljava'
  LANGUAGE C;
 Means (as you said) that the jvm.dll can not be loaded and that the DOS PATH
 doesn't include C:\Program Files\Java\jdk1.6.0_02\jre\bin\client or
 similar.

Thats a generic messages raised by PostgreSQL when it fails to load a
library - unfortunately I don't think there's not much that can be
done to improve things there, at least without some horribly platform
specific hacks.

Regards, Dave.

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [BUGS] BUG #3897: plJava dll still doesn't load for 8.3RC2

2008-01-28 Thread David JL Gradwell
Hi Dave,

Thanks for the help.  I have now got pljava working fine on 8.3RC2 and have
re-run all my tests against RC2.  On a database with a data structure of
100+ tables and about 15 views with extensive (20+ per view) unions the
performance is far better than 8.1 and better than 8.2.6, even on a small
test machine.

Coming back to pljava, I've still had problems with the error messages
(which seem to be the wrong way round!)and am happy to see if I can improve
them for the benefit of others.  Specifically:

a)  ERROR: Failed to create Java VM (SQL State is 'XX000') when
calling sqlj.install_jar actually means that pljava.classpath in
postgresql.conf is either not set or not set correctly and hence pljava.jar
can not be found.  pljava.classpath could be defaulted to C:\Program
Files\PostgreSQL\8.2\share\pljava in the installation.

b)  'ERROR: could not load library C:/pljava/pljava.dll: The specified
module could not be found.' on 
CREATE FUNCTION sqlj.java_call_handler()
  RETURNS language_handler AS 'pljava'
  LANGUAGE C;
Means (as you said) that the jvm.dll can not be loaded and that the DOS PATH
doesn't include C:\Program Files\Java\jdk1.6.0_02\jre\bin\client or
similar.

I've got the 1.3.0 pljava code into NetBeans IDE and will see if I can find
where these messages arise.

Regards

David

-Original Message-
From: Dave Page [mailto:[EMAIL PROTECTED] 
Sent: 26 January 2008 15:16
To: David JL Gradwell
Cc: Kris Jurka; pgsql-bugs@postgresql.org
Subject: Re: BUG #3897: plJava dll still doesn't load for 8.3RC2

Hi David,

On Jan 26, 2008 12:21 PM, David JL Gradwell [EMAIL PROTECTED] wrote:

 Dave,

 First of all I have carefully checked my path environment variable.  Going
 PATH at the command prompt gives:

 C:\Documents and Settings\Davidpath

 PATH=C:\Program Files\Java\jdk1.6.0_04;C:\Program

Files\Java\jdk1.6.0_04\jre;C:\pljava;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDO
WS\System32\Wbem

On all my machines, jvm.dll is in:

C:\Program Files\Java\jre1.6.0_02\bin\client

(adjust the version number accordingly of course). When that's in the
path, the installer will let you install plJava. Note though that it
doesn't install the files any differently when the option is greyed
out in the installer - it just doesn't run C:\Program
Files\PostgreSQL\8.3RC2\share\pljava\install.sql in template1. You can
do this at any time afterward though once the path is correct.

Regards, Dave.


---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [BUGS] BUG #3897: plJava dll still doesn't load for 8.3RC2

2008-01-25 Thread Dave Page
On Jan 25, 2008 11:08 AM, David JL Gradwell [EMAIL PROTECTED] wrote:

 I also noticed whilst I was doing the original 8.3rc2 install that I could
 not specify PL/Java as a language to enable in the default database - see
 screenshot.

Ahh - now that's most likely the problem. The installer only enables
the plJava checkbox if it finds a JVM in the path - and if it can't,
most likely the server can't either.

Track down your copy of jvm.dll, add the directory to the system path,
and then restart the machine to ensure that the updated path gets
picked up by PostgreSQL (I'm not sure if just restarting Postgres will
work).

Regards, Dave

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [BUGS] BUG #3897: plJava dll still doesn't load

2008-01-24 Thread Kris Jurka



On Wed, 23 Jan 2008, David Gradwell wrote:


Bug reference:  3897
PostgreSQL version: 8.3rc2
Operating system:   Windows Server 2003
Description:plJava dll still doesn't load
Details:

I've successfully installed plJava on postgres 8.2.6 using Kris Jurka's
version at http://www.ejurka.com/pgsql/pljava/826/.  Note that I failed to
get the standard distribution download to work.


8.2.6 will not be repackaged, so the official fix will be in 8.2.7 which 
has not yet been scheduled.



I've now tried to get plJava running on 8.3rc2 (having failed on rc1 -
already reported) using the pljava.dll and pljava.jar in the distribution.


I checked with the windows installer guys and they say they've got the 
updated pljava in RC2 and have tested it to ensure that it works.  What 
they put in RC2 is the repackaged pljava for 8.3rc1 I put up here:


http://ejurka.com/pgsql/pljava/83rc1/

So it wouldn't hurt to try the above, but I don't have great hopes that it 
will change things for you unless something got lost along the way.


Kris Jurka

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

   http://www.postgresql.org/about/donate


Re: [BUGS] BUG #3897: plJava dll still doesn't load

2008-01-24 Thread Dave Page
On Jan 24, 2008 11:16 AM, Kris Jurka [EMAIL PROTECTED] wrote:


 On Wed, 23 Jan 2008, David Gradwell wrote:

  Bug reference:  3897
  PostgreSQL version: 8.3rc2
  Operating system:   Windows Server 2003
  Description:plJava dll still doesn't load
  Details:
 
  I've successfully installed plJava on postgres 8.2.6 using Kris Jurka's
  version at http://www.ejurka.com/pgsql/pljava/826/.  Note that I failed to
  get the standard distribution download to work.

 8.2.6 will not be repackaged, so the official fix will be in 8.2.7 which
 has not yet been scheduled.

I do intend to re-package 8.2.6, just haven't found the time yet. I
*might* be able to later today.

/D

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [BUGS] BUG #3897: plJava dll still doesn't load

2008-01-24 Thread Dave Page
On Jan 24, 2008 11:50 AM, Dave Page [EMAIL PROTECTED] wrote:
 On Jan 24, 2008 11:16 AM, Kris Jurka [EMAIL PROTECTED] wrote:
 
  8.2.6 will not be repackaged, so the official fix will be in 8.2.7 which
  has not yet been scheduled.

 I do intend to re-package 8.2.6, just haven't found the time yet. I
 *might* be able to later today.

I managed to squeeze it in between some other stuff. It's on the
server now, and should be generally available for download within 24
hours.

Hiroshi: does the Japanese build need to be rebuilt with the new plJava build?

Regards, Dave

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [BUGS] BUG #3897: plJava dll still doesn't load

2008-01-24 Thread Magnus Hagander
   8.2.6 will not be repackaged, so the official fix will be in 8.2.7 which
   has not yet been scheduled.
 
  I do intend to re-package 8.2.6, just haven't found the time yet. I
  *might* be able to later today.
 
 I managed to squeeze it in between some other stuff. It's on the
 server now, and should be generally available for download within 24
 hours.

Great news, thanks Dave!

/Magnus

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [BUGS] BUG #3897: plJava dll still doesn't load

2008-01-24 Thread Hiroshi Saito

Hi.

- Original Message - 
From: Dave Page [EMAIL PROTECTED]




On Jan 24, 2008 11:50 AM, Dave Page [EMAIL PROTECTED] wrote:

On Jan 24, 2008 11:16 AM, Kris Jurka [EMAIL PROTECTED] wrote:

 8.2.6 will not be repackaged, so the official fix will be in 8.2.7 which
 has not yet been scheduled.

I do intend to re-package 8.2.6, just haven't found the time yet. I
*might* be able to later today.


I managed to squeeze it in between some other stuff. It's on the
server now, and should be generally available for download within 24
hours.

Hiroshi: does the Japanese build need to be rebuilt with the new plJava build?


Yeah, It is a very important release version.!
Anyway, I will try hard with problem solution of slony. :-)

Regards,
Hiroshi Saito

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


[BUGS] BUG #3897: plJava dll still doesn't load

2008-01-23 Thread David Gradwell

The following bug has been logged online:

Bug reference:  3897
Logged by:  David Gradwell
Email address:  [EMAIL PROTECTED]
PostgreSQL version: 8.3rc2
Operating system:   Windows Server 2003
Description:plJava dll still doesn't load
Details: 

I've successfully installed plJava on postgres 8.2.6 using Kris Jurka's
version at http://www.ejurka.com/pgsql/pljava/826/.  Note that I failed to
get the standard distribution download to work.

I've now tried to get plJava running on 8.3rc2 (having failed on rc1 -
already reported) using the pljava.dll and pljava.jar in the distribution. 
I can't get these to work, despite having followed the installation
instructions carefully and having got them to work for 8.2.6.

Error message is ERROR: could not load library C:/pljava/pljava.dll: The
specified module could not be found.

(to be clear, I've set  pljava.classpath='C:\\pljava\\pljava.jar'
If I leave pljava.classpath unset then I get a similar error with the
default library location identified.)

I've checked that a copy of the distributed dll is indeed in C:\pljava !

I've got a clean machine available with only Postgres 8.3 rc2 and Netbeans
IDE on it so I'm very happy to test an alternative pljava.dll and pljava.jar
combination.

I have a version of the Deploy code built to run under Netbeans and with
some of my own diagnostics - so I can see exactly which call it is failing
on (see below) and can run repeat tests for you if useful.

Regards

David Gradwell

Failing call is in initJavaHandlers():

stmt.execute(
CREATE OR REPLACE FUNCTION sqlj.java_call_handler() +
 RETURNS language_handler +
 AS 'pljava' +
 LANGUAGE C);

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings