[copy-edit approved]Exception: Native implementation requiredTibrvException[error=27,message=Native implementation required].

[copy-edit approved]Exception: Native implementation requiredTibrvException[error=27,message=Native implementation required].

book

Article ID: KB0090698

calendar_today

Updated On:

Products Versions
TIBCO Rendezvous -
Not Applicable -

Description

Resolution:
Description:
= = = = = = =

1). The user specified IMPL_JAVA but tries to use a feature provided by the native layer.

2).Native libraries could not be loaded as needed during initialization of the library.

Resolution:
= = = = = =

1). If you are using BW and run into a similar issue, refer to SOL1-8UZP1N.

2).The following is one of the common seen examples. This trace can be reproduced by renaming libcrypto.so.0.9.8 file to libcrypto.so.0.9.8.64.
======================================================
Failed to create TibrvRvdTransport:
TibrvException[error=27,message=Native implementation required]
        at com.tibco.tibrv.TibrvRvdTransport.init(TibrvRvdTransport.java:67)
        at com.tibco.tibrv.TibrvRvdTransport.&ltinit>(TibrvRvdTransport.java:42)
        at tibrvlisten.&ltinit>(tibrvlisten.java:39)
        at tibrvlisten.main(tibrvlisten.java:135)
Internal exception:
TibrvException[error=901,message=Library not found: tibrvjsd64]
        at com.tibco.tibrv.Tibrv.loadLib(Tibrv.java:474)
        at com.tibco.tibrv.Tibrv.open(Tibrv.java:260)
        at tibrvlisten.&ltinit>(tibrvlisten.java:25)
        at tibrvlisten.main(tibrvlisten.java:135)
Internal exception:
java.lang.UnsatisfiedLinkError: /rv/build/rv/rel/8_3_2/linux26gl23/x86/ref/lib/libtibrvjsd64.so: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        at com.tibco.tibrv.Tibrv.loadLib(Tibrv.java:468)
        at com.tibco.tibrv.Tibrv.open(Tibrv.java:260)
        at tibrvlisten.&ltinit>(tibrvlisten.java:25)
        at tibrvlisten.main(tibrvlisten.java:135)
Internal exception:
TibrvException[error=901,message=Library not found: tibrvjsd64]
        at com.tibco.tibrv.Tibrv.loadLib(Tibrv.java:474)
        at com.tibco.tibrv.Tibrv.open(Tibrv.java:260)
        at tibrvlisten.&ltinit>(tibrvlisten.java:25)
        at tibrvlisten.main(tibrvlisten.java:135)
Internal exception:
java.lang.UnsatisfiedLinkError: /rv/build/rv/rel/8_3_2/linux26gl23/x86/ref/lib/libtibrvjsd64.so: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        at com.tibco.tibrv.Tibrv.loadLib(Tibrv.java:468)
        at com.tibco.tibrv.Tibrv.open(Tibrv.java:260)
        at tibrvlisten.&ltinit>(tibrvlisten.java:25)
        at tibrvlisten.main(tibrvlisten.java:135)
Internal exception:
java.lang.UnsatisfiedLinkError: /rv/build/rv/rel/8_3_2/linux26gl23/x86/ref/lib/libtibrvjsd64.so: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        at com.tibco.tibrv.Tibrv.loadLib(Tibrv.java:468)
        at com.tibco.tibrv.Tibrv.open(Tibrv.java:260)
        at tibrvlisten.&ltinit>(tibrvlisten.java:25)
        at tibrvlisten.main(tibrvlisten.java:135)

==========================================================

If you use IMPL_SELECT, RV will load the JNI library if possible, otherwise use the Java implementation. Since tibrvj could not be found, Tibrv.open() will use Java implementation, but in the  code, if you create a rvd transport, then you will get
TibrvException[error=27,message=Native implementation required].

If you changed to Tibrv.open(IMPL_NATIVE), and tibrvj.so could not be found, you will not see “[error=27,message=Native implementation required]” but only “[error=901,message=Library not found: tibrvjsd64]”.

You need to fix your classpath/ld_library_path64 setting correctly in your UNIX environment for the library in the error message.

Issue/Introduction

[copy-edit approved]Exception: Native implementation requiredTibrvException[error=27,message=Native implementation required].