Problema com PL/Java (pra variar)


#1

Saudações,

Continuando a eterna discussão sobre como instalar o PL/Java…

*** Tenho o JDK 1.6 update 10 instalado.

Quando tento instalar o PostgreSQL 8.3.6 com o instalador padrão pra Windows, a opção PL/Java sempre aparece desabilitada. Então baixei o PL/Java 1.4 do site http://pgfoundry.org/projects/pljava/ (o arquivo é pljava-i686-pc-mingw32-pg8.3-1.4.0.tar.gz).
Descompactei este arquivo em C:\Arquivos de programas\PostgreSQL\8.3\share\pljava.

Copiei o arquivo pljava.dll para C:\Arquivos de programas\PostgreSQL\8.3\lib.

Editei o arquivo postgresql.conf (em C:\Arquivos de programas\PostgreSQL\8.3\data). As linhas que eu alterei/adicionei, são estas:


dynamic_library_path = 'C:\\Arquivos de programas\\PostgreSQL\\8.3\\lib'



#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

#custom_variable_classes = ''		# list of custom variable class names
custom_variable_classes = 'pljava'
pljava.classpath = 'C:\\Arquivos de programas\\PostgreSQL\\8.3\\share\\pljava\\pljava.jar'  
pljava.release_lingering_savepoints = true
pljava.vmoptions = '-Xmx64M -Dbackchannel.port=48'
pljava.debug = false

Depois de reiniciar o serviço do PostgreSQL, eu tento executar o seguinte comando no pgAdmin, para ver se o PL/Java está funcionando:

CREATE FUNCTION java_call_handler() RETURNS language_handler
    AS 'pljava', 'java_call_handler'
    LANGUAGE c;

O erro que retorna é este:

ERROR:  could not load library "C:/Arquivos de programas/PostgreSQL/8.3/lib/pljava.dll": unknown error 126

********** Erro **********

ERROR: could not load library "C:/Arquivos de programas/PostgreSQL/8.3/lib/pljava.dll": unknown error 126
SQL state: 58P01

Em outros posts, eu li sobre a variável dynamic_library_path (que eu alterei no postgresql.conf). Tentei mudar ela para:

dynamic_library_path = 'C:\\Arquivos de programas\\PostgreSQL\\8.3\\lib:$libdir'

(perceba o “:$libdir” no final)

Agora, após tentar executar o mesmo comando, o erro muda:


ERROR:  could not access file "pljava": No such file or directory

********** Erro **********

ERROR: could not access file "pljava": No such file or directory
SQL state: 58P01

Enfim… já tentei mexer em vários outros lugares, como as variáveis de ambiente do Windows: PATH, JAVA_HOME e JRE_HOME. Mas nada acontece.

Já faz dois dias que estou mexendo só com isso, e nada…

Alguém aí sabe quais passos estão faltando para que funcione tudo certo aqui pra mim???

Muito obrigado


#2

Carlos,

Tente colocar a pasta Client do JRE no PATH do windows.

Depois execute o comando:

Você vai precisar mudar o caminho do postgresql.jar e pljava.jar do seu ambiente:

java -cp C:\Adempiere\lib\postgresql.jar;pljava.jar org.postgresql.pljava.deploy.Deployer -database template1 -install

Abraço
Ricardo


#3

Bom dia…

Bom… uma solução que eu encontrei foi colocar o arquivo jvm.dll (que está na pasta de instalação do java na pasta client) na pasta Windows/System32

Fica aí mais uma solução pro pessoal, porque esse problema é um dos mais chatos!

Valeu,

Abraço
Hamilton


#4

RESOLVIDO

É isso mesmo… agora funcionou…

Depois de instalar o JDK 1.6.0_10, eu copiei o arquivo C:\Java\jdk1.6.0_10\jre\bin\client\jvm.dll para a pasta C:\WINDOWS\system32.

Aí, ao tentar instalar o Postgresql 8.3.7-1, a opção do PL/Java aparece habilitada.

Nem precisei baixar o PL/Java separado, pois assim funcionou legal.

Até mais