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!