Loading of native libraries in PLJAVA

Started by Nageshwar Raoabout 21 years ago2 messagesgeneral
Jump to latest
#1Nageshwar Rao
NageshwarR@PLANETASIA.COM

We are facing 2 problems in loading files from Pljava.

1. Loading Native C library from Pljava trigger.

From Pljava trigger, we were trying to load native library,
Using System.loadLibrary("<library_name>"), which is
specified in the LD_LIBRARY_PATH.

Also specified the library file under /var/lib/pljava where
all the pljava specifc "*.so" files are located, which has an entry in the
postgresql.conf - dynamic_library_path for
"/var/lib/pljava",

Both theses cases failed to load native library.

we are getting this error in both cases-
UnSatisfiedLinkedError

2. Loading Properties file from trigger. (using
Properties.load(<properties_name.properties>))
We are unable to load properties file from
Properties.load("<properties_name.properties>").
we have included properties file in jar file and installed
the jar and set the jar file in the classpath using "sqlj.set_classpath".

Any light on this.

Thnx
Rao

#2Thomas Hallgren
thhal@mailblocks.com
In reply to: Nageshwar Rao (#1)
Re: Loading of native libraries in PLJAVA

Nageshwar,
This is not the right forum for PL/Java issues. You should use mailing
list at pljava-dev@gborg.postgresql.org.

We are facing 2 problems in loading files from Pljava.

1. Loading Native C library from Pljava trigger.

From Pljava trigger, we were trying to load native
library, Using System.loadLibrary("<library_name>"), which is

specified in the LD_LIBRARY_PATH.

The likely cause of this is that this library in turn have dependencies
to something not specified in the LD_LIBRARY_PATH or that you have some
mismatch in function naming. That in turn should be apparent from the
exception message (can't tell since you didn't convey it here).

Also specified the library file under /var/lib/pljava
where all the pljava specifc "*.so" files are located, which has an
entry in the postgresql.conf -
dynamic_library_path for "/var/lib/pljava",

Both theses cases failed to load native library.

we are getting this error in both cases-
UnSatisfiedLinkedError

The dynamic_library_path is only used by the PostgreSQL backend when it
loads a module. It has no effect whatsoever on the System.loadLibrary
method.

2. Loading Properties file from trigger. (using
Properties.load(<properties_name.properties>))
We are unable to load properties file from
Properties.load("<properties_name.properties>").
we have included properties file in jar file and
installed the jar and set the jar file in the classpath using
"sqlj.set_classpath".

To my knowledge there's Properties.load method that takes a String argument.

You have to use the Class.getResourceAsString() in order to obtain an
InputStream for a resource stored in a jar file. The class in question
should be in the same package as the resource (i.e. your properties file).

Regards,
Thomas Hallgren