I decided to get the netbrandeds machine back to its stand-alone web and app server state. However, after starting the app with the local javamonitor, it no longer worked either. I now get the dreaded “Application not found on this server” error when I try to bring up the site. Everything else looks good, and I was able to re-install the app and start it on JavaMonitor with no errors. I just can’t navigate to the site. I double checked all the relevant configuration properties and don’t see anything amiss (they are below), and this server had been running as a stand-alone web and app server for years with these parameters.
netbrandeds-mini1:LaunchDaemons netBrackets$ which apachectl
/opt/local/apache2/bin/apachectl
/opt/local/apache2/bin/apachectl:
# the path to your httpd binary, including options if necessary
HTTPD='/opt/local/apache2/bin/httpd'
/opt/local/apache2/conf/httpd.conf:
ServerRoot "/opt/local/apache2"
DocumentRoot "/Library/WebServer/Documents"
<Directory />
Options FollowSymLinks
AllowOverride None
# Order deny,allow
# Deny from all
</Directory>
<Directory "/Library/WebServer/Documents">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule alias_module>
ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"
</IfModule>
<Directory "/Library/WebServer/CGI-Executables">
AllowOverride None
Options None
Require all granted
</Directory>
Include /System/Library/WebObjects/Adaptors/Apache2.2/apache.conf
/System/Library/WebObjects/Adaptors/Apache2.2/apache.conf:
WebObjectsDocumentRoot /Library/WebServer/Documents
WebObjectsAlias /cgi-bin/WebObjects
WebObjectsAdminUsername xxxxxxx
WebObjectsAdminPassword xxxxxxxx
WebObjectsLog /Library/WebObjects/Logs/WebObjects.log Debug
/Library/LaunchDaemons/com.apple.webobjects.wotaskd.plist:
<key>Disabled</key>
<false/>
<key>GroupName</key>
<string>appserverusr</string>
<key>Label</key>
<string>com.apple.webobjects.wotaskd</string>
<key>OnDemand</key>
<false/>
<key>Program</key>
<string>/Library/WebObjects/JavaApplications/wotaskd.woa/wotaskd</string>
<key>ProgramArguments</key>
<array>
<string>wotaskd</string>
<string>-WOPort</string>
<string>1085</string>
<string>-_DeploymentDebugging</string>
<string>false</string>
</array>
<key>ServiceIPC</key>
<false/>
<key>UserName</key>
<string>appserver</string>
<key>StandardOutPath</key>
<string>/Library/WebObjects/Logs/wotaskd.log</string>
<key>StandardErrorPath</key>
<string>/Library/WebObjects/Logs/wotaskd.log</string>
/Library/LaunchDaemons/com.apple.webobjects.womonitor.plist:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>GroupName</key>
<string>appserverusr</string>
<key>Label</key>
<string>com.apple.webobjects.womonitor</string>
<key>OnDemand</key>
<false/>
<key>Program</key>
<string>/Library/WebObjects/JavaApplications/JavaMonitor.woa/JavaMonitor</string>
<key>ProgramArguments</key>
<array>
<string>JavaMonitor</string>
<string>-WOPort</string>
<string>56789</string>
<string>-_DeploymentDebugging</string>
<string>true</string>
</array>
<key>ServiceIPC</key>
<false/>
<key>UserName</key>
<string>appserver</string>
<key>StandardOutPath</key>
<string>/Library/WebObjects/Logs/womonitor.log</string>
<key>StandardErrorPath</key>
<string>/Library/WebObjects/Logs/womonitor.log</string>
</dict>
</plist>
/Library/WebObjects/JavaApplications/wotaskd.woa/Contents/Resources (ALL PARAMETERS SHOWN):
WOAutoOpenInBrowser=false
WODebuggingEnabled=false
WODirectConnectEnabled=true
WOCachingEnabled=true
WOPort=1085
er.extensions.ERXMessageEncoding.Enabled=false
WOMonitorEnabled=false
WOLifebeatDestinationPort=1085
WOLifebeatEnabled=false
WOMulticastAddress=239.128.14.2 #I have no idea what IP address this is, I've never changed it though.
WORespondsToMulticastQuery=false
WOSavesAdaptorConfiguration=false
WOAssumeApplicationIsDeadMultiplier=4
WOShouldUseSpawn=true
log4j.rootCategory=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p %V{u/f} [%t] %C{2} (%F:%L) - %m%n
/Library/WebObjects/JavaApplications/womonitor.woa/Contents/Resources:
WOMonitor Start parameters:
-d64 -Xms2048m -Xmx3072m -WOAllowsConcurrentRequestHandling YES EOAdaptorDebugEnabled NO -WODirectConnectEnabled NO
On Dec 11, 2015, at 11:56 AM, Chuck Hill <
email@hidden> wrote:
One thing that I do recall is that is very, very sensitive to IP address and DNS configuration. Reverse lookup needs to work.
Chuck
One other interesting thing is that when I add the webserver machine itself as an application server host in javamonitor, the IP shown after the slash in the host name column is 127.0.0.1 (see attached pic) not the actual IP address of the machine of 208.52.161.87
<Screen Shot 2015-12-09 at 11.58.14 PM.png>
On Dec 8, 2015, at 11:27 PM, Chuck Hill <
email@hidden> wrote:
I have not tried that either. I have no idea if that is a real problem or why.
On Dec 8, 2015, at 8:45 PM, Jeff Schmitz <
email@hidden> wrote:
Thanks for checking that out, sounds plausible. And yeah, not the best solution, but I wanted to see if I could get it working at all and take it from there. I may try using IP’s for WOHost values.
I don't think IPs in different subnet will work ether but I haven't had a setup in that sort of environment.
Someone correct me... Bueller ... Bueller ...
On Dec 8, 2015, at 3:11 PM, Klaus Berkling <
email@hidden> wrote:
On Dec 7, 2015, at 10:16 PM, Jeff Schmitz <
email@hidden> wrote:
I
believe I’ve checked everything you mention (see below) to no avail. One thought I had is that the servers are running different Mac OS versions. Could the WOAdaptor compiled for El Capitan on the head machine not be able to use a remote app instance running
under Mt. Lion on the remote machine?
The OS probably doesn’t matter. Is this right:
I have a feeling the servers need to be in the same domain - Can someone second that?
I always put my hosts on a private network but if you have Mac minis you might not have that option (maybe firewire of thunderbolt network bridge?).
You don’t want to send your application traffic over a co-location network anyways.
On Dec 7, 2015, at 11:02 PM, Klaus Berkling <
email@hidden> wrote:
On Dec 6, 2015, at 9:21 PM, Jeff Schmitz <
email@hidden> wrote:
I'm using one machine for a web server (e.g. Apache, womonitor) and one for the application server (wotaskd, my
app)
I’ve set the WebObjectsConfig appropriately on the webserver machine, e.g.:
I have added the application server host and the application to java monitor on the web server and it all looks
good.
I start up the remote application from the webserver javamonitor, but when I try to reach the app using the webserver
URL, it says application not found. However, if I try to access the application by going straight to the application server URL, it works. (I do have apache setup on the application server as well).
I tested the 2001 and 1085 ports using telnet from the web server to the application server, and both ports are
open.
One thing that isn’t clear in the wiki instructions is what the WOHost parameters should
be set to on the app server machine. I set them to the app server itself’s address, and it works with a local instance of Apache/JavaMonitor, but should I keep them set to this when I want to run them as remote applications from the webserver?
If that’s not it, any other ideas?
If it's not a firewall issue, it might be a DNS issue if you are using host names. If memory serves then use the WOHost parameter as the hostname you use in JavaMonitor. If you have multiple IP addresses you'll need to check if everyone is listing
on the right socket, check with lsof -i tcp:1085 or lsof -i tcp:2001
I can definitely telnet from the head machine to both port 2001 and 1085 on the app server. WOHost in the respective wotaskd property files on each server matches the respective host in JavaMonitor . Also, reverse DNS lookups are correct for both machines.
Make sure there is only one JavaMonior running, usually on the head node. One wotaskd on each server and only one apache web server - the head node.
JavaMonitor is only running on the head node. Each server has a wotaskd running, and apache is only running on the head node.
Try to completely set up one host only, so no www2 server anywhere - not in JavaMonitor nor WebObjectsConfig. First use localhost and make sure the app is working.
Everything works fine on the head node, which is running on instance of the application, and all WOHost parameters and specified JavaMonitor hosts are using domain name, NOT localhost.
Then use the servers' IP address, at this point you can't use 'localhost' anymore anywhere. Make sure your app is still working.
The head node is working using the domain name that comes up on a reverse lookup of the machine IP address.
After that add the other host to WebObjectsConfig and JavaMonitor using the IP addresses (avoiding any DNS issues). Double check the syntax on that line. JavaMonitor should say that both hosts are available.
Done, again using domain name that comes up on reverse host lookup of the machine IP, e.g.
netbrandeds-mini1.netbrandeds.info
host 208.52.189.44
JavaMonitor on the head machine does say both hosts are available.
If you make changes in JavaMonitor to the configuration, make sure you see the SiteConfig.xml file change on both servers (usually in /Library/WebObjects/Configuration).
I did have to do a Synchronize Host to get both SiteConfig.xml files in agreement as to the URL to Adaptor setting. It originally was pointing to itself. However even after doing the sync, it’s still exhibiting the same behavior.
If both servers are talking to each other, add your application in JavaMonitor and add one instance for each host. Then try to turn them on and off and watch the processes on each of the hosts start and stop.
JavaMonitor is able to wotaskd on both servers and can start and stop application instances on each server. So, everything looks normal except the head node’s apache/WOAdaptor is not able to successfully invoke the instance on the secondary node to serve application
pages. If I set the instance on the head node to Reject new Sessions, apache returns that no Instance is Found.
So, I’m still pretty stumped on this. In my apache.conf I have the following, which lists the two hosts. It doesn’t have to be in any particular order does it?
BTW, you should be able to manage all instance nodes and instances regardless of the web server. You can check the mechanics before you turn on the site.
Hope this helps. It's been a while since I've done this.
kib
"We keep moving forward, opening new doors, and doing new things, because we're curious and curiosity keeps leading us down new paths."
Walt Disney
Klaus Berkling
www.berkling.us | @kiberkli | Photography
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (
email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to
email@hidden
_______________________________________________
Do
not post admin requests to the list. They will be ignored.
Webobjects-dev
mailing list (email@hidden)
Help/Unsubscribe/Update
your Subscription:
This
email sent to email@hidden
"We must be better today than yesterday. Tomorrow we must be even better."
Mike Seibert - Lead Flight Director for Mars rover Oppertunity
Klaus Berkling
www.berkling.us | @kiberkli | Photography
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (
email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to
email@hidden
<Screen Shot 2015-12-09 at 11.58.14 PM.png>