MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/dbmsadro.sql

Rem
Rem $Header: rdbms/admin/dbmsadro.sql /main/6 2015/08/19 11:54:52 raeburns Exp $
Rem
Rem dbmsadro.sql
Rem
Rem Copyright (c) 2011, 2015, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      dbmsadro.sql - DBMS ADR Onjects
Rem
Rem    DESCRIPTION
Rem      Declares ADR objects used in PL/SQL interface to ADR 
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/dbmsadro.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/dbmsadro.sql
Rem SQL_PHASE: DBMSADRO
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: rdbms/admin/catptyps.sql
Rem END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    raeburns    06/09/15 - Use FORCE for types with only type dependents
Rem    svaziran    05/26/15 - 21143666: liden: user_id to 128
Rem    svaziran    03/22/15 - 19217529: update adr_log_msg_t
Rem    surman      12/29/13 - 13922626: Update SQL metadata
Rem    surman      03/27/12 - 13615447: Add SQL patching tags
Rem    shiyadav    06/12/11 - Created
Rem

@@?/rdbms/admin/sqlsessstart.sql


-- **********************************************************************
-- ADR home object 
--    This object represents the ADR home in ADR repository.
--    It serves as the interface to be used for ADR home operations.
--    Supports incident creation and ODL message logging.
-- **********************************************************************

CREATE OR REPLACE TYPE adr_home_t FORCE AS OBJECT
(
  product_type          VARCHAR2(8),                        /* product type */
  product_id            VARCHAR2(30),                         /* product id */
  instance_id           VARCHAR2(30),                        /* instance id */
  precedence            INTEGER,       /* precedence level of this adr home */
  adr_id                INTEGER,              /* hash value of the adr home */


-- **********************************************************************  
-- Construct an ADR home object representing ADR home at a location 
-- described by application specific naming
-- **********************************************************************

  CONSTRUCTOR FUNCTION adr_home_t
  (
    SELF IN OUT NOCOPY  adr_home_t,
    product_type        VARCHAR2,
    product_id          VARCHAR2,
    instance_id         VARCHAR2,
    precedence          INTEGER
  )
  RETURN SELF AS RESULT
);
/
show errors


-- **********************************************************************
-- Incident error arguments
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_err_args_t FORCE AS 
  VARRAY(12) OF VARCHAR2(64);
/
show errors


-- **********************************************************************
-- Incident correlation key
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_corr_key_t FORCE AS OBJECT
(
  name                  VARCHAR2(64),                /* correlation key name */
  value                 VARCHAR2(512),               /* correlation key value*/
  flags                 INTEGER                     /* correlation key flags */
);
/
show errors


-- **********************************************************************
-- List of incident correlation keys
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_corr_keys_t FORCE AS 
  VARRAY(10) OF adr_incident_corr_key_t;
/
show errors


-- **********************************************************************
-- Incident file (file that contains incident diagnostic data
-- or intended to be registered with the incident)
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_file_t FORCE AS OBJECT
(
  dirpath               VARCHAR2(512),         /* directory path of the file */
  filename              VARCHAR2(64)                            /* file name */
);
/
show errors


-- **********************************************************************
-- List of incident files
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_files_t FORCE AS 
  VARRAY(10) OF adr_incident_file_t;
/
show errors


-- **********************************************************************
-- Internal type that holds pending incident information
-- Do not use this directly
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_info_t FORCE AS OBJECT
(
  problem_key             VARCHAR2(64),       /* problem key of the incident */
  error_facility          VARCHAR2(10),                    /* error facility */
  error_number            INTEGER,                           /* error number */
  error_message           VARCHAR2(1024),                   /* error message */
  ecid                    VARCHAR2(64),              /* execution context id */
  signalling_component    VARCHAR2(64),              /* signalling component */
  signalling_subcomponent VARCHAR2(64),          /* signalling sub component */
  suspect_component       VARCHAR2(64),                 /* suspect component */
  suspect_subcomponent    VARCHAR2(64),             /* suspect sub component */
  error_args              adr_incident_err_args_t,        /* error arguments */
  correlation_keys        adr_incident_corr_keys_t,      /* correlation keys */
  files                   adr_incident_files_t  /* additional incident files */
);
/
show errors



-- **********************************************************************
-- Incident object
-- This serves as the interface to adding data/metadata to the incident
-- **********************************************************************

CREATE OR REPLACE TYPE adr_incident_t AS OBJECT
(
  home                   adr_home_t,           /* adr home for this incident */
  id                     INTEGER,                             /* incident id */
  staged                 VARCHAR2(1),                  /* is staged incident */
  in_update              VARCHAR2(1),         /* is in the process of update */
  pending                adr_incident_info_t,            /* for internal use */
   

  -- **********************************************************************
  -- Gets the id of this incident
  -- **********************************************************************

  MEMBER FUNCTION get_id RETURN INTEGER,
  

  -- **********************************************************************
  -- Gets the path to the directory where incident diagnostic files reside
  -- Value is <ADR_HOME>/incident/incdir_<ID>
  -- **********************************************************************

  MEMBER FUNCTION get_incident_location RETURN VARCHAR2,


  -- **********************************************************************
  -- Writes diagnostics to the default incident file
  -- **********************************************************************

  MEMBER PROCEDURE dump_incident
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    data     IN VARCHAR2                    /* data to dump in incident file */
  ),


  -- **********************************************************************
  -- Writes RAW diagnostics to the default incident file
  -- **********************************************************************

  MEMBER PROCEDURE dump_incident_raw
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    data     IN RAW                     /* RAW data to dump in incident file */
  ),


  -- **********************************************************************
  -- Writes diagnostics to a specified incident file in the incident
  -- directory
  -- **********************************************************************

  MEMBER PROCEDURE dump_incfile
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    filename IN VARCHAR2,          /* additional incident file to be created */
    data     IN VARCHAR2                       /* data to dump in above file */
  ),


  -- **********************************************************************
  -- Writes raw diagnostic data to the specified incident file in the
  -- incident directory 
  -- **********************************************************************

  MEMBER PROCEDURE dump_incfile_raw
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    filename IN VARCHAR2,          /* additional incident file to be created */
    data     IN RAW                        /* RAW data to dump in above file */
  ),
 

  -- **********************************************************************
  -- Adds correlation key to this incident
  -- **********************************************************************

  MEMBER PROCEDURE add_correlation_key 
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    name     IN VARCHAR2,                            /* correlation key name */
    value    IN VARCHAR2,                           /* correlation key value */
    flags    IN INTEGER DEFAULT NULL                /* correlation key flags */
  ),
  

  -- **********************************************************************
  -- Registers a file with this incident. 
  -- The file can be anywhere in ADR home.
  -- **********************************************************************

  MEMBER PROCEDURE register_file 
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    dirpath  IN VARCHAR2,                      /* directory path of the file */
    filename IN VARCHAR2                                        /* file name */
  ),
  

  -- **********************************************************************
  -- Registers a file in incident directory with this incident
  -- **********************************************************************

  MEMBER PROCEDURE register_file 
  (
    SELF     IN OUT NOCOPY adr_incident_t,
    filename IN VARCHAR2                                        /* file name */
  ),


  -- **********************************************************************
  -- Marks the beginning of post-create updates to this incident
  --  This should be used to add correlation keys, adding additional
  --  incident files and other incident metadata changes after
  --  the incident has already been created
  -- **********************************************************************

  MEMBER PROCEDURE begin_update(SELF IN OUT NOCOPY adr_incident_t),
  

  -- **********************************************************************
  -- Marks the end of post-create updates to this incident
  --  begin_update and end_update must always be used together
  -- **********************************************************************

  MEMBER PROCEDURE end_update(SELF IN OUT NOCOPY adr_incident_t)
);
/
show errors

-----------------------------------------------------------------------
--  ODL log message intended to be written to ADR
-----------------------------------------------------------------------


-- **********************************************************************
-- Supplemental attribute
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_suppl_attr_t FORCE AS OBJECT
(
  name       VARCHAR2(64),                                 /* attribute name */
  value      VARCHAR2(128)                                /* attribute value */
);
/
show errors


-- **********************************************************************
-- List of supplemental attributes
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_suppl_attrs_t FORCE AS 
  VARRAY(32) OF adr_log_msg_suppl_attr_t;
/
show errors


-- **********************************************************************
-- Message argument
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_arg_t FORCE AS OBJECT
(
  name       VARCHAR2(64),                      /* log message argument name */
  value      VARCHAR2(128)                     /* log message argument value */
);
/
show errors


-- **********************************************************************
-- List of message arguments
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_args_t FORCE AS VARRAY(32) OF adr_log_msg_arg_t;
/
show errors


-- **********************************************************************
-- Execution context id
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_ecid_t FORCE AS OBJECT
(
  id         VARCHAR2(100),                          /* execution context id */
  rid        VARCHAR2(100)                  /* execution context sequence id */
);
/
show errors


-- **********************************************************************
-- Error id
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_errid_t FORCE AS OBJECT
(
  id         VARCHAR2(100),                             /* error instance id */
  rid        VARCHAR2(100)                              /* error sequence id */
);
/
show errors


-- **********************************************************************
-- Log message template object
--  used to store common log parameters to avoid giving values
--  to those common parameter again and again in write_log call
-- **********************************************************************

CREATE OR REPLACE TYPE adr_msg_template_t AS OBJECT
(
  org_id                 VARCHAR2(64),                    /* organization id */
  component_id           VARCHAR2(64),                       /* component id */
  instance_id            VARCHAR2(64),                        /* instance id */
  hosting_client_id      VARCHAR2(64),                  /* hosting client id */
  msg_group              VARCHAR2(64),                      /* message group */
  host_id                VARCHAR2(64),                            /* host id */
  host_nwaddr            VARCHAR2(46),                       /* host address */
  module_id              VARCHAR2(64),                         /* module id  */
  process_id             VARCHAR2(32),                        /* process id  */
  thread_id              VARCHAR2(64),                         /* thread id  */
  user_id                VARCHAR2(128),                          /* user id  */
  upstream_comp_id       VARCHAR2(64),             /* upstream component id  */
  downstream_comp_id     VARCHAR2(64),           /* downstream component id  */
  ecid                   adr_log_msg_ecid_t,        /* execution context id  */
  error_instance_id      adr_log_msg_errid_t,          /* error instance id  */
  msg_args               adr_log_msg_args_t,           /* message arguments  */
  detail_location        VARCHAR2(160),                /* detailed location  */
  suppl_detail           VARCHAR2(128),             /* supplemental details  */
  -- CDB fields
  con_uid                INTEGER,                     /* container unique ID */
  con_id                 INTEGER,                            /* container ID */
  con_name               VARCHAR2(30)                      /* container name */
);
/
show errors


-- **********************************************************************
-- Log message object
-- **********************************************************************

CREATE OR REPLACE TYPE adr_log_msg_t AS OBJECT
(
  -- Header attributes  
  timestamp_originating  TIMESTAMP WITH TIME ZONE,       /* time originating */
  timestamp_normalized   TIMESTAMP WITH TIME ZONE,        /* time normalized */
  org_id                 VARCHAR2(64),                    /* organization id */
  component_id           VARCHAR2(64),                       /* component id */
  instance_id            VARCHAR2(64),                        /* instance id */
  hosting_client_id      VARCHAR2(64),                  /* hosting client id */
  msg_id                 VARCHAR2(64),                         /* message id */
  msg_type               INTEGER,                            /* message type */
  msg_group              VARCHAR2(64),                      /* message group */
  msg_level              INTEGER,                           /* message level */
  host_id                VARCHAR2(64),                            /* host id */
  host_nwaddr            VARCHAR2(46),                       /* host address */
  module_id              VARCHAR2(64),                         /* module id  */
  process_id             VARCHAR2(32),                        /* process id  */
  thread_id              VARCHAR2(64),                         /* thread id  */
  user_id                VARCHAR2(128),                          /* user id  */
  suppl_attrs            adr_log_msg_suppl_attrs_t,
                                                  /* Supplemental attributes */
  
  -- Correlation data fields
  problem_key            VARCHAR2(64),                        /* problem key */
  upstream_comp_id       VARCHAR2(64),             /* upstream component id  */
  downstream_comp_id     VARCHAR2(64),           /* downstream component id  */
  ecid                   adr_log_msg_ecid_t,        /* execution context id  */
  error_instance_id      adr_log_msg_errid_t,          /* error instance id  */
  
  -- Payload
  msg_text               VARCHAR2(2048),                     /* message text */
  msg_args               adr_log_msg_args_t,            /* message arguments */
  detail_location        VARCHAR2(160),                /* detailed location  */
  suppl_detail           VARCHAR2(128),             /* supplemental details  */

  -- CDB fields
  con_uid                INTEGER,                     /* container unique ID */
  con_id                 INTEGER,                            /* container ID */
  con_name               VARCHAR2(30)                      /* container name */
);
/
show errors


CREATE OR REPLACE PUBLIC SYNONYM adr_home_t FOR sys.adr_home_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_incident_t FOR sys.adr_incident_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_incident_err_args_t 
  FOR sys.adr_incident_err_args_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_incident_files_t 
  FOR sys.adr_incident_files_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_incident_corr_keys_t 
  FOR sys.adr_incident_corr_keys_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_t FOR sys.adr_log_msg_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_ecid_t FOR sys.adr_log_msg_ecid_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_errid_t 
  FOR sys.adr_log_msg_errid_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_arg_t FOR sys.adr_log_msg_arg_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_args_t FOR sys.adr_log_msg_args_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_suppl_attrs_t 
  FOR sys.adr_log_msg_suppl_attrs_t;
CREATE OR REPLACE PUBLIC SYNONYM adr_log_msg_suppl_attr_t 
  FOR sys.adr_log_msg_suppl_attr_t;


GRANT EXECUTE ON adr_home_t TO dba;
GRANT EXECUTE ON adr_incident_t TO dba;
GRANT EXECUTE ON adr_incident_info_t TO dba;
GRANT EXECUTE ON adr_incident_files_t TO dba;
GRANT EXECUTE ON adr_incident_corr_keys_t TO dba;
GRANT EXECUTE ON adr_log_msg_t TO dba;
GRANT EXECUTE ON adr_log_msg_ecid_t TO dba;
GRANT EXECUTE ON adr_log_msg_errid_t TO dba;
GRANT EXECUTE ON adr_log_msg_args_t TO dba;
GRANT EXECUTE ON adr_log_msg_arg_t TO dba;
GRANT EXECUTE ON adr_log_msg_suppl_attrs_t TO dba;
GRANT EXECUTE ON adr_log_msg_suppl_attr_t TO dba;
/

show errors;

@?/rdbms/admin/sqlsessend.sql

OHA YOOOO