SiteMinder Policy Server failed to load JVM library.

Document ID : KB000024816
Last Modified Date : 14/02/2018
Show Technical Document Details

Issue: 

We are having an issue with loading the JVM in the policy server when we make Federation Transactions.

We have recently upgraded JDK version from jdk1.8.0_25 to jdk1.8.0_101 in our policy server, once upgraded when we tested accessing applications we can see applications not working. The error we are receiving is forbidden.

Since the JVM file is not loaded, the policy server fails to process the request further and Failed to initialize tunnel service library 'smjavaapi'.

Here is the entry from the trace log of policy server:

[08/25/2016][04:37:24.160][1964][3028][CServer.cpp:6056][CServer::ProcessRequest][Enter function CServer::ProcessRequest][][][][][][][][][][][][][][][][][][][][]

[08/25/2016][04:37:24.160][1964][3028][SmJVMSupport.cpp:232][GetJVMEnv][JVM library failed to load. Path = C:\Program Files (x86)\Java\jdk1.8.0_101\jre\bin\server\jvm.dll][][][][][][][][][][][][][][][][][][][][]

[08/25/2016][04:37:24.160][1964][3028][SmJavaAPI.cpp:1275][][LogMessage:ERROR:[sm-JavaApi-00670] SmJavaAPI: Unable to get a JVM environment][][][][][][][][][][][][][][][][][][][][]

[08/25/2016][04:37:24.160][1964][3028][CServer.cpp:6571][][LogMessage:ERROR:[sm-Tunnel-00160] Failed to initialize tunnel service library 'smjavaapi'. SmJavaAPI: Unable to get a JVM environment][][][][][][][][][][][][][][][][][][][][]

[08/25/2016][04:37:24.160][1964][3028][CServer.cpp:6242][CServer::ProcessRequest][Leave function CServer::ProcessRequest][][][][][][][][][][][][][][][41790036][][][][][]

Environment:  

Policy server 12.52.200.6411 on Windows 2012 R2 Standard (64 bit)

Cause: 

1. SiteMinder Policy Server is unable to load the JVM, because the library jvm.dll is not present under C:\Program Files (x86)\Java\jdk1.8.0_101\jre\bin\server directory. 

2. Please check Java Environment variables set properly or not

3. Please check bit version of Java, if it is 64 bit then policy server wont be able to load since it is 32 bit.

Resolution:

1. If JVM.dll is not present under <JavaHomeDirectory>\bin\server, As a workaround you can copy the library from <JavaHomeDirectory>\bin\client to <JavaHomeDirectory>\bin\server.

2. Please make sure to set Java Environment variable properly.

3. Please match the bit version Java with Policy Server Bit version.