Foren

Installation als Windows Service auf 64bit - System

Thomas Fröhlich, geändert vor 14 Jahren.

Installation als Windows Service auf 64bit - System

New Member Beiträge: 21 Beitrittsdatum: 02.09.09 Neueste Beiträge
Guten Tag,

mit dem folgenden Problem schlage ich mich nun schon 2 Tage herum:

Ziel ist es, LIFERAY 5.2.3 als Windows Service auf einem 64bit-Windows-Server-System zu installieren. Unter Verwendung eines bereits installierten JDK 1.6 (64bit) anstelle der mit LIFERAY mitkommenden JRE 1.5.0_17 - Umgebung.

Getestet wurden die LIFERAY-As-A-Windows-Service - Installationen mit den folgenden 2 Systemen:

System 1:
- MS Windows - Server 2008 x64
- JAVA SDK 1.6.0_16 x64
- LIFERAY 5.2.3 mit Tomcat 6

System 2
- MS Windows - Server 2008 x32
- JAVA SDK 1.6.0_16 x32
- LIFERAY 5.2.3 mit Tomcat 6


Auf beiden Systemen ist der manuelle Start von LIFERAY über die startup.bat im bin-Verzeichnis von Tomcat problemlos möglich.

Die Installation und Einrichtung des Windows - Dienstes erfolgte auf beiden Systemen gemäß
http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Starting+Liferay+as+a+Windows+Service


Mit System 1 gelang die LIFERAY-Service-Installation unter Nutzung von JAVA 1.6 leider nicht. Der Dienst wurde zwar installiert, beim Starten des Dienstes liefert Windows eine vollkommen nichtssagende Fehlermeldung "Apache Tomcat Liferay auf Lokaler Computer konnte nicht gestartet werden. Dienstspezifischer Fehlercode 0." Im Anhang gibt es einen Screenshot der Fehlermeldung.
In keiner der Tomcat-Logs ist ein Hinweis auf die Fehlerursache vorhanden.

Mit System 2 gelang die LIFERAY-Service-Installation unter Nutzung von JAVA 1.6 und der Start des Dienstes funktioniert problemlos, wenn man das sdk1.6.0_16/bin - Verzeichnis mit in die Umgebungsvariable PATH aufnimmt.


Auffälliger Unterschied zwischen System 1 <> System 2 (außer x64 <> x32):
Das 32bit JDK enthält in seinen bin-Unterverzeichnissen neben der msvcrt.dll auch die msvcr71.dll; das 64bit JDK besitzt in keinem Verzeichnis eine msvcr71.dll.

Zum Thema "Java und fehlende msvcr71.dll" findet man genug im Internet. Bsp.:
https://issues.apache.org/bugzilla/show_bug.cgi?id=41538
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6509291
http://www.duckware.com/tech/java6msvcr71.html

Also habe ich die msvcr71.dll aus dem 32bit JDK genommen und in System 1 in die gleichen 64bit - JDK-bin-Verzeichnisse wie auf System 2 kopiert. Das hat leider das Problem NICHT gelöst. Offensichtlich ist diese msvcr71.dll nicht kompatibel zum 64bit - Java. Ruft man "java -version" auf, meldet sogar dieser simple Befehl, dass die msvcr71.dll nicht geladen werden kann.


Nun die eigentliche Frage:

Fakt ist, dass Liferay als Dienst auf dem 64bit - Windows Server 2008 - System (System 1) funktioniert, wenn man die mitgelieferte 32bit - 1.5 JRE unterhalb des Tomcat-Verzeichnisses verwendet. Mit einem Java 1.6 64bit funktioniert LIFERAY 5.2.3 als Windows - Service nicht.

Hat bitte jemand eine Lösung für genau dieses 64bit - Problem?

Vielen Dank
Thomas
thumbnail
Dennis Greiffenberg, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

Regular Member Beiträge: 222 Beitrittsdatum: 30.04.07 Neueste Beiträge
Hallo Thomas,

ich würde zunächst mein Augenmerk darauf legen, bei "java -version" eine lauffähige /kompatible Version zu erzielen.
Wenn das geklappt hat kannst Du im Tomcat-Monitor im Reiter "Java" -> "Java Virtual Machine" den Pfad auf die korrekt DLL legen und über den Monitor den Tomcat starten. Wenn das klappt sollte auch der Start des Dienstes klappen, da hier nicht anderes gemacht wird.

/Dennis
Thomas Fröhlich, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

New Member Beiträge: 21 Beitrittsdatum: 02.09.09 Neueste Beiträge
Hallo Dennis,

danke für Deine Antwort.

java -version verweißt auf die 64bit - JDK 1.6 - Installation. Konfiguriere ich die setenv.bat entsprechend, indem dort JAVA_HOME auf das 64bit - JDK 1.6 verweißt, und starte dann Liferay manuell per startup.bat funktioniert alles 1A.

Was nicht funktioniert ist die Installation des Windows-Services in der 64bit - Umgebung (siehe meinen ersten Post).

Starte ich den Tomcat-Monitor "Tomcat6w //ES//Liferay" und gebe auf dem Reiter "Java" wie empfohlen als "Java Virtual Machine" die jvm.dll im Java 1.6 - Ordner an (siehe Snapshot im Anhang) und starte dann den Dienst manuell per "Tomcat6 //TS//Liferay" erhalte ich in der jakarte_service_xxxxx.log wie nicht anders erwartet die folgende Fehlermeldung, die dem im 1. Post beschriebenen Java-64bit-Problem entspricht:

[2009-09-21 08:44:26] [174 javajni.c] [error] %1 ist keine zulässige Win32-Anwendung.
[2009-09-21 08:44:26] [994 prunsrv.c] [error] Failed creating java C:\Program Files\Java\jdk1.6.0_16\jre\bin\server\jvm.dll
[2009-09-21 08:44:26] [1269 prunsrv.c] [error] ServiceStart returned 1

Gebe ich dagegen im Tomcat-Monitor "Tomcat6w //ES//Liferay" auf dem Reiter "Java" wie empfohlen als "Java Virtual Machine" die jvm.dll im Java 1.5 - Ordner der Liferay-Installation an (siehe Snapshot im Anhang) und starte dann den Dienst manuell per "Tomcat6 //TS//Liferay" funktioniert alles bestens - der Dienst startet problemlos.

Ich bin also leider weiterhin ratlos emoticon

MfG Thomas
thumbnail
Ferhat Orta, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

New Member Beiträge: 4 Beitrittsdatum: 01.04.08 Neueste Beiträge
Sehr geehrter Herr Fröhlich,

darf ich Ihnen anbieten die Installation mit der von uns supporteten Enterprise Edition durchzuführen. Die Liferay Standard bzw. Community Edition wird von uns nicht supportet und weißt daher einige Bugs auf. Aus diesem Grund empfehlen wir ausschließlich die von uns supportete EE.

Bitte schicken Sie mir (ferhat.orta@liferay.com) bei Interesse Ihre E-Mail Adresse zu, damit ich Ihnen den download Link zu der neuesten Liferay Enterprise Edition 5.2.5 zukommen lassen kann.

Selbstverständlich stehe ich Ihnen ebenfalls für weitere Fragen zur Verfügung.

Herzliche Grüße

Ferhat Orta
Thomas Fröhlich, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

New Member Beiträge: 21 Beitrittsdatum: 02.09.09 Neueste Beiträge
Sehr geehrter Herr Orta,

vielen Dank für Ihr Angebot, welches höchstwahrscheinlich unser "Liferay-Problem" lösen würde - aber nicht die ähnlich gelagerten Probleme bei all unseren anderen Server-Applikationen, die auf einem Tomcat basieren bzw. einen Tomcat als Web-App-Server verwenden. So haben wir das gleiche Problem in 64bit-Umgebungen mit einem Geronimo-verwalteten Tomcat als Apllication Container und dem INTALIO|Server, der ebenfalls einen Tomcat verwendet.

Eine Lösung ist auf jeden Fall die Verwendung des Java Service Wrappers von Tanuki Software (http://wrapper.tanukisoftware.org/doc/english/integrate.html). Hier ist aber die 64bit-Lösung nicht kostenlos - und die Community-Edition unterstützt nur 32bit-Umgebungen. Unsere Tests haben gezeigt, das mit der Community Edition auch die Installation einer Java-Applikation in 64bit-Umgebung als Windows Service funktioniert, im jsw.log gibt es aber diverse Fehlermeldungen über nicht geladene dll's und wir befürchten bisher noch unentdeckte Folgeprobleme im Dauerbetrieb.

Unsere derzeitige (funktionierende) Lösung wird nun - nach intensiven Recherchen - die folgende sein (und nur der Langzeittest wird zeigen, ob diese Lösung auf Dauer wirklich funktioniert):

- Verwendung der "Windows Server 200x Resource Kit Tools"
(z.B. http://www.microsoft.com/Downloads/thankyou.aspx?familyId=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displayLang=en)
- damit haben wir problemlos die startup.bat als Service eingerichtet
- Verwendung: http://support.microsoft.com/kb/137890/de
- weiteres Beispiel: http://www.muellerdesigns.net/dasblog/2006/12/29/InstallingABATFileAsAWindowsServiceSpecificallyFitnesse.aspx

MfG
Thomas Fröhlich
Thomas Weckert, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

Junior Member Beiträge: 54 Beitrittsdatum: 10.08.09 Neueste Beiträge
Der Tipp war sehr gut- das hat auch bei mir funktioniert. "Unschön" ist natürlich daß man auf dem 64-Bit System weiter die 32-Bit JRE verwenden muß. Ich habe es bisher nicht geschafft Liferay mit einer 64-Bit JRE lauffähig zu bekommen. Insofern hat ein 64-Bit System eigentlich keine Vorteile mehr. Ausser daß sich "64-Bit" viel toller anhört als nur "32-Bit" emoticon

LG Thomas
thumbnail
Darko Joseph Hojnik, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

Regular Member Beiträge: 125 Beitrittsdatum: 03.08.09 Neueste Beiträge
Thomas Weckert:
Der Tipp war sehr gut- das hat auch bei mir funktioniert. "Unschön" ist natürlich daß man auf dem 64-Bit System weiter die 32-Bit JRE verwenden muß. Ich habe es bisher nicht geschafft Liferay mit einer 64-Bit JRE lauffähig zu bekommen. Insofern hat ein 64-Bit System eigentlich keine Vorteile mehr. Ausser daß sich "64-Bit" viel toller anhört als nur "32-Bit" emoticon

LG Thomas


Negativ emoticon

Liferay läuft ausgezeichnet auf einem 64 bit OS. Zumindest Windows Vista Ultimate mit SP2. Sowie im Tomcat als auch im Glassfish v2 und v3. Das ist meine Entwicklungsmaschiene.

Wie man Tomcat unter Windows als Systemservice startet kann man über Google herausfinden. Um ihn unter Windows x64 zu starten bedarf es 64 bit Binary's. Die 2 Files befinden sich im Anhang. Die beiden original exen erwarten per default Java mit 32 bit.

Unter Glassfish v2 bedarf es keiner Änderung. Liferay läuft out of the Box. Bei mir mit PostgreSQL

Die War File von Sourceforge.net mit Liferay auf Glassfish v3 geht nicht. Aber man kann unter Linux/Windows Liferay für Glassfish v3 kompilieren

Tools Java JDK 1.6.17 x64 (hab noch nicht upgegraded ;)) Apache ANT 1.7.1 . JAVA Pfad sowie für ANT muss man unter Windows in der Systemsteuerung einstellen. Ab da öffnet man die Powershell und lässt den Rechner 5 min arg foltern ;)

ganz kurz beschrieben

Unter www.hojnik.de läuft Liferay mit PostgreSQL 8.4.2 auf Scientific Linux 5.4 x64 (RHEL 5.4 Clone), Sun Glassfish Enterprise Server v3, JDK 1.6.17 x64 und Apache 2.2.3 mit MOD_JK

P.S.
Sobald ich meine Groupware aus China mit was entsprechenden Ersetzt habe, werde ich mich dann dem Design widmen. Die Lösung läuft zwar einwandfrei, aber die jüngsten Nachrichten im TV geben mir doch zu denken. Ich plane mit Liferay ein Multidomainsetup inkl. einiger JSR 168 Portlets
Thomas Weckert, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

Junior Member Beiträge: 54 Beitrittsdatum: 10.08.09 Neueste Beiträge
Hi Darko,

also in meinem Fall handelt es sich um Windows Server 2008.

Soweit ich weiß gibt es keine offizielle Tomcat Distribution mit 64-Bit Service Wrappern. Ich weiß daß im Netz diverse 64-Bit Service Wrapper "herumgeistern" die sich Entwickler selber gebaut haben. Aber diese Binaries will ich nicht für ein Produktivsystem beim Kunden verwenden- ich weiß doch gar nicht was derjenige sich u.U. da alles reincompiliert hat.

Wenn ich einen 64-Bit Java 1.6 JDK mit einem 64-Bit Tomcat Service Wrapper (wie man ihn ggf. im Netz findet) benutze kann ich zwar wie den Service installieren, aber dann startet Liferay nicht mehr ("BeanLocator is null"). Ich hatte bisher nicht genügend Zeit, dieses Problem zu lösen. Irgendwann muß halt jedes Projekt fertig sein und der Kunde will online gehen.

Gruss, Thomas
thumbnail
Darko Joseph Hojnik, geändert vor 14 Jahren.

RE: Installation als Windows Service auf 64bit - System

Regular Member Beiträge: 125 Beitrittsdatum: 03.08.09 Neueste Beiträge
Läuft bei mir ohne Weiteres. Das Argument mit den Binary's ist schwach. Du verwendest Arbeit die du nicht selber gemacht hast. Du kennst die Lizenzen von Liferay sowie Tomcat. Aber du kannst in ca 2 min die Binary's aus dem Sourcecode mit MinGW-64 selber bauen.
Oder du verwendest den Sun Glassfish Enterprise Server. Der kommt ohne Binary's aus. Der liefert nur ein paar Scripte und viele viele Javaclassen.