User Tools

Site Tools


Sidebar

Table Of Contents

endurox-java:v1.5.x:manuals:libexjavald.8

libexjavald

Name

libexjavald — Wrapper library for loading libexjava(8)

Synopsis

libexjavald.so

DESCRIPTION

This library is for loading the libexjava.so library where the actual Enduro/X XATMI binding code exists. Wrapper library is needed due to way the Java loads the native library. Java uses RTLD_LOCAL flag when dynamic library is loaded. In cases when distributed transactions are used, the Enduro/X libraries (like libatmi.so) loads the XA drivers and in case of libndrxxajdbc(8) (the JDBC XA switch functionality provider) back uses the libexjava.so. Thus if it is loaded with RTLD_LOCAL, the XA switch functions does not see the symbols.

Thus to avoid the situation and provide the libexjava.so symbols to the subsequently loaded shared objects, the wrapper library is introduced, when accepts Java JNI calls, loads the libexjava.so globally with RTLD_GLOBAL and proxies the calls to the loaded library. JNI_OnLoad() and JNI_OnUnload() functionality is used to load/unload the libexjava.so library.

When new native method is introduced to Java class of the Enduro/X package, wrapper can be re-generated by toosl/genwrap.pl script.

BUGS

Report bugs to support@mavimax.com

COPYING

© Mavimax, Ltd