TAA Tools
FRCOBJSTG       FORCE OBJECT STORAGE                   TAAOBJM

The  Force Object  Storage  command forces  an  object to  non-volatile
storage.   Only  the object types  *USRIDX, *USRQ,  and *USRSPC  may be
specified  and  the  object  must  be in  the  *USER  domain.   Without
forcing the  object to non-volatile  storage (disk),  a system  failure
could  cause the  object on  disk to  contain the  value prior  to your
change.

A typical command would be:

             FRCOBJSTG     OBJ(xxx) OBJTYPE(*USRSPC)

When  an   object  is  changed  by  the  system,  the  system  normally
schedules the  writing of the  changed pages  to disk  storage.   While
the  actually  writing  to  disk  normally  occurs  very  quickly,  the
changed pages  are not on disk immediately  after you complete a change
operation.

Some object  types provide  a  FORCE parameter  on the  create  command
(see  CRTDTAQ  or  CRTMSGQ)   to  ensure  that  any  changes   will  be
immediately  forced to  non-volatile  storage.   The  CRTPF FRCRATIO(1)
function is a similar option.

The  APIs used  to create  *USRIDX, *USRQ,  and *USRSPC objects  do not
provide a 'force' parameter.   The FRCOBJSTG command may be  used after
making  a change  to  one of  these  object types  to  ensure that  the
changed pages are written immediately to non-volatile storage.

Domains
-------

When  an object  is  created, it  is placed  in  either the  *SYSTEM or
*USER domain.  Typical object  types such as *FILE, *DTAARA, *CMD,  etc
are always placed in the *SYSTEM domain.

At Level  40 Security, the system  ensures that objects in  the *SYSTEM
domain  may  only be  accessed  using system  interfaces  such  as data
management.  This prevents improper access or change.

User *PGM objects are placed  in the *USER domain  to allow them to  be
called  (CALL command).   System  *PGM  objects will  be  in the  *USER
domain if  they may be called directly such  as API programs.  Internal
system  programs  such as  the  CPP for  CRTUSRPRF  are in  the *SYSTEM
domain  to  prevent  them  from  being  called  directly  by  the  CALL
command.   The  CPP for  CRTUSRPRF  may only  be used  by invoking  the
CRTUSRPRF command.

You  can see the domain of  an object by using DSPOBJD  or the TAA Tool
DSPOBJD2.

An object  type such  as  a *USRSPC  is normally  placed in  the  *USER
domain to  allow access using a  pointer.  The QALWUSRDMN  system value
and  the DOMAIN parameter  on the  QUSCRTUS API determine  which domain
will be used for a *USRSPC.

FRCOBJSTG escape messages you can monitor for
---------------------------------------------

      TAA9891    Unsupported object type
      TAA9892    Unable to find the object
      TAA9893    Object is in the system domain
      TAA9894    Could not force the object.  See job log.

Escape messages from based on functions will be re-sent.

Command parameters                                    *CMD
------------------

   OBJ           The qualified name of  the object to  be forced.   The
                 library value defaults to *LIBL.

   OBJTYPE       The  type of  object  to  be  forced.   Only  *USRIDX,
                 *USRQ, or *USRSPC objects may be specified.

Restrictions
------------

Only  *USRIDX,  *USRQ, or  *USRSPC  objects may  be  specified and  the
object must exist in the *USER domain.

Prerequisites
-------------

The following TAA Tools must be on your system:

     RTVOBJD2        Retrieve object description 2
     SNDESCMSG       Send escape message

Implementation
--------------

None, the tool is ready to use.

Objects used by the tool
------------------------

   Object        Type    Attribute      Src member    Src file
   ------        ----    ---------      ----------    ----------

   FRCOBJSTG     *CMD                   TAAOBJM       QATTCMD
   TAAOBJMR      *PGM       RPGLE       TAAOBJMR      QATTRPG
					

Added to TAA Productivity tools May 1, 2003


Home Page Up to Top