+

Search Tips   |   Advanced Search

Select messaging engine behavior when a file store is full

We can specify what action a messaging engine takes when a file store is full and applications try to send further messages. We can make application threads wait for the checkpoint to complete, or throw an exception immediately.

When a file store is full, the messaging engine carries out a checkpoint of the log file to reconcile all message sends and receives since the last checkpoint. This process might take some time to complete. Between the time when the file store becomes full and the time when the checkpoint is complete, if applications try to send a message, the messaging engine throws the exception ObjectStoreFullException and issues message CWSOM1042E.

When an application thread that is sending a message finds that the file store is full, it requests a checkpoint. The default behavior is that the application thread then throws the exception ObjectStoreFullException to the application immediately. We can select an alternative behavior where the application thread does not throw the exception, but waits until the checkpoint has completed. If the checkpoint frees space in the file store, the application thread proceeds and sends the messages before returning. If the file store is still full after the checkpoint, the application thread throws the exception to the application.

Choose to make application threads wait if the applications delete all the messages in the file store, and so they logically know that the file store is no longer full. Although the applications must still wait until the checkpoint is complete, they do not receive exceptions while the checkpoint is being carried out, and they do not have to retry the send.

To change the behavior when the file store is full, use the console to set the value of the property sib.msgstore.storeFullWaitForCheckPoint as follows:

  1. In the navigation pane, click Service integration -> Buses -> bus_name -> [Topology] Messaging engines -> engine_name -> [Additional Properties] Custom properties.

  2. Type the name of the property, sib.msgstore.storeFullWaitForCheckPoint.

  3. Type the value true to make application threads wait for the checkpoint to complete before returning. The default value false makes application threads throw the exception ObjectStoreFullException immediately after requesting the checkpoint.

  4. Click OK.

  5. Save the changes to the master configuration.


What to do next

Remember: When we change this property, the new value does not take effect until you restart the messaging engine.