deploySoap.sh fails over incorrect URL

Posted by bronco on 05-Mar-2015 10:16

I'm trying to script the deployment of a wsm file to a PASOE instance. To do so I execute this from the CLI:

../bin/deploySOAP.sh fabvoxws.wsm fabvoxws

This fails. Looking at the logging I see:

Connecting SOAP transport at URI: http://Host:10010/fabvoxws/soap

And subsequently everthing fails. Now I didn't tell the PASOE instance that the URL is http://Host:... 

How do I correct this? I know I can make an entry in /etc/hosts but that's not cricket...

All Replies

Posted by David Cleary on 05-Mar-2015 10:40

 
The host name is determined dynamically through this piece of script:
 
# Function to read the DNS Name
loadDNSName() {
_dnsname=..
_new=..
_hostname=..
    if [ "`uname`" = "AIX" ] ; then
        _new="-n"
    else
        _new=""
    fi
    _hostname=`uname -n | cut -d " " -f 1`
    _dnsname=`host ${_new} ${_hostname} | cut -d " " -f 1`
}

This seems to be failing on your system. Here is what I get when I execute uname and host on a Linux system:
 
linuxx86_64:116$ uname -n | cut -d " " -f 1
oelxdev06
linuxx86_64:116$ host oelxdev06 | cut -d " " -f 1
oelxdev06.bedford.progress.com
linuxx86_64:116$
 
What system are you running on and what do you see when executing these commands? Note for AIX, you need to add a –n when running host.
 
Thanks
Dave
 
[collapse]
From: bronco [mailto:bounce-bfvo@community.progress.com]
Sent: Thursday, March 05, 2015 11:16 AM
To: TU.OE.Deployment@community.progress.com
Subject: [Technical Users - OE Deployment] deploySoap.sh fails over incorrect URL
 
Thread created by bronco

I'm trying to script the deployment of a wsm file to a PASOE instance. To do so I execute this from the CLI:

../bin/deploySOAP.sh fabvoxws.wsm fabvoxws

This fails. Looking at the logging I see:

Connecting SOAP transport at URI: http://Host:10010/fabvoxws/soap

And subsequently everthing fails. Now I didn't tell the PASOE instance that the URL is http://Host:... 

How do I correct this? I know I can make an entry in /etc/hosts but that's not cricket...

Stop receiving emails on this subject.

Flag this post as spam/abuse.

[/collapse]

Posted by bronco on 05-Mar-2015 10:44

uname -n | cut -d " " -f 1 gives me the correct hostname.

However host oelxdev06 | cut -d " " -f 1 returns indeed "Host"

How would I fix that?

Posted by bronco on 05-Mar-2015 10:45

That last statement obviously with the name returned by the first

Posted by Michael Jacobs on 05-Mar-2015 10:55

There is a bug in PAS 1.1.0 UNIX where `host...` returns an error that is not caught and the default DNS name used.

Mike J.

[collapse]
From: David Cleary <bounce-davec@community.progress.com>
Reply-To: "TU.OE.Deployment@community.progress.com" <TU.OE.Deployment@community.progress.com>
Date: Thursday, March 5, 2015 at 11:41 AM
To: "TU.OE.Deployment@community.progress.com" <TU.OE.Deployment@community.progress.com>
Subject: RE: [Technical Users - OE Deployment] deploySoap.sh fails over incorrect URL

Reply by David Cleary
 
The host name is determined dynamically through this piece of script:
 
# Function to read the DNS Name
loadDNSName() {
_dnsname=..
_new=..
_hostname=..
    if [ "`uname`" = "AIX" ] ; then
        _new="-n"
    else
        _new=""
    fi
    _hostname=`uname -n | cut -d " " -f 1`
    _dnsname=`host ${_new} ${_hostname} | cut -d " " -f 1`
}

This seems to be failing on your system. Here is what I get when I execute uname and host on a Linux system:
 
linuxx86_64:116$ uname -n | cut -d " " -f 1
oelxdev06
linuxx86_64:116$ host oelxdev06 | cut -d " " -f 1
oelxdev06.bedford.progress.com
linuxx86_64:116$
 
What system are you running on and what do you see when executing these commands? Note for AIX, you need to add a –n when running host.
 
Thanks
Dave
 
[collapse]
From: bronco [mailto:bounce-bfvo@community.progress.com]
Sent: Thursday, March 05, 2015 11:16 AM
To: TU.OE.Deployment@community.progress.com
Subject: [Technical Users - OE Deployment] deploySoap.sh fails over incorrect URL
 
Thread created by bronco

I'm trying to script the deployment of a wsm file to a PASOE instance. To do so I execute this from the CLI:

../bin/deploySOAP.sh fabvoxws.wsm fabvoxws

This fails. Looking at the logging I see:

Connecting SOAP transport at URI: http://Host:10010/fabvoxws/soap

And subsequently everthing fails. Now I didn't tell the PASOE instance that the URL is http://Host:... 

How do I correct this? I know I can make an entry in /etc/hosts but that's not cricket...

Stop receiving emails on this subject.

Flag this post as spam/abuse.

Stop receiving emails on this subject.

Flag this post as spam/abuse.

[/collapse][/collapse]

Posted by David Cleary on 05-Mar-2015 12:01

Here is the updated function that is going into 11.5.1. You just need to replace the code after _hostname= with the lines below
 
# Function to read the DNS Name
loadDNSName() {
_dnsname=..
_new=..
_hostname=..
    if [ "`uname`" = "AIX" ] ; then
        _new="-n"
    else
        _new=""
    fi
    _hostname=`uname -n | cut -d " " -f 1`
    _host=`host ${_new} ${_hostname}`
    if [ $? = 0 ] ; then
        _dnsname=`echo $_host | cut -d " " -f 1`
    else
        _dnsname="127.0.0.1"
    fi
}
 
This is for deploySOAP. You will probably run into the same issue when executing tcman.sh. Here the function can be found in $CATALINA_HOME/bin/setenv.sh. The function should be
 

# Load the full DNS name for this server and make a java property out of if
#
loadDNSName ()  {
    if [ ! -z "${CATALINA_DEBUG}" ]; then echo "** setenv.sh updating JAVA_OPTS with DNS information "; fi
    if [ "`uname`" = "AIX" ] ; then
        _new="-n"
    else
        _new=""
    fi
    _hostname=`uname -n | cut -d " " -f 1`
    _host=`host ${_new} ${_hostname}`
    if [ $? = 0 ] ; then
        _dnsname=`echo $_host | cut -d " " -f 1`
    else
        _dnsname="127.0.0.1"
    fi
    JAVA_OPTS="${JAVA_OPTS} -Dpsc.as.host.name=\"${_hostname}\" -Dpsc.as.dns.name=\"${_dnsname}\" "
    export JAVA_OPTS
}

Let me know if this works out for you.
 
Thanks
Dave

 
 
[collapse]
From: bronco [mailto:bounce-bfvo@community.progress.com]
Sent: Thursday, March 05, 2015 11:46 AM
To: TU.OE.Deployment@community.progress.com
Subject: RE: [Technical Users - OE Deployment] deploySoap.sh fails over incorrect URL
 
Reply by bronco

That last statement obviously with the name returned by the first

Stop receiving emails on this subject.

Flag this post as spam/abuse.

[/collapse]

Posted by bronco on 05-Mar-2015 12:10

Thanks! I'll give it a try tomorrow, the bar is closed now.

Posted by bronco on 06-Mar-2015 06:48

It works as far as deploying my .wsm file from the CLI. I suspect that instead of Host 127.0.0.1 is used. That too has a drawback. I suspect that what is displayed in OpenEdge explorer uses the sentenv.sh script as well. So all my links (on the webapp page) now have http://127.0.0.1/... links. Obviously I can tweak the host into the setenv.sh script but that doesnt' seem the way to go. I also have question about re-deploying SOAP definitions, but I'll make separate post for that.

Posted by Michael Jacobs on 06-Mar-2015 07:46

Hi Bronco,

OK, 127.0.0.1 is not fully accurate for some uses.    Would replicating the host's IP address into the 'DNS name' provide you better usability?   Obviously it is a matter of what we choose to substitute when 'host' command returns an error because the host's name is not what its DNS registration is.  

Mike J.

Posted by bronco on 09-Mar-2015 07:57

Goodmorning Michael,

Imho, ultimately the script should come up with something which is usable for external users (i.e. the OpenEdge Explorer users). So I guess the IP address of the machine would be good. Meanwhile I asked the SA over here to properly register the machine in the DNS and that helps as well.

One thing I noticed btw, is that the access URI for SOAP transport (when looking at an OEABL WebApp) hasn't got the correct URL as well. It refers to the host (an port) of OpenEdge Explorer and that's not the same thing as the URL on which the WSDL is requested from.

Anyway, I got a little further. Thanks.

This thread is closed