SlideShare a Scribd company logo
1 of 31
Download to read offline
Deploying WO on Windows
Markus Stoll
junidas 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
• InstallVC 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
• .LibraryFrameworks
• .LocalLibraryFrameworks
• .LocalLibraryWebObjectsConfiguration
• .LocalLibraryWebObjectsJavaApplications
Demo 1, Setup
• Windows setup
• WO setup
WOStart
• modified WebObjects-aware Java.exe
• <AppName>.exe replaces <AppName>.cmd / WOBootstrap.jar
• parse ContentsWindowsCLSSPATH.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 JavaVM architecture!
• VC 10 redist!
Demo 2,WOStart
• WOStart
• Install wotaskd and JavaMonitor as NT Service
JavaMonitor / WOTaskD
WOTaskD
WO App 1WO App 2
WO App 2
WO Apps
start/stop
Disk
config
lifebeat
JavaMonitor
JavaMonitor / WOTaskD, multiple hosts
WOTaskD
WO App 1WO App 2
WO App 2
WOTaskD
WO App 1WO App 2
WO App 2
JavaMonitor
WOTaskD
WO App 1WO App 2
WO 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 debugging
set _JAVA_LAUNCHER_DEBUG=1
WOStart.exe ...
• WOTaskD/JavaMonitor debugging
ContentsResourcesProperties:
NSDebugLevel=NSLog.DebugLevelDetailed
NSDebugGroup= NSLog.DebugGroupDeployment
• All Apps: Java Remote Debugging
ContentsWindowsCLSSPATH.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-Key
LOG_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 sockets
http://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 Bit
http://www.microsoft.com/en-us/download/details.aspx?id=13523
• VC 10 Redist., 32 Bit
http://www.microsoft.com/en-us/download/details.aspx?id=8328
• WOStart binaries
http://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 Windows
http://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

More Related Content

What's hot

Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Puppet
 

What's hot (20)

Multi-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and moreMulti-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and more
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
 
Hack & Fix, Hands on ColdFusion Security Training
Hack & Fix, Hands on ColdFusion Security TrainingHack & Fix, Hands on ColdFusion Security Training
Hack & Fix, Hands on ColdFusion Security Training
 
Ansible Automation to Rule Them All
Ansible Automation to Rule Them AllAnsible Automation to Rule Them All
Ansible Automation to Rule Them All
 
Ruby eventmachine pres at rubybdx
Ruby eventmachine pres at rubybdxRuby eventmachine pres at rubybdx
Ruby eventmachine pres at rubybdx
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
 
Vagrant: The Oscar Plug-in
Vagrant: The Oscar Plug-inVagrant: The Oscar Plug-in
Vagrant: The Oscar Plug-in
 
Webinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
Webinar - Auto-deploy Puppet Enterprise: Vagrant and OscarWebinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
Webinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
 
Ansible + WordPress
Ansible + WordPressAnsible + WordPress
Ansible + WordPress
 
Defcon - Veil-Pillage
Defcon - Veil-PillageDefcon - Veil-Pillage
Defcon - Veil-Pillage
 
Running JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java WorldRunning JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java World
 
How To Set a Vagrant Development System
How To Set a Vagrant Development SystemHow To Set a Vagrant Development System
How To Set a Vagrant Development System
 
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
 
Vagrant for Virtualized Development
Vagrant for Virtualized DevelopmentVagrant for Virtualized Development
Vagrant for Virtualized Development
 
Jenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with JenkinsJenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with Jenkins
 
Dcjq node.js presentation
Dcjq node.js presentationDcjq node.js presentation
Dcjq node.js presentation
 
Vagrant presentation
Vagrant presentationVagrant presentation
Vagrant presentation
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
 
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
 

Viewers also liked

Viewers also liked (17)

Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real World
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnit
 
Life outside WO
Life outside WOLife outside WO
Life outside WO
 
iOS for ERREST
iOS for ERRESTiOS for ERREST
iOS for ERREST
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWS
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systems
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache Cayenne
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W
 
WOver
WOverWOver
WOver
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful Controllers
 
High availability
High availabilityHigh availability
High availability
 
KAAccessControl
KAAccessControlKAAccessControl
KAAccessControl
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" pattern
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engine
 

Similar to Deploying WO on Windows

Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
DataArt
 
Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)
Ran Mizrahi
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
Tom Croucher
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
Hendrik Ebbers
 

Similar to Deploying WO on Windows (20)

Deploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeDeploying to Ubuntu on Linode
Deploying to Ubuntu on Linode
 
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
 
Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)
 
Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
SCUGBE_Lowlands_Unite_2017_Managing Windows Containers with Docker
SCUGBE_Lowlands_Unite_2017_Managing Windows Containers with DockerSCUGBE_Lowlands_Unite_2017_Managing Windows Containers with Docker
SCUGBE_Lowlands_Unite_2017_Managing Windows Containers with Docker
 
How to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machineHow to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machine
 
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentationGroovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentation
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
 
0-day deployment (UKVMUG)
0-day deployment (UKVMUG)0-day deployment (UKVMUG)
0-day deployment (UKVMUG)
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
 
Local development environment evolution
Local development environment evolutionLocal development environment evolution
Local development environment evolution
 

More from WO Community (12)

Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languages
 
WOdka
WOdkaWOdka
WOdka
 
ERGroupware
ERGroupwareERGroupware
ERGroupware
 
D2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRollerD2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRoller
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
 
Using GIT
Using GITUsing GIT
Using GIT
 
Persistent Session Storage
Persistent Session StoragePersistent Session Storage
Persistent Session Storage
 
Back2 future
Back2 futureBack2 future
Back2 future
 
WebObjects Optimization
WebObjects OptimizationWebObjects Optimization
WebObjects Optimization
 
Dynamic Elements
Dynamic ElementsDynamic Elements
Dynamic Elements
 
Practical ERSync
Practical ERSyncPractical ERSync
Practical ERSync
 
ERRest: the Basics
ERRest: the BasicsERRest: the Basics
ERRest: the Basics
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Deploying WO on Windows

  • 1. Deploying WO on Windows Markus Stoll junidas GmbH, Stuttgart
  • 2. • customer requirement • Windows integration • WebObjects 4.x migration / mixed deployment • Why not? Windows deployment, why?
  • 3. WebObjects on Windows • Setup explained, Demos • Common pitfalls • Tools and techniques for Debugging • URLs for stuff you need • Q&A
  • 4. 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++
  • 5. 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
  • 6. Windows basic setup • InstallVC 2010 Redistributable Packages (64 Bit / 32 Bit) (Apache & WOStart depend on it) 64 Bit / 32 Bit • Choose proper hostname
  • 7. WO basic setup • Choose WO base dir (c:Apple) • ENV-Variable NEXT_ROOT • Create Subfolders • .LibraryFrameworks • .LocalLibraryFrameworks • .LocalLibraryWebObjectsConfiguration • .LocalLibraryWebObjectsJavaApplications
  • 8. Demo 1, Setup • Windows setup • WO setup
  • 9. WOStart • modified WebObjects-aware Java.exe • <AppName>.exe replaces <AppName>.cmd / WOBootstrap.jar • parse ContentsWindowsCLSSPATH.TXT • application class • classpath • JVM parameters • find and load jvm.dll
  • 10. 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
  • 11. 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>
  • 12. WOStart 64 Bit vs. 32 Bit • 2 Binaries: 64 Bit and 32 Bit • WOStart.exe must match the chosen JavaVM architecture! • VC 10 redist!
  • 13. Demo 2,WOStart • WOStart • Install wotaskd and JavaMonitor as NT Service
  • 14. JavaMonitor / WOTaskD WOTaskD WO App 1WO App 2 WO App 2 WO Apps start/stop Disk config lifebeat JavaMonitor
  • 15. JavaMonitor / WOTaskD, multiple hosts WOTaskD WO App 1WO App 2 WO App 2 WOTaskD WO App 1WO App 2 WO App 2 JavaMonitor WOTaskD WO App 1WO App 2 WO App 2
  • 16. Demo 3, Setup JavaMonitor • Declare host • Create App & Instance
  • 17. 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)
  • 18. 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
  • 19. 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
  • 20. IIS / Application patch // patch ERXApplication or your Application by adding: String[] myAdaptorExtensions = new String[]{} @Override public String[] adaptorExtensions() { return myAdaptorExtensions; }
  • 21. Demo 4, IIS setup • IIS installation • Adaptor config • WebSite config • 32 Bit mode
  • 22. Apache 2.4 under Windows • Binaries for httpd and WOAdaptor available • avoid compiling • runs as NT Service • short Demo
  • 23. Debugging WOStart / WOApps •WOStart debugging set _JAVA_LAUNCHER_DEBUG=1 WOStart.exe ... • WOTaskD/JavaMonitor debugging ContentsResourcesProperties: NSDebugLevel=NSLog.DebugLevelDetailed NSDebugGroup= NSLog.DebugGroupDeployment • All Apps: Java Remote Debugging ContentsWindowsCLSSPATH.TXT: # JVMOptions == -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n
  • 24. Debugging WOAdaptor • IIS • always runs as background task • Process Explorer: is DLL loaded? • Where is my TMP-Folder? • New Reg-Key LOG_PATH (full path to log file) LOG_FLAG (full path to log flag) • Apache • start manually
  • 25. 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
  • 26. Pitfalls, cont. • est.TCP connections do block sockets http://support.microsoft.com/kb/929851 • storage access / UNC paths • automatic Windows updates • IIS app pools / worker recycling
  • 27. Aftermath • Set WOAdaptor credentials • Set JavaMonitor credentials • Firewall
  • 28. Windows deployment, URLs • VC 10 Redist., 64 Bit http://www.microsoft.com/en-us/download/details.aspx?id=13523 • VC 10 Redist., 32 Bit http://www.microsoft.com/en-us/download/details.aspx?id=8328 • WOStart binaries http://wocommunity.org/documents/tools/WOStart.zip • WOStart source ${WONDER}/Utilities/WOStart
  • 29. URLs, cont. • WOAdaptor, IIS (DLL & EXE, 32 Bit, 64 Bit) http://wocommunity.org/documents/tools/mod_WebObjects/IIS/ • Apache for Windows http://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
  • 30. Tools • Process Explorer (Microsoft Sysinternals) • Process Monitor (Microsoft Sysinternals) • Notepad++ • wireshark / Packetyzer / Fiddler2 • powershell • MingW / MingW64
  • 31. Q&A