Salesforce

A deployed OpenEdge Web Service always tries to connect to the AppServer through localhost instead of the remote AppServer host

« Go Back

Information

 
TitleA deployed OpenEdge Web Service always tries to connect to the AppServer through localhost instead of the remote AppServer host
URL Name000032960
Article Number000144403
EnvironmentProduct: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
A deployed OpenEdge Web Service always tries to connect to an AppServer on localhost instead of a remote AppServer host
A deployed OpenEdge Web Service always tries to connect to an AppServer on localhost.
A Web Services Adapter request to a remote AppServer hangs when updating records.
A deployed OpenEdge Web Service request to a remote AppServer is hanging when updating records.
The deployed OpenEdge Web Service shows the NameServer hostname as localhost.
The deployed OpenEdge Web Service shows the AppServer hostname as localhost.
WebService deployed to a remote WSA instance fails with errors (8234) (10926)
Steps to Reproduce
Clarifying Information
The WSA and Tomcat are on a different host than where to the NameServer and AppServer.
The deployed OpenEdge Web Service is setup to go through either the NameServer or directly to the AppServer.
The Proxy Generator contains the AppServer's Broker Name as its AppService Name. 
Both the AppServer and the Web Services Adapter are running
 
Error MessageError in SOAP request execution: Connect Failure: Application Service <broker name> Unknown at NameServer at Host localhost Port <port>. (8234) (10926)
Defect NumberEnhancement OE00229633 / PSC00251866
Enhancement Number
Cause
The appServiceHost runtime property of a deployed OpenEdge Web Service defaults to localhost.  This cannot be changed in the proxy and needs to be modified after the WS is deployed.
Resolution
An enhancement has been raised to make it possible to change the appServiceHost runtime property when generating the WSM file through the Proxy Generator tool, but has not been implemented in the product to date.

The OpenEdge Explorer or wsaman command-line utility can be used to disable the deployed Web Service through Status Enablement and then change its configuration settings through Application Properties. At a later date, whenever a Web Service is undeployed to make changes that are regenerated in a new .wsm file, the appServiceHost runtime property will need to be modified again. 

After generating the WSM, change the appServiceHost runtime property of the deployed OpenEdge Web Service as follows:

OpenEdge Explorer or Management Console

Only runtime properties can be changed using this method.

1. Navigate to the Web Service Adapter instance (example: "Resources\Container1\Openedge\Web Services Adapter\wsa1").
2. In the "Deployed Web Services for" section, navigate to the deployed OpenEdge Web Service and click on the Select button.
3. Select: Status Enablement and then the Disable button.
4. Navigate to the previous page and Select Application Properties and then on the Edit button.

5a. Update the appServiceHost parameter to the hostname of the NameServer if the appServiceProtocol is set to "Appserver".
6a. Update the appServicePort parameter to the port of the NameServer.

5b. Update the appServiceHost parameter to the hostname of your AppServer Broker if the appServiceProtocol is set to "AppserverDC".
6b. Update the appServicePort parameter to the port of the AppServer Broker.

7. Select the Submit button and Navigate to the previous page
8. Select Status Enablement and then the Enable button.

9. Restart the Java Servlet Engine (JSE), e.g. Tomcat.

 
WSAMAN command line

wsaman can be used to change both runtime and application properties.

1. Disable the Web Service:
$   wsaman -name wsa1 -appname WSTest -disable

2a. Update the appServiceHost parameter to the hostname of the NameServer if the appServiceProtocol is set to "Appserver":
$   wsaman -name wsa1 -appname WSTest -prop appServiceHost  -value <NameServer hostname> -setprops

3a. Update the appServicePort parameter to the port of the NameServer.
$   wsaman -name wsa1 -appname WSTest -prop appServicePort -value <NameServer Port Number> -setprops

2b. Update the appServiceHost parameter to the hostname of your AppServer Broker if the appServiceProtocol is set to "AppserverDC".
$   wsaman -name wsa1 -appname WSTest -prop appServiceHost  -value <AppServer Broker hostname> -setprops

3b. Update the appServicePort parameter to the port of the AppServer Broker.
$   wsaman -name wsa1 -appname WSTest -prop appServicePort -value <Your AppServer Broker Port Number> -setprops

4. Verify the new appServiceHost and appServicePort settings:
$   wsaman -name wsa1 -getprops -appname WSTest

5. Enable the Web Service:
$   wsaman -name wsa1 -appname WSTest -enable

6. Restart the Java Servlet Engine (JSE), e.g. Tomcat.

 
Workaround
Manually change the props file of the deployed Web Service:

This method is listed as a Workaround as disabling and enabling the Web App reverts the change.

Open the files:
  • <Tomcat installation directory>\webapps\wsa\<AppService Service>\default.props
  • <Tomcat installation directory>\webapps\wsa\<AppService name>.props

1.   Change the appServiceHost to the name or IP address of
  • The NameServer if the appServiceProtocol is set to "Appserver"
  • The AppServer Broker if the appServiceProtocol is set to "AppserverDC".
2.  Verify the appServicePort property corresponds to the correct port number of the NameServer or AppServer Broker

Example:

Change
<appServiceHost>localhost</appServicehost>
to
<appServiceHost>host name or IP address of the NameServer or Broker</appServicehost>
 
Notes
Keyword Phrase
Last Modified Date11/6/2017 2:11 PM

Powered by