Deploying applications to Windows Server 2016 and Windows Containers
Deploying WO on Windows
-
Upload
wo-community -
Category
Technology
-
view
4.572 -
download
3
Transcript of Deploying WO on Windows
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