Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

Alex240
Giga Expert

The following script determines and returns whether there are events stuck -- meaning they were claimed by a node which, for whatever reason, is unavailable at the moment -- thus, event won't be processed.

 

How to use:

  1. Execute as a background script / fix script

 

(function () {
   var gaEvent = new GlideAggregate('sysevent');
   gaEvent.addAggregate('COUNT', 'claimed_by');
   gaEvent.addQuery('state', '!=', 'processed');
   gaEvent.addQuery('state', '!=', 'error');
   gaEvent.addQuery('state', '!=', 'transferred');
   gaEvent.addNotNullQuery('claimed_by');
   gaEvent.query();
   
   while (gaEvent.next()) {
      var node = gaEvent.getValue('claimed_by');
      var count = gaEvent.getAggregate('COUNT', 'claimed_by');
      
      var grNode = new GlideRecord('sys_cluster_state');
      
      grNode.addQuery('status', 'online');
      grNode.addQuery('system_id', node);
      grNode.query();

      grNode.hasNext() ? 
      gs.log('No stuck events found') :
      gs.log('Unavailable node: ' + node + ' is claiming ' + count + ' events', 'stuck_event');
   }
})();

 

‼️ Disclaimer: Please, always test the script in non-productive environments before running in a productive instance. Script was reviewed at the creation time but may break/get unexpected results due to instance versioning and SN API upgrades.

Version history
Last update:
‎05-25-2022 01:49 PM
Updated by: