deploying wo on windows

Post on 19-May-2015

4.572 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Deploying WO on WindowsMarkus Stolljunidas GmbH, Stuttgart

• customer requirement

• Windows integration

• WebObjects 4.x migration / mixed deployment

• Why not?

Windows deployment, why?

WebObjects on Windows

• Setup explained, Demos

• Common pitfalls

• Tools and techniques for Debugging

• URLs for stuff you need

• Q&A

Windows prerequisites

• Windows Server 2003, 2008 (and 2012), 64/32 Bit

• (Windows 7)

• Install all updates / service packs

• Install Java RE (current 64 Bit)

• Turn off Firewall

• Install Notepad++

WO prerequisites

• Install WebObjects 5.4.3 on a Mac

• pack /System/Library/Frameworks/Java* (except JavaVM.fw)

• Compile current WONDER

• pack WONDER fw, apps, examples

Windows basic setup

• Install VC 2010 Redistributable Packages (64 Bit / 32 Bit)(Apache & WOStart depend on it)64 Bit / 32 Bit

• Choose proper hostname

WO basic setup

• Choose WO base dir (c:\Apple)

• ENV-Variable NEXT_ROOT

• Create Subfolders

• .\Library\Frameworks

• .\Local\Library\Frameworks

• .\Local\Library\WebObjects\Configuration

• .\Local\Library\WebObjects\JavaApplications

Demo 1, Setup

• Windows setup

• WO setup

WOStart

• modified WebObjects-aware Java.exe

• <AppName>.exe replaces <AppName>.cmd / WOBootstrap.jar

• parse Contents\Windows\CLSSPATH.TXT

• application class

• classpath

• JVM parameters

• find and load jvm.dll

WOStart, advantages

• no sub process

• process name == App name

• classpath loaded as system classpath

• able to run as NT Service

with same cmd line parameters

WO app as NT Service

• sc.exe create <ServiceName> displayName= "<DisplayName>" binPath = "<PathToWOStart> <WOParameters>" start= auto

• sc.exe failure <ServiceName> reset= 30 actions= restart/3000

• sc.exe start <ServiceName>

WOStart 64 Bit vs. 32 Bit

• 2 Binaries: 64 Bit and 32 Bit

• WOStart.exe must match the chosen Java VM architecture!

• VC 10 redist!

Demo 2, WOStart

• WOStart

• Install wotaskd and JavaMonitor as NT Service

JavaMonitor / WOTaskD

WOTaskD

WO App 1WO App 2WO App 2

WO Apps

start/stop

Diskconfig

lifebeat

JavaMonitor

JavaMonitor / WOTaskD, multiple hosts

WOTaskD

WO App 1WO App 2WO App 2

WOTaskD

WO App 1WO App 2WO App 2

JavaMonitor

WOTaskD

WO App 1WO App 2WO App 2

Demo 3, Setup JavaMonitor

• Declare host

• Create App & Instance

WebServer / Apache vs. IIS

• IIS

• integrate remote static content

• integrate ASP/.NET content

• modify Adaptor

• needs patched Application class

• Apache

• need for Apache modules

• integrate PHP (secure)

IIS

• Refurbished WOAdaptor

• IIS 7 / 64 Bit and 32 Bit

• Bugfixes (stable like Apache-Adaptor)

• Streaming (even with unset Content-Length)

• Compile using MingW

• WebObjects 4.x compatibility

IIS, cont.

• WOAdaptor is ISAPI-Extension, NOT ISAPI-Filter

• Add Server Role „Web Server (IIS)“

• Option „ISAPI-Extensions“

• Register WOAdaptor at „CGI and ISAPI Restrictions“

• Enable ISAPI-dll at „Handler Mappings“

• Create folders / declare in WebSite

• Configure in Registry

IIS / Application patch

// patch ERXApplication or your Application by adding:

String[] myAdaptorExtensions = new String[]{}

@Override public String[] adaptorExtensions() { return myAdaptorExtensions; }

Demo 4, IIS setup

• IIS installation

• Adaptor config

• WebSite config

• 32 Bit mode

Apache 2.4 under Windows

• Binaries for httpd and WOAdaptor available

• avoid compiling

• runs as NT Service

• short Demo

Debugging WOStart / WOApps

•WOStart debuggingset _JAVA_LAUNCHER_DEBUG=1WOStart.exe ...

• WOTaskD/JavaMonitor debuggingContents\Resources\Properties:NSDebugLevel=NSLog.DebugLevelDetailedNSDebugGroup= NSLog.DebugGroupDeployment

• All Apps: Java Remote DebuggingContents\Windows\CLSSPATH.TXT:# JVMOptions == -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n

Debugging WOAdaptor

• IIS

• always runs as background task

• Process Explorer: is DLL loaded?

• Where is my TMP-Folder?

• New Reg-KeyLOG_PATH (full path to log file)LOG_FLAG (full path to log flag)

• Apache

• start manually

Pitfalls

• text files & line endings

• 32 Bit vs. 64 Bit (Wow64)

• ONE user for all WO apps

• LocalService or dedicated user

• no sudo (RunAs does not help)

• Permissions Logs & config files

• process / user limits

Pitfalls, cont.

• est. TCP connections do block socketshttp://support.microsoft.com/kb/929851

• storage access / UNC paths

• automatic Windows updates

• IIS app pools / worker recycling

Aftermath

• Set WOAdaptor credentials

• Set JavaMonitor credentials

• Firewall

Windows deployment, URLs

• VC 10 Redist., 64 Bithttp://www.microsoft.com/en-us/download/details.aspx?id=13523

• VC 10 Redist., 32 Bithttp://www.microsoft.com/en-us/download/details.aspx?id=8328

• WOStart binarieshttp://wocommunity.org/documents/tools/WOStart.zip

• WOStart source${WONDER}/Utilities/WOStart

URLs, cont.

• WOAdaptor, IIS (DLL & EXE, 32 Bit, 64 Bit)http://wocommunity.org/documents/tools/mod_WebObjects/IIS/

• Apache for Windowshttp://www.apachelounge.com/download/

• WOAdaptor, Apache/Windows (32 Bit, 64 Bit)http://wocommunity.org/documents/tools/mod_WebObjects/Apache2.4/windows/

• WOAdaptor Source${WONDER}/Utilities/Adaptors

Tools

• Process Explorer (Microsoft Sysinternals)

• Process Monitor (Microsoft Sysinternals)

• Notepad++

• wireshark / Packetyzer / Fiddler2

• powershell

• MingW / MingW64

Q&A

top related