Internal exception:java.lang.UnsatisfiedLinkError: I:\RV\7.3.27\bin\tibrvjsd.dll: The operating system cannot run %1

Internal exception:java.lang.UnsatisfiedLinkError: I:\RV\7.3.27\bin\tibrvjsd.dll: The operating system cannot run %1

book

Article ID: KB0092010

calendar_today

Updated On:

Products Versions
TIBCO Rendezvous -
Not Applicable -

Description

Resolution:
Description:
===========

The following errors have been seen on some machines when running Java applications and the TIBCO Rendezvous communication daemon (RVD). If certain DLLs, libeay.dll or slleay32.dll exist in the C:\Windows\System32 directory they stop the TIBCO Rendezvous (RV) application from starting up and the following error is generated:

Internal exception:
java.lang.UnsatisfiedLinkError: I:\RV\7.3.27\bin\tibrvjsd.dll: The operating system cannot run %1

Environment:
============
RV 7.2+
Windows


Symptoms:
==========

TIBCO Rendezvous 7.2+ uses OpenSLL code (files libeay32.dll and ssleay32.dll).  Some third-party applications use OpenSSL code.  On some machines, libeay32.dll and ssleay32.dll are already installed (by non TIBCO applications) in C:\Windows\system32.  When TIBCO Java applications are started, the JVM looks for a property called java.library.path that specifies native library paths.  If the java.library.path is not set explicitly then the JVM sets the value of java.library.path to the environment variable PATH but prepends C:\Windows\System32 and other directories to PATH.

If the versions of libeay32.dll and ssleay32.dll in C:\Windows\system32 are not compatible with TIBCO Rendezvous, then TIBCO applications may fail when trying to use TIBCO Rendezvous.  When running or installing TIBCO applications you may get the error message related to the dynamic link library LIBEAY32.dll or SSLEAY32.dll .


Cause:
======

It appears that the dlls in windows system32 are always used regardless of what you specify in the PATH and CLASSPATH environment variables.

We have seen a number of different tests conducted with similar issues and always the C:\Windows\System32 dlls are picked. If you don’t have libeay32.dll and ssleay32.dll, then the application can use another version of libeay32.dll and ssleay32.dll in another path If libeay32.dll and ssleay32.dll exist in C:\Windows\System32 they are going to be used for the applications that need them.


Resolution:
============

The libeay.dll or slleay32.dll libraries are needed for SSL communication, so if you are using only RVD or RVRD you don’t really need them. Only if you use RVSD or RVSRD (the secured daemons) will you need these dlls.  Therefore, if you are not using RVSD or RVSRD then remove the tibrvjsd.jar file from the classpath.  If the application is not using the RVSD or RVSRD functionalitythen there is no need for this to be in the class path, which is what brings in the SSL library NOT rvd.

Issue/Introduction

Internal exception:java.lang.UnsatisfiedLinkError: I:\RV\7.3.27\bin\tibrvjsd.dll: The operating system cannot run %1