Quiescing the Server for Maintenance
Overview
Quiescing an Integration Server temporarily disables access to the server so you can perform maintenance tasks while the server is not connected to any external resources. In quiesce mode, any requests that are already in progress are permitted to finish, but any new inbound requests to the server are blocked. Outbound connection attempts, such as connections to JDBC pools or connections through LDAP or a central user directory, remain open.
What Happens when Integration Server Enters Quiesce Mode?
When Integration Server enters quiesce mode, the server disables or suspends the following assets and activities:
-
Ports.
Integration Server disables all ports except the diagnostic port and the
port used to enter and exit quiesce mode.
For details about specifying a port to use for quiescing the server, see Specifying the Quiesce Settings.
- JMS messaging. Integration Server disables all JMS connection aliases and suspends all JMS triggers including SOAP-JMS triggers and web service endpoint triggers. This prevents the retrieval and processing of new messages. Any trigger services that are running attempt to execute to completion. For more information about how Integration Server suspends JMS triggers, see Configuring Integration Server to Enable JMS Triggers Automatically after a Consumer Error.
- MQTT Messaging. Integration Server disables all MQTT connection aliases and suspends all MQTT triggers. This prevents the retrieval and processing of new messages. Any trigger services that are running attempt to execute to completion. For more information about how Integration Server suspends MQTT triggers, see Changing the State of an MQTT Trigger.
- webMethods messaging. Integration Server disables all webMethods messaging connection aliases that specify Universal Messaging as the messaging provider. Integration Server also suspends document retrieval and document processing for webMethods messaging triggers, which includes webMethods messaging triggers that receive documents from Universal Messaging, Broker, or locally published documents from the Integration Server. Any trigger services that are running attempt to execute to completion. For more information about how Integration Server suspends document retrieval for webMethods messaging triggers, see Suspending and Resuming Document Retrieval. For more information about how Integration Server suspends document processing for webMethods messaging triggers, see Suspending and Resuming Document Processing.
-
Packages.
Integration Server
disables all packages except WmRoot and WmPublic. The server unloads the packages and
their resources, completes the package’s shutdown services, and disables the packages in
memory. However, for custom packages, Integration Server
unloads custom packages before system packages, regardless of the package dependencies
defined for the custom packages.
When you switch a server from active mode to quiesce mode, you can specify the number of minutes the server should wait before disabling packages. If services are running, this wait time gives the services a chance to complete before the server disables the package in which they reside, or the packages in which their dependent services reside. If you do not specify a wait time, Integration Server disables packages immediately.
- Scheduled user tasks. Integration Server pauses the scheduler, permits the completion of any scheduled user tasks that are already running, and suspends any scheduled user tasks that have not yet started. If a running user task does not complete before its dependent services are disabled, the task will end in error because of the unresolved dependencies.
-
Guaranteed
delivery.
Integration Server shuts down the inbound and outbound guaranteed delivery
Job Managers and stops both inbound and outbound guaranteed delivery of
documents. For outbound delivery, the server sets the watt property
watt.tx.disabled to True to disable the use of guaranteed delivery for outbound
requests.
Note: Because the server forcefully shuts down the inbound and outbound Job Managers when entering quiesce mode, in-process transactions may fail. Avoid submitting any transactions for processing as the server enters quiesce mode.
If you want to receive inbound guaranteed delivery requests while the server is in quiesce mode, you must first make sure the watt property watt.server.tx.heuristicFailRetry is set to True. Then, start the inbound Job Manager using the service pub.tx:init. The server will re-execute the services for transactions in the job store that are in PENDING status.
If you want to submit outbound transactions while the server is in quiesce mode, you must first set the watt property watt.tx.disabled to False. Then, start the outbound Job Manager using the service pub.tx:resetOutbound.
- Clustering. Integration Server shuts down all cache managers in the Integration Server_directory \instances\instance_name\config\Caching directory and exits the cluster.
The following activities continue when the server is in quiesce mode:
- Active tasks. Integration Server completes user tasks that were started before Integration Server entered quiesce mode. If the Disable System Tasks interacting with Database option on the Server > Quiesce page is selected, then the Database-related system tasks are also disabled.
- Audit logging. By default, the server continues to write audit logging records to the database in the quiesce mode. However, if the Disable Audit Logging option on the Server > Quiesce page is selected, then audit logging is also disabled.
-
Enterprise Gateway. If the
Integration Server acting as the Internal Server is quiesced, the server
disconnects any existing connections to the
Enterprise Gateway Server and completes user tasks that were started before the
server entered quiesce mode. If the
Integration Server acting as the
Enterprise Gateway Server is quiesced, the server’s external and registration ports
are disabled, any existing connections to the Internal Server are disconnected,
and any requests made by the Internal Server to the
Enterprise Gateway Server will time out.
In an Enterprise Gateway scenario, you can avoid unnecessary connection attempts between the two servers by doing one of the following:
- Quiesce the Enterprise Gateway Server and the Internal Server at the same time.
- Disable the Enterprise Gateway registration port on the server that is not being put into quiesce mode.
For more information about webMethods Enterprise Gateway, see Configuring webMethods Enterprise Gateway.
What Tasks Can You Perform in Quiesce Mode?
While Integration Server is in quiesce mode, you can:
- Create, modify, and
deploy packages. Note: If you select the Disable Alerts and Notifications option on the Server > Quiesce page and the server is in quiesce mode, alerts are not emitted, and running alerts and notifier services might throw an exception.
- Change server settings.
- Change the state of ports, JMS connection aliases, webMethods messaging connection aliases, packages, and scheduled user tasks.
- Change clustering configuration such as modifying the Terracotta Server Array URLs.
- Update cache and cache manager settings.
- Install fixes and perform other maintenance tasks.
- Debug services.
What Happens when Integration Server Exits Quiesce Mode?
When Integration Server exits quiesce mode, the server:
- Retains state changes made to any assets during the quiesce session. For example, if you enabled a package that was disabled before the server entered quiesce mode, the package remains enabled when the server exits quiesce mode. If you created a package and then disabled it, the package remains disabled when the server exits quiesce mode.
- Restores the state of any unchanged assets to their state before the server entered quiesce mode. For example, if a scheduled user task was suspended before the server was quiesced, the task remains suspended when the server exits quiesce mode.
- Enables any feature that you disabled on the Server > Quiesce page.
- Resumes the task scheduler.
- Resumes clustering activities.
If Integration Server encounters any errors that prevent it from joining the cluster when exiting quiesce mode, Integration Server does not re-enter quiesce mode. Instead, Integration Server runs as an unclustered, stand-alone server. Integration Server logs any errors that occurred while attempting to join the cluster in the report that appears in Integration Server Administrator after exiting quiesce mode. Use the report and error logs to help correct the underlying configuration errors. Then, to rejoin the cluster, either restart Integration Server or enter and then exit quiesce mode.
- Starts the guaranteed delivery inbound and outbound Job Managers, if you did not start them while the server was in quiesce mode. The server also sets the watt property watt.tx.disabled to False and resumes inbound and outbound guaranteed delivery of documents.
Specifying the Quiesce Settings
About this task
Before you can start or restart an Integration Server in quiesce mode for the first time, you must specify the port through which the server will enter and exit quiesce mode. This port and the diagnostic port are the only ports that remain enabled when a server enters quiesce mode. You cannot disable the quiesce port or the diagnostic port when the server is in quiesce mode.
- Disable Audit Logging
- Disable System Tasks interacting with Database
- Disable Alerts and Notifications
- Disable Statistics Data Collector
- Enter the quiesce mode, and then enable the database for read-only operations.
- Enable the database for read-write operations, and then exit the quiesce mode.
To specify the quiesce port
Procedure
What to do next
To quiesce the server, enter the Quiesce mode as described in Quiescing Integration Server.
Quiescing Integration Server
You can quiesce Integration Server by starting the server in quiesce mode from the command prompt, by switching a server from active mode to quiesce mode from Integration Server Administrator, or by restarting a server in quiesce mode from Integration Server Administrator.
Additionally, an Integration Server that is a member of a cluster can be configured to enter quiesce mode if any errors prevent the server from joining the cluster at start up. To do this, when configuring a cluster, set the Action on Startup Error to Enter Quiesce Mode on a Stand-Alone Integration Server. For more information about entering quiesce mode automatically when Integration Server cannot connect to the cluster at start up, see the About Action on Startup Error Options .
Starting the Server in Quiesce Mode from the Command Prompt
About this task
You can start the server in quiesce mode by
setting the
-quiesce switch.
For information about other startup command switches, see
Starting a Server Instance from the Command Prompt.
Quiescing an Active Server from Integration Server Administrator
About this task
You can switch an active Integration Server to quiesce mode using the Integration Server Administrator.
To quiesce an active server from Integration Server Administrator
Procedure
Restarting a Server in Quiesce Mode from Integration Server Administrator
About this task
You can restart an active or quiesced Integration Server in quiesce mode from the Integration Server Administrator.
To restart a server in quiesce mode from Integration Server Administrator
Procedure
Exiting Quiesce Mode
About this task
When an Integration Server is running in quiesce mode, you can use the Integration Server Administrator to exit quiesce mode and resume normal operation.
To exit quiesce mode
Procedure
Deploying Quiesce Mode Configuration
When you specify a quiesce port, Integration Server maintains the port alias in the quiesce configuration file (quiesce.cnf). This file resides in the Integration Server_directory \instances\instance_name\config directory. The quiesce.cnf file is a deployable asset.
When you use webMethods Deployer to deploy the quiesce.cnf file to another Integration Server, keep the following points in mind:
- The quiesce port you want to deploy must reside in either the WmRoot or the WmPublic package. Because all other packages are disabled when a server enters quiesce mode, the target server will not be able to enter quiesce mode if the quiesce port resides in a package other than WmRoot or WmPublic.
- Packages that are installed with Integration Server, such as WmRoot and WmPublic, are not deployable assets. Deployer identifies these packages as unresolved dependencies when you include the quiesce.cnf file as part of the deployment set. Click Ignore to bypass dependency checking for this situation.
- If no quiesce port is specified on the target server, the target server uses the port specified in quiesce.cnf. Either ensure that this port exists on the target server or add the port to the list of deployable assets. The port should be of type HTTP or HTTPS.
- You can substitute the quiesce port alias value during the mapping step in Deployer.
For details about deploying assets using Deployer, see webMethods Deployer User’s Guide .
>