Error en select sqlj.install_jar

Inicio Foros Foro principal Instalación y Configuración Error en select sqlj.install_jar

  • Este debate está vacío.
Viendo 5 entradas - de la 1 a la 5 (de un total de 5)
  • Autor
    Entradas
  • #31782
    Dario Parente
    Miembro

    Hola.

    tengo un error en un procedimiento de instalacion de libertya 10.09, y el error es al final de la instalacion, donde dice que luego de realizar el dump de la base de datos hay que realizar un procedimiento como expongo abajo.

    dice la instalacion.

    Luego de instalar el dump, se debe actualizar el sqlj. Para esto nos logueamos al postgre en la base de datos libertya:

    pslq -d libertya -U libertya

    select sqlj.install_jar(‘file:///ServidorOXP/lib/sqlj.jar’, ‘libertya’, true); select sqlj.set_classpath(‘libertya’, ‘libertya’);

    Para lo cual obtengo el siguiente error

    WARNING: java.lang.NoClassDefFoundError: org/postgresql/pljava/internal/Backend
    ERROR: Unable to load class org/postgresql/pljava/internal/Backend using CLASSPATH ‘-Djava.class.path=.’
    ERROR: Failed to create Java VM

    No se debido a que puede ser este error, ya que anteriormente lo habia instalado bien en otra PC y segui exactamente igual la instalacion.
    Salvo que es esta PC tengo instalado postgres 9.0 en slackware 13.37.
    Todo aclaro se instalo bien, incluso el lenguaje pljava, el java jdk, etc.

    alguna sugerencia o no hace falta este paso en esta version?

    gracias

    #35742
    Dario Parente
    Miembro

    Bueno me respondo por si solo y el tema es que simplemente libertya en su version 10.09 no funciona con postgres 9.0, y esto hace que uno lo pueda instalar sin problemas e incluso pl-java para postgres 9.0 se instala bien, pero en la consulta en pgadmin sobre si esta instalado pl-java trae errores que hace ver que no anda bien para esta version.

    #35746
    Dario Parente
    Miembro

    Tambien he probado postgres 8.4.4 y da el mismo error q con postgres 9.0 por lo que se ve que tampoco anda.
    Dejo de investigar y me remito a usar postgres 8.3 el cual funciona con libertya, lo unico que trae una limitacion si se quiere actualizar postgres para otras aplicaciones.

    #35743
    Javier Ader
    Participante

    Que tal Dario. A que llamas instalar pl/java bajo postgres 9.0 o 8.4? Te pregunto porque el instalador de libertya no usa un instalador de postgres común (en realidad, creo que si, pero agrega otro .exe que instala la extensión necesario para que postgres soporte pl/java; el instalador de postgres detecta esta extensión y la instala también).
    Si miras el archivo data/postgresql.conf (en el postgres que te instala Libertya) vas a ver que sobre el final hay una seccion:

    Code:
    #——————————————————————————
    # CUSTOMIZED OPTIONS
    #——————————————————————————

    #custom_variable_classes = ” # list of custom variable class names

    custom_variable_classes = ‘pljava’ # list of custom variable class names
    pljava.classpath=’E:\PostgreSQL\8.3\share\pljava\pljava.jar’

    En donde E:\PostgreSQL\8.3\ depende de donde lo hayas instalado. En particular, en ese pljava.jar bajo el directorio sharepljava existe la clase org/postgresql/pljava/internal/Backend.class (abrilo con cualquier programa que maneje zips)

    El install_jar no solo requiere que se alla creado el esquema sqlj, y que pl/java este “instalado” en la base de datos (el tema es que pl/java se instala en posgtre como un todo, pero después se habita por base de datos).

    No se si replicando esta configuración y directorio en 8.4 o 9.0 se estaría instalando de manera manual a PL/java; habría que probar.

    Más allá de todo esto, desde hace tiempo que pienso que habría que librarse de PL/java completamente…. algo estuve haciendo en estos días (pase todas las bomPriceXXX y bomQtyXXX por sus equivalentes salvo un pequeño cambio de semántica relativa a los precios en instancias de productos, que no se si se usara mucho), y mis tests es que usando un equivalente Pl/PgSql hay incluso mejoras de performance. Me trabe un poco en otras funciones (invoiceOpen por ej) porque se empiezan a relacionar con otras cuestiones más generales en las que tengo mis dudas de si actualmente se esta haciendo lo correcto (por ej, la vista C_Invoice_V que es usada por estas funciones, tiene cosas medio raras… si se modifica esta vista, también se afecta otras partes del sistema que hacen uso directo de la misma; por ej, el calculo del crédito usado por una EC….)

    #35744
    Dario Parente
    Miembro

    Bueno Voy a ampliar mi experiencia y bien como dices tu el problema no es que no anda con postgres 8.4 o postgres 9.0, en conclucion si funciona, el problema era como dices tu me falto realizar esa configuracion de linea en postgres.conf.
    Ahora te aclaro que como yo uso linux no es necesario colocar una linea como la tuya en donde se especifica la version de postgres instalada.
    Mi linea simplemente debe contener esto.

    dynamic_library_path = ‘/usr/lib/jdk1.6.0_10/jre/lib/i386:/usr/lib/jdk1.6.0_10/jre/lib/i386/client:/usr/lib/postgresql:/ServidorOXP/lib’

    custom_variable_classes = ‘pljava’

    pljava.classpath=’/usr/lib/postgresql/pljava.jar’

    Como ves solo hace referencia de donde esta instalado postgres, y relativamente los paquetes de postgres 8.3, 8.3, 9.0 se instalan en el mismo directorio sin numero de version.

    Bien colocando estas lineas faltantes pl-java se instala bien para libertya.

    por otro lago estoy de acuerdo en que se deberia cambiar la forma de trabajo de libertys con este lenguaje pero bueno solo debo decir que funcionar funciona.

    gracias

Viendo 5 entradas - de la 1 a la 5 (de un total de 5)
  • Debes estar registrado para responder a este debate.