[SPAM] COBOL: ¿quien está bloqueando un registro?

2006-11-09 Por tema Victor Almonacid

Hola a todos:

   Espero puedan ayudarme, ya que llevo varias horas tratando de 
solucionar el problema planteado y lo mas probable es que mas de alguno de 
Uds. lo tenga implementado.


   Yo trabajo en COBOL 400 y quiero saber qué usuario está bloqueando 
el registro que quiero modificar...


   Si alguien tiene la rutina en RPG que me la envíe completa por favor 
ya que no conozco ese lenguaje, pero tengo el compilador y puedo tratar de 
entenderlo.


   Agradecido de antemano, un gran saludo a todos los que diariamente 
aportan con sus experiencias...


   Atte.,

   Victor Almonacid B
   Los Angeles - Chile





__
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 visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400


Re: [SPAM] COBOL: ¿quien está bloqueando un registro?

2006-11-09 Por tema Hugo Fernando García

Victor Almonacid escribió:

Hola a todos:

   Espero puedan ayudarme, ya que llevo varias horas tratando de 
solucionar el problema planteado y lo mas probable es que mas de 
alguno de Uds. lo tenga implementado.


   Yo trabajo en COBOL 400 y quiero saber qué usuario está 
bloqueando el registro que quiero modificar...


   Si alguien tiene la rutina en RPG que me la envíe completa por 
favor ya que no conozco ese lenguaje, pero tengo el compilador y puedo 
tratar de entenderlo.


   Agradecido de antemano, un gran saludo a todos los que 
diariamente aportan con sus experiencias...


   Atte.,

   Victor Almonacid B
   Los Angeles - Chile





__
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 visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400


Probá con el comando DSPRCDLCK.



__
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 visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400


Re: [SPAM] COBOL: ¿quien está bloqueando un registro?

2006-11-09 Por tema Pedro Pinedo

con este programa, puedes ver los bloqueos
de un fichero.




Yo para ver los bloqueos de un registro, monitorizo los mensajes de error
de un trabajo. El programa CBX007 esta en internet.



0147.00CALLPRC 
PRC(CBX007) PARM(JOB JOBIN MSGOPT MSGKEY +
0148.00   
  MSG MSGID MSGDAT
MSGTIM) 

   
  
 
0154.00 /*   
  
  
*/
0155.00 /*El trabajo 99/QUSER/QZDASOINIT está utilizando
el registro */
0156.00 /*   
  
  
*/
0157.00   IF
COND(MSGID *EQ 'CPF5027') THEN(DO)











H DFTACTGRP(*NO)
ACTGRP(*NEW) OPTION(*ALL)

   D CrtUsrSpcPR   
 ExtPgm('QUSCRTUS')
   D  UsrSpc  
20A  CONST
   D  ExtAttr  
10A  CONST
   D  InitSize  
   10I 0 CONST
   D  InitVal  
1A  CONST
   D  PublicAuth  
  10A  CONST
   D  Text  
 50A  CONST
   D  Replace  
10A  CONST
   D  ErrorCode  
 32766A  options(*varsize)

   D RtvPtrUSPR   
 ExtPgm('QUSPTRUS')
   D  UsrSpc  
20A  CONST
   D  Pointer  
 *

   D LstObjLckPR   
 ExtPgm('QWCLOBJL')
   D  UsrSpc  
20A  const
   D  Format  
 8A  const
   D  Object  
20A  const
   D  ObjType  
10A  const
   D  Member  
10A  const
   D  ErrorCode  
 32766A  options(*varsize)

   D*
   D* API error code data structure
   D*
   D dsEC  DS
   D*
 Bytes
Provided (size of struct)
   D dsECBytesP  
1   4I 0 INZ(256)
   D*
 Bytes
Available (returned by API)
   D dsECBytesA  
5   8I 0 INZ(0)
   D*
 Msg
ID of Error Msg Returned
   D dsECMsgID  
9   15
   D*
 Reserved
   D dsECReserv  16
  16
   D*
 Msg
Data of Error Msg Returned
   D dsECMsgDta  17
 256

   D*
   D* List API generic header data structure
   D*
   D dsLH  DS 
BASED(p_UsrSpc)
   D*
  Filler
   D  dsLHFill1  
  103A
   D*
  Status
(I=Incomplete,C=Complete
   D*
  
   F=Partially Complete)
   D  dsLHStatus  
   1A
   D*
  Filler
   D  dsLHFill2  
   12A
   D*
  Header
Offset
   D  dsLHHdrOff  
  10I 0
   D*
  Header
Size
   D  dsLHHdrSiz  
  10I 0
   D*
  List
Offset
   D  dsLHLstOff  
  10I 0
   D*
  List
Size
   D  dsLHLstSiz  
  10I 0
   D*
  Count
of Entries in List
   D  dsLHEntCnt  
  10I 0
   D*
  Size
of a single entry
   D  dsLHEntSiz  
  10I 0

   D*
   D* List Object Locks API format OBJL0100
   D*
   D dsOL  DS 
   based(p_Entry)
   D*
  Job
Name
   D dsOL_JobName 
   10A
   D*
  Job
User Name
   D dsOL_UserName 
  10A
   D*
  Job
Number
   D dsOL_JobNbr  
   6A
   D*
  Lock
State
   D dsOL_LckState 
  10A
   D*
  Lock
Status
   D dsOL_LckSts  
  10i 0
   D*
  Lock
Type
   D dsOL_LckType 
   10i 0
   D*
  Member
(or *BLANK)
   D dsOL_Member  
  10A
   D*
  1=Shared
File, 0=Not Shared
   D*
  
(or 0=not applicable)
   D dsOL_Share  
   1A
   D*
  Lock
Scope
   D dsOL_LckScope 
   1A
   D*
  Thread
identifier
   D dsOL_ThreadID 
   8A


   D p_UsrSpcS   
*
   D p_Entry S   
*
   D Msg   S 
 50A
   D xS 
 10I 0

   C   *entryplist
   c
 parm 
ObjName 10
   C
 parm 
ObjLib  10
   c
 parm 
ObjType 10
   c
 parm 
Member  10

   c
 eval   *inlr = *on

   c
 if%parms  4
   c
 eval   Msg = 'Usage: objlock NAME LIB TYPE MBR'
   c
 dsply 
Msg
   c
 return
   c
 endif

   C***
   C* Create a user space to store output of
   C* the list object locks API
   C***
   c
 callp   CrtUsrSpc('OBJLOCKS QTEMP': 'USRSPC':
   c
   1: x'00': '*ALL': 'Output
of List ' +
   c
   'Object Locks API': '*YES':
dsEC)
   c
 ifdsECBytesA  0
   c
 eval   Msg = 'QUSCRTUS error ' + dsECMsgID
   c
 dsply 
msg
   c
 return
   c
 endif

   C***
   C* Dump the Object Locks to the user space
   C***
   c
 callp   LstObjLck('OBJLOCKS QTEMP': 'OBJL0100':
   c