Title: RE: Recuperar usuarios que bloquean una biblioteca

    Saludos

     Amigos Del foro, a continuaci�n les env�o un ejemplo de un Programa CLP que recupera el numero de "bloqueos" para un objeto especifico.

     Espero que ayude.

     Leonardo Villalobos
     Soporte T�cnico AS/400
     Banco Occidental de Descuento
     Maracaibo Venezuela


-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]En nombre de
[EMAIL PROTECTED]
Enviado el: Martes, 14 de Mayo de 2002 06:07 a.m.
Para: [EMAIL PROTECTED]
Asunto: RE: Recuperar usuarios que bloquean una biblioteca



Si que existe una API para ello, la QWCLOBJL.

En el information center, puedes acceder al de tu versi�n/release desde el
apartado manuales de recursos-as400.com, si buscas WRKOBJLCK API te muestra
el enlace a la p�gina del manual de dicha API. Por la red (busca en el
google) hay bastantes ejemplos de dicha API.

De todas maneras, no es un poco arriesgado eso de finalizar todos los
trabajos que utilicen una biblioteca? y si est�n actualizando un archivo de
otra? si es batch no te esperar�s a que finalice? no envias un msg de aviso
a esas pantallas 15 minutos antes de cancelarla?

fins aviat...
�lex Corretg�






JUAN MANUEL CEVASCO ROMERO <[EMAIL PROTECTED]>@QUIJOTE.COMBIOS.ES con
fecha 14/05/2002 11:07:16

Por favor, responda a [EMAIL PROTECTED]

Tram�s per:    [EMAIL PROTECTED]


Destinataris:     "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
C�pia:

Classificat:  |----------------|
              | ( ) Important  |
              | ( ) urgent     |
              | ( ) hist�ric   |
              | ( ) temporal   |
              | ( ) bretolada  |
              | ( ) particular |
              |----------------|
Assumpte: RE: Recuperar usuarios que bloquean una biblioteca


Gracias Agust=EDn,  esta es la =FAnica opci=F3n que se me hab=EDa =
ocurrido.  Pero
como es un poco rebuscada, quer=EDa saber si alguien del foro conoc=EDa =
alguna
otra forma de recuperar bloqueos sobre una biblioteca, mediante API, =
por
ejemplo.=20

-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]En nombre de Agust=EDn =
Ripoll=E9s
Enviado el: lunes 13 de mayo de 2002 20:13
Para: [EMAIL PROTECTED]
Asunto: Re: Recuperar usuarios que bloquean una biblioteca


Juan Manuel:

Se me ocurre que puedes montar un CL que haga un WRKOBJLCK con salida
*PRINT, posteriormente puedes hacer un CPYSPLF para copiar la salida =
del
spool en un archivo f=EDsico y montar un programa que lea el archivo =
f=EDsico
que se ha generado para recuperar el nombre del trabajo, el usuario y =
el
n=FAmero de trabajo.

Un saludo.

Agust=EDn Ripoll=E9s Baeza
Porspan S.L.
[EMAIL PROTECTED]
www.porspan.com

----- Original Message -----
From: "JUAN MANUEL CEVASCO ROMERO" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, May 13, 2002 6:48 PM
Subject: Recuperar usuarios que bloquean una biblioteca


Hola a todos/as:

Estoy montando un proceso cuyo objetivo es el siguiente:  Una vez
lanzado, debe borrar ciertas bibliotecas, si encuentra que alguien las =
est=E1
utilizando, debe echarlo del sistema (ENDJOB).

Aqu=ED es donde me encuentro el problema,  para emitir un endjob,
necesito el usuario, nombre y n=BA de trabajo,  y no se como =
recuperarlo.
=BFalguna idea?

Gracias anticipadas.....

Juan Manuel Cevasco Romero
Dpto. Desarrollo
Inforges S. A.
mailto:[EMAIL PROTECTED]
http://www.inforges.es/
Tel=E9fono: 968350011 (Centralita)
Fax: 968264569





_____________________________________________________
Forum.HELP400 es un servicio m=E1s de NEWS/400.
=A9 Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, env=EDa el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]?body=3DLEAVE

_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]?body=LEAVE







_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]?body=AVE

/* ========================================================================= */
/*   Nombre Del Programa: SOPORTE108                                         */
/*   Tipo  De Programa:                                                      */
/*   Nombre Del Autor..:  LEONARDO VILLALOBOS                                */
/*   Fecha  De  Creacion..: 25 DE MAYO DE 2000                               */
/*                                                                           */
/*   Proposito............: Recupera Bloqueo de un Objeto                    */
/*                          Especifico                                       */
/*                                                                           */
/*   Sumario Del Programa                                                    */
/*   ------------------------------------------------------------------------*/
/*                                                                           */
/*                                                                           */
/*                                                                           */
/*                                                                           */
/*                                                                           */
/*                                                                           */
/*                                                                           */
/*   Revision Del Sumario                                                    */
/*   ------------------------------------------------------------------------*/
/*   Adaptado a Las Necesidades de Banco Occidental de Descuento             */
/*                                                                           */
/*                                                                           */
/*                                                                           */
/* ==========================================================================*/
PGM

/* Variables  para Manejo de Errores                                         */

            DCL  &msgid   *CHAR 7
            DCL  &msgf    *CHAR 10
            DCL  &msgflib *CHAR 10
            DCL  &msgdta  *CHAR 100

/* Variables de Trabajo                                                      */

            DCL   &Temp *CHAR  5
            DCL   &Fqjobname  *CHAR  20                                      +
                  Value('SOPORTE   QUSRSYS   ')
            DCL   &type *CHAR  10                                            +
                  Value('*MSGQ     ')
            DCL   &Err *CHAR   8                                             +
                  Value(X'0000000000000000')
            DCL   &Usrspc  *CHAR  20                                         +
                  Value('LCKO      QTEMP     ')
            DCL   &Bin4 *CHAR    4
            DCL   &Loop *DEC  LEN(8 0)
            DCL   &Dec8 *DEC  LEN(8 0)
            DCL   &Elen *DEC  LEN(8 0)
            DCL   &Elenb *CHAR   4
            DCL   &Lckob *CHAR  1000
            DCL   &Lock  *CHAR  10

/* ========================================================================= */
/* Ejecuta Rutina de Manejo de Error                                         */
/* ========================================================================= */

 MONMSG (Cpf0000 Mch0000)  EXEC(Goto Error)

/* ========================================================================= */
/* Elimina El Espacio de Usuario, Si existe                                  */
/* ========================================================================= */

  CALL  Qusdltus  Parm(&Usrspc &Err)

  MONMSG Cpf0000

/* ========================================================================= */
/* Crea  El Espacio de Usuario                                               */
/* ========================================================================= */

 CALL Quscrtus  Parm(&Usrspc 'Chgactjob '                                    +
                         X'00011000' ' ' '*ALL      ' 'Obj.    Lck           +
                         List Temp User Space                      ')

/* ========================================================================= */
/* Ejecuta la Api para Recuperar el Bloqueo del Objeto                       */
/* ========================================================================= */

NEXT:

  CALL  Qwclobjl PARM(&Usrspc 'OBJL0100'                                     +
                      &Fqjobname   &type  '*NONE' &Err            )

/* ========================================================================= */
/* Ejecuta la Api para Recuperar los Bloqueos                                */
/* ========================================================================= */

  CALL  Qusrtvus  PARM(&Usrspc X'00000085'                                   +
                        X'00000004' &Bin4)

/* ========================================================================= */
/* Convierte a Decimal                                                       */
/* ========================================================================= */

  CHGVAR &Loop   (%Binary(&Bin4))

  CHGVAR &Temp   (&Loop)

/* ========================================================================= */
/* Comprueba Si existen Bloqueos para el Objeto                              */
/* ========================================================================= */

 IF (&Loop =0)

/* ========================================================================= */
/* Recupera Longitud de la Lista y convierte a Decimal                       */
/* ========================================================================= */

 CALL Qusrtvus (&Usrspc X'00000089' X'00000004'                              +
                &Elenb)

 CHGVAR  &Elen   %Binary(&Elenb)

/* ========================================================================= */
/* Recupera Informacion del Espacio de Usuario                               */
/* ========================================================================= */

 CALL Qusrtvus (&Usrspc X'0000007D' X'00000004'                              +
                &Bin4)

 CHGVAR (&Dec8) (%Binary(&Bin4))

 CHGVAR (&Dec8) (&dec8 + 1)

/* ========================================================================= */
/* Convierte la Psicion de Decimal a Binario 4 y Recupera List. de Bloqueos  */
/* ========================================================================= */

 CHGVAR (%Binary(&Bin4)) (&Dec8)

 CALL QUSRTVUS (&Usrspc &Bin4 &Elenb                                         +
                &Lckob)

 CHGVAR  (&Lock)  (%SsT(&Lckob 27 6))

/* ======================================================================== */
/* Rutina de Error                                                          */
/* ======================================================================== */

ERROR:                                                                      +
  RCVMSG     MSGTYPE(*Last)                                                 +
             MSGDTA(&msgdta)                                                +
             MSGID(&msgid)                                                  +
             MSGF(&msgf)                                                    +
             SNDMSGFLIB(&msgflib)

/* ======================================================================== */
/* Evita un Ciclo                                                           */
/* ======================================================================== */

 MONMSG     CPF0000

 SNDPGMMSG  MSGID(&msgid)                                                   +
            MSGF(&msgflib/&msgf)                                            +
            MSGDTA(&msgdta)                                                 +
            MSGTYPE(*Escape)

/* ======================================================================== */
/* Evita un Ciclo                                                           */
/* ======================================================================== */

 MONMSG     CPF0000

/* ==========================================================================*/
/* Elimina El Espacio de Usuario Temporal que fue Creado                     */
/* ==========================================================================*/

  CALL Qusdltus  PARM(&usrspc &Err)

  MONMSG Cpf0000

ENDPGM


Responder a