Oracle DBMS_WRR_STATE
Version 21c

General Information
Library Note Morgan's Library Page Header
Which has the higher priority in your organization: Deploying a new database or securing the ones you already have? Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
Purpose Constants that can be used to determine whether Workload Capture and Replay are currently active
AUTHID N/A
Constants
Name Data Type Value
Capture_On BOOLEAN (dbms_workload_capture.get_state()=1);
Replay_On BOOLEAN (dbms_workload_replay.get_state()=1);
Dependencies
DBMS_RANDOM DBMS_WRR_STATE_BASE  
Documented No
First Available 12.2
Pragma PRAGMA restrict_references(dbms_wrr_state, WNDS);
Security Model Owned by SYS with EXECUTE granted to the DBA and EXECUTE_CATALOG_ROLE roles.
Source {ORACLE_HOME}/rdbms/admin/dbmswrr.sql

check dbmsrand.sql
 
Demo
WRR State Demo The following demo code is from $ORACLE_HOME/rdbms/admin/dbmsrand.sql and shows how these constants are used.
FUNCTION value RETURN NUMBER PARALLEL_ENABLE IS
 randval NUMBER;
BEGIN
  IF sys.dbms_wrr_state.Replay_On THEN
    randval := replay_random_number();
   IF randval IS NOT NULL THEN
      RETURN randval;
    END IF;
  END IF;

  counter := counter + 1;
  IF counter >= 55 THEN
    -- initialize if needed
    IF (need_init = TRUE) THEN
      seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS') || USER || USERENV('SESSIONID'));
    ELSE
    -- need to generate 55 more results
      FOR i IN 0..30 LOOP
        randval := mem(i+24) + mem(i);
        IF (randval >= 1.0) THEN
          randval := randval - 1.0;
        END IF;
        mem(i) := randval;
      END LOOP;

      FOR i IN 31..54 LOOP
        randval := mem(i-31) + mem(i);
        IF (randval >= 1.0) THEN
          randval := randval - 1.0;
        END IF;
        mem(i) := randval;
      END LOOP;
    END IF;
    counter := 0;
  END IF;

  IF sys.dbms_wrr_state.Capture_On THEN
    record_random_number(mem(counter));
  END IF;

  RETURN mem(counter);
END value;
/

Related Topics
Built-in Functions
Built-in Packages
DBMS_WORKLOAD_CAPTURE
DBMS_WORKLOAD_REPLAY
DBMS_WRR_INTERNAL
DBMS_WRR_PROTECTED
DBMS_WRR_REPORT
DBMS_WRR_STATE_BASE
What's New In 19c
What's New In 20c-21c

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2019 Daniel A. Morgan All Rights Reserved
  DBSecWorx