RKL eSolutions Blog

Solving Web Service Pools and Integrations Issues in Sage X3

Written by RKL Team | Oct 26, 2021 2:30:00 PM

If you are running integrations with Sage X3 using REST or SOAP web services, you may come across issues when the web pool is in a stopped state, or is no longer responding due to errors on prior web service calls. There are several ways to check the state of a web service pool and to restart the web service pool using Syracuse REST utilities.

Obtaining the Pool UUID

When consuming web services with Sage X3, you're used to referring to the pool using the SOAP classic pool alias,  which can be seen under Administration > Administration > Web Services > Classic SOAP Pools configuration. For any activities related to the pools as described below, you will need to use the pool UUID (universally unique identifier).

Obtain UUID by querying the Web Pools

A list of web pools can be retrieved by running a REST query request, as shown below, substituting your Sage X3 URL for "x3instance".


http://x3instance:8124/sdata/syracuse/collaboration/syracuse/soapClassicPools?representation=soapClassicPool.$query

Using "Basic Auth" for the Authorization type, the same way you use X3 web service SOAP, will result in some paging information, along with a list of resources, which are the SOAP pool details. Below is a sample of the resource details.

The piece of information you will need for specific activities on the web pool is the UUID for the web pool.

Another item that is useful in the "autoStartDisabled" value. If this has a value of "true", the web service is not currently running.

Obtain Web Pool Details

If the pool UUID is already know, the pool details can be obtained by running a REST details request, as shown below, substituting your Sage X3 URL for "x3instance". Also make sure you substitute you UUID in the single quotes.


http://x3instance:8124/sdata/syracuse/collaboration/syracuse/soapClassicPools('7f487d15-fd90-44a4-941a-a0d75175bf9e')?representation=soapClassicPool.details

 

The results will contain the same information as the query results, for a single pool only.

Restarting the Web Pool

By using the above request and results, you can determine the state of your web pool using REST commands. This information could be used to stop and start the pool.

**NOTEā€”if you run reoccurring tasks for integrations, be aware that stopping and starting the pool will interrupt any transactions in process. This should only be done after hours, if it is determined that the pool is not responding.

Periodic Pool Restart

One way to use these commands would be to do a daily or weekly stop and start of the web pool. This can be done by embedding the REST commands for stop and start in a .net, curl, or other application to issue the commands.

Stop the Pool

Using the UUID for the web pool, the pool can be stopped using the POST request below.


http://x3instance:8124/api1/syracuse/collaboration/syracuse/soapClassicPools('7f487d15-fd90-44a4-941a-a0d75175bf9e')/$service/stop

The response will include messages indicated whether or not the stop was successful. If there are multiple channels, based on the settings under host, there will be a message for each process stopped.

Start the Pool

Using the UUID for the web pool, the pool can be started using the POST request below.


http://x3instance:8124/api1/syracuse/collaboration/syracuse/soapClassicPools('7f487d15-fd90-44a4-941a-a0d75175bf9e')/$service/start

The response will include messages indicated whether or not the start was successful. If there are multiple channels, based on the settings under host, there will be a message for each process started.

Questions?

Don't hesitate to reach out and ask us any questions you may have, it's what we're here for!