docs: private static RLSSuspendToken suspendRLS(int timeout) throws RLSTimeoutRangeException
      {
          if (tc.isEntryEnabled()) Tr.entry(tc, "suspendRLS", new Integer(timeout));
          
          if (timeout < 0 || timeout > 1000000000)
          {
               if (tc.isEventEnabled()) Tr.event(tc, "Timeout value is out of range - throwing RLSTimeoutRangeException", new Integer(timeout));
               if (tc.isEntryEnabled()) Tr.exit(tc, "suspend", "RLSTimeoutRangeException");
          	throw new RLSTimeoutRangeException();
          }
          
          RLSSuspendToken token = null;
          
          synchronized(SUSPEND_LOCK)
          {
          	if(!Configuration._isSnapshotSafe)
          	{
          		// If the server is not configured to be snapshot safe
          		// then we should put out a warning message
          		Tr.warning(tc, "CWRLS0020_SNAPSHOT_SAFE");
          	}
          	
              // Notify the token manager that the RLS has been called to suspend
              token = _tokenManager.registerSuspend(timeout);
              
              Tr.info(tc, "CWRLS0001_SUSPEND_RLS", token);
                  
              // RLS has not already been suspended
              // Set suspended flag true
              _isSuspended = true;
          }
          
          if (tc.isEntryEnabled()) Tr.exit(tc, "suspendRLS", token);
          
          // Return the RLSSuspendToken
          return token;
      }