• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Using multiple servers
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using multiple servers


  • Subject: Re: Using multiple servers
  • From: Jeff Schmitz <email@hidden>
  • Date: Tue, 15 Dec 2015 23:41:59 -0600

It was the /etc/hosts setting.  I changed it, and added the host again to JavaMonitor and the correct IP came up instead of 127.0.0.1.  I also double checked the reverse proxies and they looked good.  However, I was still unable to get it to work.  So…

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"
ServerName netbrandeds-mini1.netbrandeds.info:80
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
WebObjectsConfig http://netbrandeds-mini1.netbrandeds.info:1085 10
 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"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<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):
WOHost=netbrandeds-mini1.netbrandeds.info

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:
WOHost=netbrandeds-mini1.netbrandeds.info

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

From: Jeff Schmitz <email@hidden>
Date: Wednesday, December 9, 2015 at 10:02 PM
To: Chuck Hill <email@hidden>
Cc: Klaus Berkling <email@hidden>, WebObjects Development <email@hidden>
Subject: Re: Using multiple servers

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.


From: <webobjects-dev-bounces+chill=email@hidden> on behalf of Klaus Berkling <email@hidden>
Date: Tuesday, December 8, 2015 at 9:16 PM
To: WebObjects Development <email@hidden>
Subject: Re: Using multiple servers


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:

netbrackets1.netbrackets.com has address 208.52.161.87
87.161.52.208.in-addr.arpa domain name pointer netbrackets1.netbrackets.com.

netbrandeds-mini1.netbrandeds.info has address 208.52.189.44
44.189.52.208.in-addr.arpa domain name pointer netbrandeds-mini1.netbrandeds.info.

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 trying to follow the instructions at:  https://wiki.wocommunity.org/pages/viewpage.action?pageId=7143530

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.: 

WebObjectsConfig http://www.server.com:1085,http://www2.server.com:1085 10

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
44.189.52.208.in-addr.arpa domain name pointer netbrandeds-mini1.netbrandeds.info.

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?
WebObjectsConfig http://netbrackets1.netbrackets.com:1085,http://netbrandeds-mini1.netbrandeds.info:1085 10





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>

 _______________________________________________
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

References: 
 >Using multiple servers (From: Jeff Schmitz <email@hidden>)
 >Re: Using multiple servers (From: Klaus Berkling <email@hidden>)
 >Re: Using multiple servers (From: Jeff Schmitz <email@hidden>)
 >Re: Using multiple servers (From: Klaus Berkling <email@hidden>)
 >Re: Using multiple servers (From: Jeff Schmitz <email@hidden>)
 >Re: Using multiple servers (From: Klaus Berkling <email@hidden>)
 >Re: Using multiple servers (From: Chuck Hill <email@hidden>)

  • Prev by Date: Help needed!
  • Next by Date: Using ERXThreadStorage
  • Previous by thread: Re: Using multiple servers
  • Next by thread: woframework vs jar packaging in maven
  • Index(es):
    • Date
    • Thread