[SPAM] COBOL: ¿quien está bloqueando un registro?
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?
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?
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