Table of Contents Previous Next PDF


Administering SALT at Runtime

Administering SALT at Runtime
This chapter contains the following topics:
Administering Oracle Tuxedo Web Services
This section contains the following topics:
Browsing to the WSDL Document from the GWWS Server
Each GWWS server automatically generates a WSDL document for each deployed inbound native WSDF. The WSDL document can be downloaded from any of the HTTP/S listening endpoints via HTTP GET.
Use the following URL to browse the WSDL document:
“http(s)://<host>:<port>/wsdl[? [id=<wsdf_name>] [&mappolicy=<pack|raw|mtom>] [&toolkit=<wls|axis>]]”
Table 2‑1 lists all WSDL document download options.
 
Use this option only if you have previously defined mappolicy=raw. Specify the client toolkit used so that the proper WSDL document description for a CARRAY typed buffer MIME attachment is generated. SALT supports WebLogic Server and Axis for SOAP with Attachments. The default value is wls.
Note:
The WSDL download URL supported by SALT 2.0 and later is different from the SALT 1.1 release. In SALT 1.1, one GWWS server adaptively supports both RPC/encoded and document/literal message style, both SOAP 1.1 and SOAP 1.2 version, from a given configuration file. In SALT 2.0 and later, each WSDF file associated with the GWWS server must be pre-combined with a certain SOAP version and a certain SOAP message style. So the following WSDL download options for SALT 1.1 GWWS server are deprecated in this release.
 
Tuning the GWWS Server
The GWWS server is a high performance gateway used between external Web Service application and the Oracle Tuxedo application. It uses a thread-pool working model to improve performance in a multi-processor server environment. The GWWS server also provides options to control runtime behavior by setting the <WSGateway> element property values in the SALT configuration file. The following topics list deployment considerations based on different scenarios. For more information, see Configuring the GWWS Servers in the SALT Configuration Guide.
Thread Pool Size Tuning
Property: thread_pool_size
The default thread pool size is 16, but in some cases this may not be enough to handle high volume loads. It is recommended to conduct a typical usage analysis in order to better estimate the proper size requirement. Usually, if the concurrent client number is large (for example, more than 500), it is suggested that you deploy the GWWS gateway on a server with at least a 4-way processor and set the thread pool size to 64.
Network Timeout Control
Property: timeout
SALT provides a network timeout tuning parameter in the configuration file. The default timeout value is 300 seconds.The value can be adjusted to reduce timeout errors.
Max Content Length Control
Property: max_content_length
SALT administrators may want to limit the buffer size sent from a client. SALT supports this by using a property value that can be set for particular GWWS instances. By default there is no limit.
Backlog Control
Property: max_backlog
The default backlog socket listen value is 20. On some systems, such as Windows, 20 may not meet heavy load requirements. The client connection is rejected during TCP handshake.
The recommended value for Windows is based on the max concurrent TCP connections you may encounter. For example, if 80 is the peak point, you may configure the max_backlog property value to 60 in the SALT configuration file.
Note:
WARNING:
Oracle Tuxedo BLOCKTIME
A network receive timeout property is provided in the <Default ? Font>SALT configuration file. Web service applications are also impacted by the Oracle Tuxedo BLOCKTIME parameter. Blocktime accounting begins when a message is transformed from XML to a typed buffer and delivered to the Oracle Tuxedo framework.
If no reply is received for a particular Web service client within the BLOCKTIME time frame, the GWWS server sends a SOAP fault message to the client and terminates the connection. If the GWWS server receives a delayed reply, it drops this message because the client has been disconnected.
BLOCKTIME is defined in the UBBCONFIG file *RESOURCE section.
Boost Performance Using Multiple GWWS instances
If one GWWS instance is bottlenecks due to network congestion, low CPU resources and so on, multiple GWWS instances can be deployed with the same Web Service binding on distributed Oracle Tuxedo nodes.
Note:
Even though multiple GWWS instances can provide the same logic functionality, from a client perspective, they are different Web service endpoints with different HTTP/S listen ports and addresses.
Tracing the GWWS Server
The GWWS server supports Oracle Tuxedo TMTRACE functionality (used to dynamically trace messages). All trace points are logged in the ULOG file. Checking the ULOG file trace information helps to evaluate GWWS server SOAP message problems. GWWS server message tracing behavior is set using the TMTRACE environment variable, or by using the tmadmin chtr sub-command.
The reserved trace category, msg, is used to trace SALT messages. It can be used together with other general trace categories. For example, if trace category “atmi+msg” is specified, both SALT and Oracle Tuxedo ATMI trace messages are logged.
Notes:
The following trigger specifications are not recommended for GWWS servers:
abort, system, sleep
In any of these trigger specifications are used, GWWS servers may be unexpectedly terminated.
For more tmtrace and trace specification information, see tmtrace(5) in the File Formats, Data Descriptions, MIBs, and System Processes Reference.
TMTRACE specification examples for SALT message tracing are shown below:
export TMTRACE=msg:ulog:export GWWS_TRACE_LEVEL=100
export TMTRACE=atmi+msg:ulog:export GWWS_TRACE_LEVEL=100
Listing 2‑1 shows a ULOG file example containing SALT tracing messages.
Listing 2‑1 TMTRACE Messages Logged By GWWS Server
183632.BOX1!GWWS.4612.4540.0: TRACE:ms:A HTTP message is received, SCO index=1023

183632. BOX1!GWWS.4612.4540.0: TRACE:ms:A SOAP message is received, SCO index=1023

183632. BOX1!GWWS.4612.4540.0: TRACE:ms:Begin data transformation of request message, buffer type = STRING, SCO index=1023

183632. BOX1!GWWS.4612.4540.0: TRACE:ms:End of data transformation of request message, buffer type = STRING, SCO index=1023

183632. BOX1!GWWS.4612.840.0: TRACE:ms:Delivering a message to Tuxedo, service name =TOUPPER, SCO index=1023

183632. BOX1!GWWS.4612.840.0: TRACE:ms:Got a message from Tuxedo, SCO index=1023

183632. BOX1!GWWS.4612.4540.0: TRACE:ms:Begin data transformation of reply message, buffer type = STRING, SCO index=1023

183632. BOX1!GWWS.4612.4540.0: TRACE:ms:End of data transformation of reply message, buffer type = STRING, SCO index=1023

183632. BOX1!GWWS.4612.4540.0: TRACE:ms:Send a http message to net, SCO index=1023
 
A more complex log is generated by TMTRACE=msg:ulog, used in WS-ReliableMessaging communication. All the application and infrastructure messages are sent to ULOG. Listing 2‑2 shows a ULOG file example containing WS-ReliableMessaging TMTRACE messages.
Listing 2‑2 WS-ReliableMessaging TMTRACE Messages
184706.BOX1!GWWS.3640.4772.0: TRACE:ms:A HTTP message is received, SCO index=1023

184706.BOX1!GWWS.3640.4772.0: TRACE:ms:A HTTP Get request is received, SCO index=1023

184706.BOX1!GWWS.3640.4772.0: TRACE:ms:Send a http message to net, SCO index=1023

184710.BOX1!GWWS.3640.4772.0: TRACE:ms:A HTTP message is received, SCO index=1022

184710.BOX1!GWWS.3640.4772.0: TRACE:ms:A SOAP message is received, SCO index=1022

184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Create a new inbound sequence, ID=uuid:4F1FEE40-72CB-118C-FFFFFFC0FFFFFFA8FFFFFFEB010000-1811

184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Create a new outbound sequence, ID=uuid:f7f76200-f612-11da-990d-9f37c3d14ba7

184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Send CreateSequenceResponse message for sequence uuid:4F1FEE40-72CB-118C-FFFFFFC0FFFFFFA8FFFFFFEB010000-1811

184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Send a http message to net, SCO index=1022

184712.BOX1!GWWS.3640.3260.0: TRACE:ms:A HTTP message is received, SCO index=1022

184712.BOX1!GWWS.3640.3260.0: TRACE:ms:A SOAP message is received, SCO index=1022

184712.BOX1!GWWS.3640.3260.0: TRACE:ms:Begin data transformation of request message, buffer type = STRING, SCO index=1022

184712.BOX1!GWWS.3640.3260.0: TRACE:ms:End of data transformation of request message, buffer type = STRING, SCO index=1022

184712.BOX1!GWWS.3640.3260.0: TRACE:ms:Received a request message in sequence uuid:4F1FEE40-72CB-118C-FFFFFFC0FFFFFFA8FFFFFFEB010000-1811
 
Checking the ULOG tracing information helps to evaluate GWWS server SOAP message problem status.
Monitoring the GWWS Server
The GWWS server can be monitored with wsadmin utility, which is a command-line tool. This tool can show the running status of GWWS.
An example is shown in Listing 2‑3.
Listing 2‑3 Use wsadmin to Monitor GWWS
$wsadmin
wsadmin - Copyright (c) 2005-2010 Oracle.
Portions * Copyright 1986-1997 RSA Data Security, Inc.
All Rights Reserved.
Distributed under license by Oracle.
SALT is a registered trademark.

> gwstats -i abcd
GWWS Instance : abcd

Inbound Statistics :
---------------------------------
      Request Response Succ : 74
      Request Response Fail : 32
                Oneway Succ : 0
                Oneway Fail : 0

                 Total Succ : 74
                 Total Fail : 32

       Avg. Processing Time : 210.726 (ms)
Outbound Statistics :
---------------------------------
      Request Response Succ : 0
      Request Response Fail : 0
                Oneway Succ : 0
                Oneway Fail : 0

                 Total Succ : 0
                 Total Fail : 0

       Avg. Processing Time : 0.000 (ms)
---------------------------------
      Total request Pending : 0
   Outbound request Pending : 0
       Active Thread Number : 2


> gws -i out -s getTemp
GWWS Instance : out

Service : getTemp

Outboud Statistics :
---------------------------------
      Request Response Succ : 333
      Request Response Fail : 139
       Avg. Processing Time : 143.064 (ms)


>
 
The gwstats command (abbreviated as gws), displays the WWS server statistics data with a specific instance ID or of a certain GWWS server service of the. The data includes the amount of successful and failed request, etc.
Before wsadmin is executed, both the TUXCONFIG and SALTCONFIG environment variables must be set. wsadmin supports both active mode and in-active mode, which means wsadmin is able to launch with/without booting the Oracle Tuxedo domain.
Table 2‑3 lists wsadmin sub-commands.
 
Troubleshooting SALT
This section contains the following topics:
GWWS Start Up Failure
If the GWWS server fails to start, check the following:
The GWWS server requires an extra license from Oracle to enable the functionality. Check to make sure it has been installed properly.
Check the GWWS server listen /WS-Addressing endpoints defined in the <Default ? Font>SALT configuration files. Avoid port conflicts with other applications.
Check the GWWS instance ID to make sure the two names defined in UBBCONFIG and SALTDEPLOY file are consistent.
UBBCONFIG file MAXWSCLIENTS definition.
Make sure that MAXWSCLIENTS is defined in theUBBCONFIG file *MACHINE section on the computer where the GWWS server is deployed.
RESTART=Y and REPLYQ=Y parameters.
If the GWWS server is set to RESTART=Y in the UBBCONFIG file, REPLYQ=Y must also be defined.
Make sure the binary version SALTCONFIG file is compiled successfully and the environment variable SALTCONFIG is set correctly for the GWWS server.
GWWS Rejects SOAP Request
In some cases, the GWWS server may reject SOAP requests. The most common causes are:
The WSDL document used by SOAP clients is out of date and some services may not be available.
When exporting an Oracle Tuxedo service with FML/VIEW buffers to a Web service, make sure the related GWWS environment variables are set with valid values. The GWWS server needs this information for the data mapping conversion.
Check the SOAP client data and make sure Oracle Tuxedo Service Metadata Repository restrictions are not violated.
Make sure the Oracle Tuxedo service you want exported as a Web service is available.
WSDL Document Generated Incorrectly or Rejected by SOAP Client Toolkit
If the WSDL document is rejected by the Web Service client toolkit, do the following:
Try to use the document/literal message style and SOAP 1.1 to define native Oracle Tuxedo WSDF file. This is also the default behavior.
Use tmwsdlgen to generate the WSDL document manually and compare it with the one downloaded by the GWWS server. If the TMMETADATA server is not started when the GWWS server booted, the GWWS server cannot obtain the correct service contract information. Therefore, the downloaded WSDL document does not contain the correct type definitions.
See Also

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.