Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tomcat 7 fail to start

Tags:

tomcat

tomcat7


I have Tomcat 7 running as service on win 7 server over a year now without any problems
Server has plenty or HDD and memory,
Today the server was down, trying to start it i am getting the error:

2012-06-13 15:15:22 
Commons Daemon procrun stdout initialized
Error occurred during initialization of VM
Unable to load native library: Can't find dependent libraries


I switched the vm parameter on the java tab of the service properties from:
C:\Program Files\Java\jre6\bin\client\jvm.dll
to:
C:\Program Files\Java\jdk1.6.0_23\jre\bin\client\jvm.dll


And now its seems to work fine.
What could be the cause of this error out of the blue?
Thank you

like image 734
JavaSheriff Avatar asked Feb 21 '23 04:02

JavaSheriff


2 Answers

I did a reinstall of JRE to version 6u25 and Tomcat was able to start again.

I guess something must have messed up the JRE depenencies. The only recent installations on the server was a couple of days ago. Before that it had not been changed since the beginning of the year. I list the recent installations here for reference but I do not claim to know that they were the cause of the problem:

  • Microsoft SQL Server 2008 R2 Management Objects (x64)
  • Microsoft Web Platform Installer 3.0
  • Microsoft SQL Server System CLR Types (x64)
  • Microsoft Web Deploy 2.0
  • Google Chrome
like image 167
Magnus Lindhe Avatar answered Feb 27 '23 18:02

Magnus Lindhe


AFAIK,

the Sun/Oracle Java 6 SDK installer on Windows installs another JRE inside of its JDK folder.

Obviously something "happened" on your server's "normal" JRE installation, maybe an update failed, or someone has uninstalled what seemed to be a redundant duplicate of the JRE.

There is/was a known issue with the JRE installer:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7114143

There are two different JVMs the "client" vm and the "server" vm, on some systems you will only find either the server or the client vm version, on some systems both.

C:\Program Files\Java\jre6\bin\client\jvm.dll and/or C:\Program Files\Java\jre6\bin\server\jvm.dll

The expected behaviour on Windows for Java 6 is to install always a client jvm:

http://docs.oracle.com/javase/6/docs/technotes/guides/vm/server-class.html

http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#compiler_types

like image 43
Joerg Ruethschilling Avatar answered Feb 27 '23 19:02

Joerg Ruethschilling