Alaska Software Inc. - [INFO] Opportunistic Blocking
Username: Password:
AuthorTopic: [INFO] Opportunistic Blocking
Jos Luis Otermin [Alaska Software][INFO] Opportunistic Blocking
on Thu, 30 Nov 2006 12:51:36 -0300
Estimados Colegas:

En otros foros de discusin se ha planteado el inconveniente de lecturas 
errneas en redes Windows.
Respecto al Bloqueo Oportunista, sugiero la lectura de los siguientes 
textos:
http://support.microsoft.com/kb/129202
http://support.microsoft.com/kb/296264

En Ingls:
http://www.dataaccess.com/whitepapers/opportunlockingreadcaching.html
Una explicacin detallada:
http://www.superbase.com/services_tech_support_oplocks.htm
http://www.plmconsulting.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic;f=21;t=000048

En ellos se lee (en sntesis) que el Bloqueo Oportunista tiene varios 
parmetros para su control y ajuste.
Existe un grupo de parmetros en el Registro del Servidor y otro tanto en el 
Registro de la Terminal.

Como puede apreciarse, existe una variada gama de escenarios para la 
configuracin del ambiente de Bloqueo Oportunista.

Es una costumbre arraigada el deshabilitar el bloqueo interferido por 
terceros (Bloqueo Oportunista) y hasta ahora parece ser la solucin que ms 
ha satisfecho a todos.

A quienes se hacen la pregunta "Para qu existe ese Bloqueo Oportunista?"
les dir que tiene sentido si lo miramos desde el punto de vista de 
Cliente-Servidor con grandes lotes de datos y no desde el punto nuestro, 
orientado a registro (por lo tanto pequeos trenes de datos).

NOTA:
Para todos aquellos que vayan a modificar el registro, se sugiere hacer
copia de seguridad de la rama afectada.
Con RegEdit: Archivo   Exportar  (.) Rama Seleccionada

Para quienes deseen probar la red, pueden descargar un programa Clipper que 
simula un ambiente pesado.
http://www.drouillard.ca/Tips&Tricks/Samba/Oplocks.htm   (final de pgina)

Saludos
Jos Luis Otermin
Soporte Tcnico
--------------------------------------------------------------------
Alaska Software Inc.
Foros de Usuarios: news://news.alaska-software.com
Foros de Usuarios Web: http://news.alaska-software.com
Pgina Web: http://www.alaska-software.com
Base de Conocimientos en la Web: http://www.alaska-software.com/kbase.shtm
Oficina en Europa: Fax: +49 (0) 61 96 - 77 99 99 23
Oficina en EEUU: Fax: +1 (646) 218 1281
-------------------------------------------------------
Jose ValleRe: [INFO] Opportunistic Blocking
on Fri, 01 Dec 2006 01:42:40 +0100
Hola Jose Luis,

Hace un tiempo copie de no se donde este prg que utiliza la librera de 
Thomas Braun para modificar el registro.

Yo actualizo todas las claves en cualquier maquina, sea cliente o servidor.



FUNC CompruebaRegistro()
************************ 30/06/2006 15:37
   LOCAL oReg := XbpReg():NEW( 
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" 
 )

   LOCAL nActivarOploks    := 0
   LOCAL nDesActivarOploks := 1
   LOCAL nCached           := 0
   LOCAL lActu             := .F.
   LOCAL cResp

   If !oReg:Status()
      oReg:Create()

   ELSE

      nDesactivarOplocks := oReg:GetValue( "OplocksDisabled" )
      nActivarOplocks    := oReg:GetValue( "EnableOplocks" )
      nCached            := oReg:GetValue( "CachedOpenLimit" )

   EndIF

   DBPAN("BLOQUEO OPORTUNISTA")

   @ 5,10 SAY Os(OS_PRODUCT)                     == "WIN2K" .OR. 
Os(OS_PRODUCT) == "WINXP"

   @ 7,10 SAY iif(nActivarOplocks=1 , "activados Oplocks", "Desactivados 
Oplocks")

   @ 9,10 SAY "N de Ficheros abiertos en cache (CachedOpenLimit)" + 
ntc(nCached)


   IF Alert(" Desactivar Oplocks y Ficheros abiertos en cache", {"Si","No"}) 
= 1

 CLIENTE

      oReg := XbpReg():NEW( 
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" 
 )
      If !oReg:Status()
         oReg:Create()
      ENDIF

    oReg:SetValue( "CachedOpenLimit"        , 0 )
      oReg:SetValue( "EnableOpLockForceClose" , 1 )
    oReg:SetValue( "EnableOplocks"          , 0 )
    oReg:SetValue( "OplocksDisabled"        , 1 )
      oReg:SetValue( "UseLockReadUnlock"      , 0 )  Allows data to be 
read even if another station has a lock in place - can prevent "deadly 
embrace"
    oReg:SetValue( "UseUnlockBehind"        , 1 )  Unlocks data 
immediately in response to an unlock request (improves performance on W2K)
      oReg:SetValue( "UseOportunisticLocking" , 0 )
      oReg:SetValue( "UtilizeNtCaching"       , 0 )  Disable file 
caching - effectively forces a commit back to the server

 SERVIDOR

      oReg := XbpReg():NEW( 
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" 
 )

      If !oReg:Status()
         oReg:Create()
      ENDIF

    //oReg:SetValue( "autodisconnect"              ,ffffffff  )  Prevent 
premature workstation disconnection - default is 0000000f (15 minutes)
    //oReg:SetValue( "ConnectionNoSessionsTimeout" ,ffffffff  )  This one 
is for Server 2003 - default is 2 minutes!
    oReg:SetValue( "CachedOpenLimit"             , 0 )        //Forces the 
server to really close a file when instructed
      oReg:SetValue( "ConnectionNoSessionsTimeout" , 1 )         This one 
is for Server 2003 - default is 2 minutes!
      oReg:SetValue( "EnableOpLockForceClose"      , 1 )
    oReg:SetValue( "EnableOplocks"               , 0 )
    oReg:SetValue( "OplocksDisabled"             , 1 )

      oReg := XbpReg():NEW( 
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRXSmb\Parameters" )

      If !oReg:Status()
         oReg:Create()
      ENDIF

      oReg:SetValue( "OplocksDisabled"              , 1 )  This one is for 
Win2K and later.


   ENDIF


   RETURN .T.