Alaska Software Inc. - Problema con XP
Username: Password:
AuthorTopic: Problema con XP
Osvaldo Ramirez Problema con XP
on Wed, 28 Jun 2006 17:38:56 -0600
Estimados ...

No me acuerdo donde, pero ando buscando si primero pongo esto :

append blank
replace .....

skip(0)
dbrunlock()

o

append blank
replace ....
dbrunlock()
skip(0)

Tuve hace tiempo problemas con XP,  pues se quedaba informacion  en la 
memoria y no la escribia al disco duro, y jugue con la instruccino 
commit, pero se volvia lento mi app.

Pense que evitando commit, y poniendo skip(0) forzaba al OS a escribir 
al disco duro.

Saludos
Osvaldo Ramirez
AkelarreRe: Problema con XP
on Thu, 29 Jun 2006 10:20:25 +0200
Primero vaca la cache y luego desbloquea el fichero.

Append Blank
Replace ....
.
.
.
DbCommit()                   o Skip(0)
DbRUnlock()


DbCommit() es ms rpido de COMMIT porque solo escribe la informacin del 
area activa no de todas.

Recuerda deshabilitar mediante el registro de windows el "oportunistic 
Locking" para no tener problemas de corrupcin y prdida de datos.

Saludos


"Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribi en el mensaje
news:46c838a$e43dd5a$44b74@news.alaska-software.com...
> Estimados ...
>
> No me acuerdo donde, pero ando buscando si primero pongo esto :
>
> append blank
> replace .....
>
> skip(0)
> dbrunlock()
>
> o
>
> append blank
> replace ....
> dbrunlock()
> skip(0)
>
> Tuve hace tiempo problemas con XP,  pues se quedaba informacion  en la
> memoria y no la escribia al disco duro, y jugue con la instruccino commit,
> pero se volvia lento mi app.
>
> Pense que evitando commit, y poniendo skip(0) forzaba al OS a escribir al
> disco duro.
>
> Saludos
> Osvaldo Ramirez
Jose ValleRe: Problema con XP
on Thu, 29 Jun 2006 14:30:48 +0200
Recuerdo haber leido en las news que dbcommit() no sirve para nada, que hace 
lo mismo que skip(0) y tarda mas. Lo haba dicho alguien en una reunin de 
usuarios de Holanda.


"Akelarre" <akelarre@hotmail.com> escribi en el mensaje 
news:5b431b29$1f1c81af$44dd1@news.alaska-software.com...
> Primero vaca la cache y luego desbloquea el fichero.
>
> Append Blank
> Replace ....
> .
> .
> .
> DbCommit()                   o Skip(0)
> DbRUnlock()
>
>
> DbCommit() es ms rpido de COMMIT porque solo escribe la informacin del 
> area activa no de todas.
>
> Recuerda deshabilitar mediante el registro de windows el "oportunistic 
> Locking" para no tener problemas de corrupcin y prdida de datos.
>
> Saludos
>
>
> "Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribi en el mensaje
> news:46c838a$e43dd5a$44b74@news.alaska-software.com...
>> Estimados ...
>>
>> No me acuerdo donde, pero ando buscando si primero pongo esto :
>>
>> append blank
>> replace .....
>>
>> skip(0)
>> dbrunlock()
>>
>> o
>>
>> append blank
>> replace ....
>> dbrunlock()
>> skip(0)
>>
>> Tuve hace tiempo problemas con XP,  pues se quedaba informacion  en la
>> memoria y no la escribia al disco duro, y jugue con la instruccino 
>> commit,
>> pero se volvia lento mi app.
>>
>> Pense que evitando commit, y poniendo skip(0) forzaba al OS a escribir al
>> disco duro.
>>
>> Saludos
>> Osvaldo Ramirez
>
>
>
Osvaldo Ramirez Re: Problema con XP
on Thu, 29 Jun 2006 13:57:47 -0600
Hola Jose Valle

Y lo pongo asi :

DbSkip(0)
DBRUnlock()  ?


Curiosamente ayer perdir varios registros y hoy va uno.

saludos
Osvaldo Ramirez

> Recuerdo haber leido en las news que dbcommit() no sirve para nada, que hace 
> lo mismo que skip(0) y tarda mas. Lo había dicho alguien en una reunión de 
> usuarios de Holanda.
> 
> 
> "Akelarre" <akelarre@hotmail.com> escribió en el mensaje 
> news:5b431b29$1f1c81af$44dd1@news.alaska-software.com...
>> Primero vacía la cache y luego desbloquea el fichero.
>>
>> Append Blank
>> Replace ....
>> .
>> .
>> .
>> DbCommit()                   o Skip(0)
>> DbRUnlock()
>>
>>
>> DbCommit() es más rápido de COMMIT porque solo escribe la información del 
>> area activa no de todas.
>>
>> Recuerda deshabilitar mediante el registro de windows el "oportunistic 
>> Locking" para no tener problemas de corrupción y pèrdida de datos.
>>
>> Saludos
>>
>>
>> "Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribió en el mensaje
>> news:46c838a$e43dd5a$44b74@news.alaska-software.com...
>>> Estimados ...
>>>
>>> No me acuerdo donde, pero ando buscando si primero pongo esto :
>>>
>>> append blank
>>> replace .....
>>>
>>> skip(0)
>>> dbrunlock()
>>>
>>> o
>>>
>>> append blank
>>> replace ....
>>> dbrunlock()
>>> skip(0)
>>>
>>> Tuve hace tiempo problemas con XP,  pues se quedaba informacion  en la
>>> memoria y no la escribia al disco duro, y jugue con la instruccino 
>>> commit,
>>> pero se volvia lento mi app.
>>>
>>> Pense que evitando commit, y poniendo skip(0) forzaba al OS a escribir al
>>> disco duro.
>>>
>>> Saludos
>>> Osvaldo Ramirez
>>
>>
> 
>
Osvaldo Ramirez Re: Problema con XP
on Thu, 29 Jun 2006 13:58:18 -0600
Muchas gracias Akelarre

Saludos
Osvaldo Ramirez
Osvaldo Ramirez Re: Problema con XP
on Thu, 29 Jun 2006 14:02:29 -0600
Esta es mi funcion del registro ....
Por favor comentenme si esotoy mal

PROCEDURE ChangeRegistry()
* Begin
   LOCAL cKey , oReg , lRtn := .F.

   cKey := 
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
   oReg := XbpReg():NEW( cKey )
   lRtn := oReg:Status()
   IF ! lRtn
     oReg:Create()
   ENDIF

   * Estos cambios son para el server.
   oReg:SetValue( "CachedOpenLimit"        , 0 )
   oReg:SetValue( "EnableOpLocks"          , 0 )
   oReg:SetValue( "EnableOpLockForceClose" , 1 )

   * Estos son para el cliente
   cKey := 
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"
   oReg := XbpReg():NEW( cKey )
   lRtn := oReg:Status()
   IF ! lRtn
     oReg:Create()
   ENDIF

    * Estos son para el server.
   oReg:SetValue( "EnableOpLocks"          , 0 )
   oReg:SetValue( "EnableOpLockForceClose" , 1 )
   oReg:SetValue( "UseOportunisticLocking" , 0 )
   oReg:SetValue( "UtilizeNtCaching"       , 0 )
   oReg:SetValue( "UseLockReadUnlock"      , 0 )


RETURN
AkelarreRe: Problema con XP
on Thu, 29 Jun 2006 23:18:48 +0200
Para el cliente:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters]
; Disable oplocks
"UseOpportunisticLocking" = dword:00000000
"EnableOpLocks"           = dword:00000000
"EnableOpLockForceClose" = dword:00000001

; Disable file caching - effectively forces a commit back to the server
"UtilizeNtCaching" = dword:00000000

; Unlocks data immediately in response to an unlock request (improves 
performance on W2K)
"UseUnlockBehind"  = dword:00000001

; Allows data to be read even if another station has a lock in place - can 
prevent "deadly embrace"
"UseLockReadUnlock" = dword:00000000

--------------------------------------------------------------------
Para el server:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters]
; Prevent premature workstation disconnection - default is 0000000f (15 
minutes)
"autodisconnect"              =  dword:ffffffff
; This one is for Server 2003 - default is 2 minutes!
"ConnectionNoSessionsTimeout" = dword:ffffffff

; Forces the server to really close a file when instructed
"CachedOpenLimit"= dword:00000000

; The following 2 entries force oplocks off
"EnableOpLockForceClose" = dword:00000001
"EnableOpLocks"          = dword:00000000


; This one is for Win2K and later.
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MRXSmb\Parameters]
"OplocksDisabled" = dword:00000001


    Saludos


"Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribi en el mensaje 
news:5e8f084e$1a2a8d86$630a0@news.alaska-software.com...
>
> Esta es mi funcion del registro ....
> Por favor comentenme si esotoy mal
>
> PROCEDURE ChangeRegistry()
> * Begin
>   LOCAL cKey , oReg , lRtn := .F.
>
>   cKey := 
> "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
>   oReg := XbpReg():NEW( cKey )
>   lRtn := oReg:Status()
>   IF ! lRtn
>     oReg:Create()
>   ENDIF
>
>   * Estos cambios son para el server.
>   oReg:SetValue( "CachedOpenLimit"        , 0 )
>   oReg:SetValue( "EnableOpLocks"          , 0 )
>   oReg:SetValue( "EnableOpLockForceClose" , 1 )
>
>   * Estos son para el cliente
>   cKey := 
> "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"
>   oReg := XbpReg():NEW( cKey )
>   lRtn := oReg:Status()
>   IF ! lRtn
>     oReg:Create()
>   ENDIF
>
>    * Estos son para el server.
>   oReg:SetValue( "EnableOpLocks"          , 0 )
>   oReg:SetValue( "EnableOpLockForceClose" , 1 )
>   oReg:SetValue( "UseOportunisticLocking" , 0 )
>   oReg:SetValue( "UtilizeNtCaching"       , 0 )
>   oReg:SetValue( "UseLockReadUnlock"      , 0 )
>
>
> RETURN
Osvaldo Ramirez Re: Problema con XP
on Thu, 29 Jun 2006 16:52:40 -0600
Mi siguiente Configuracion es asi


1.- Windows 98 SE,  CAJA # 1, la cual al iniciar mi POS crea indicies y 
y actualiza informacion si la hay.

2.- Windows XP SP2  CAJA # 2, Inicia solamente el POS, ya que como es 
caja # 2, depente de la caja 1 y solamente ba al folder compartido y ve 
los datos.

3.- Windows 98 SE   CAJA # 3, al igual que CAJA2, ejecuta localmente el 
POS y solamente va y abre los archivos que estan en la caja 1

Problema:

Cada empleado llega y checa su hora de entrada en el punto de venta ( 
Irrelevante cual caja ) y queda registrado que esta adentro.

Si el empleado cobra con su clave cualquir medicamento, lo hace y el el 
empleado no ha checado su ENTRADA, le sale una pantalla que no ha 
checado su entrada.

Todo bien, pero despues de 2 ventas en la caja # 2, al momento de vender 
el empleado, el POS le dice que no ha checado su entrada.

No tengo problemas si todos son Windows 98, pero ahora como quiero 
provar y lograr cambiar a Windows XP, me enfreto con esto.
El codigo de mi programa es el mismo.

Haber si alguien tiene algo.

Saludos
Osvaldo Ramirez






Akelarre wrote:
> Para el cliente:
> 
> [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters]
> ; Disable oplocks
> "UseOpportunisticLocking" = dword:00000000
> "EnableOpLocks"           = dword:00000000
> "EnableOpLockForceClose" = dword:00000001
> 
> ; Disable file caching - effectively forces a commit back to the server
> "UtilizeNtCaching" = dword:00000000
> 
> ; Unlocks data immediately in response to an unlock request (improves 
> performance on W2K)
> "UseUnlockBehind"  = dword:00000001
> 
> ; Allows data to be read even if another station has a lock in place - can 
> prevent "deadly embrace"
> "UseLockReadUnlock" = dword:00000000
> 
> --------------------------------------------------------------------
> Para el server:
> 
> [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters]
> ; Prevent premature workstation disconnection - default is 0000000f (15 
> minutes)
> "autodisconnect"              =  dword:ffffffff
> ; This one is for Server 2003 - default is 2 minutes!
> "ConnectionNoSessionsTimeout" = dword:ffffffff
> 
> ; Forces the server to really close a file when instructed
> "CachedOpenLimit"= dword:00000000
> 
> ; The following 2 entries force oplocks off
> "EnableOpLockForceClose" = dword:00000001
> "EnableOpLocks"          = dword:00000000
> 
> 
> ; This one is for Win2K and later.
> [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MRXSmb\Parameters]
> "OplocksDisabled" = dword:00000001
> 
> 
>     Saludos
> 
> 
> "Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribió en el mensaje 
> news:5e8f084e$1a2a8d86$630a0@news.alaska-software.com...
>> Esta es mi funcion del registro ....
>> Por favor comentenme si esotoy mal
>>
>> PROCEDURE ChangeRegistry()
>> * Begin
>>   LOCAL cKey , oReg , lRtn := .F.
>>
>>   cKey := 
>> "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
>>   oReg := XbpReg():NEW( cKey )
>>   lRtn := oReg:Status()
>>   IF ! lRtn
>>     oReg:Create()
>>   ENDIF
>>
>>   * Estos cambios son para el server.
>>   oReg:SetValue( "CachedOpenLimit"        , 0 )
>>   oReg:SetValue( "EnableOpLocks"          , 0 )
>>   oReg:SetValue( "EnableOpLockForceClose" , 1 )
>>
>>   * Estos son para el cliente
>>   cKey := 
>> "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"
>>   oReg := XbpReg():NEW( cKey )
>>   lRtn := oReg:Status()
>>   IF ! lRtn
>>     oReg:Create()
>>   ENDIF
>>
>>    * Estos son para el server.
>>   oReg:SetValue( "EnableOpLocks"          , 0 )
>>   oReg:SetValue( "EnableOpLockForceClose" , 1 )
>>   oReg:SetValue( "UseOportunisticLocking" , 0 )
>>   oReg:SetValue( "UtilizeNtCaching"       , 0 )
>>   oReg:SetValue( "UseLockReadUnlock"      , 0 )
>>
>>
>> RETURN 
> 
>
AkelarreRe: Problema con XP
on Fri, 30 Jun 2006 02:43:02 +0200
La mquina que acta como servidor es la 1?

No puedes (bueno, no debes) poner como servidor una mquina con W9x si 
alguno de los clientes tiene XP, provoca prdidas de datos y corrupciones de 
ndices hagas lo que hagas.
Sin embargo se puede poner como servidor una mquina con XP y clientes con 
W9x o XP sin problemas siempre que se haya tocado el registro para quitar el 
"opportunistic locking" tanto en el cliente como en el servidor.

Saludos

"Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribi en el mensaje 
news:10ee2597$1275bec0$63042@news.alaska-software.com...
>
> Mi siguiente Configuracion es asi
>
>
> 1.- Windows 98 SE,  CAJA # 1, la cual al iniciar mi POS crea indicies y y 
> actualiza informacion si la hay.
>
> 2.- Windows XP SP2  CAJA # 2, Inicia solamente el POS, ya que como es caja 
> # 2, depente de la caja 1 y solamente ba al folder compartido y ve los 
> datos.
>
> 3.- Windows 98 SE   CAJA # 3, al igual que CAJA2, ejecuta localmente el 
> POS y solamente va y abre los archivos que estan en la caja 1
>
> Problema:
>
> Cada empleado llega y checa su hora de entrada en el punto de venta ( 
> Irrelevante cual caja ) y queda registrado que esta adentro.
>
> Si el empleado cobra con su clave cualquir medicamento, lo hace y el el 
> empleado no ha checado su ENTRADA, le sale una pantalla que no ha checado 
> su entrada.
>
> Todo bien, pero despues de 2 ventas en la caja # 2, al momento de vender 
> el empleado, el POS le dice que no ha checado su entrada.
>
> No tengo problemas si todos son Windows 98, pero ahora como quiero provar 
> y lograr cambiar a Windows XP, me enfreto con esto.
> El codigo de mi programa es el mismo.
>
> Haber si alguien tiene algo.
Osvaldo Ramirez Re: Problema con XP
on Thu, 29 Jun 2006 19:15:43 -0600
Gracias Akelarre

> ¿La máquina que actúa como servidor es la 1?

Si


> No puedes (bueno, no debes) poner como servidor una máquina con W9x si 
> alguno de los clientes tiene XP, provoca pérdidas de datos y corrupciones de 
> índices hagas lo que hagas.

Pq ?

Saludos
Osvaldo Ramirez



> Sin embargo se puede poner como servidor una máquina con XP y clientes con 
> W9x o XP sin problemas siempre que se haya tocado el registro para quitar el 
> "opportunistic locking" tanto en el cliente como en el servidor.
> 
> Saludos
> 
> "Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribió en el mensaje 
> news:10ee2597$1275bec0$63042@news.alaska-software.com...
>> Mi siguiente Configuracion es asi
>>
>>
>> 1.- Windows 98 SE,  CAJA # 1, la cual al iniciar mi POS crea indicies y y 
>> actualiza informacion si la hay.
>>
>> 2.- Windows XP SP2  CAJA # 2, Inicia solamente el POS, ya que como es caja 
>> # 2, depente de la caja 1 y solamente ba al folder compartido y ve los 
>> datos.
>>
>> 3.- Windows 98 SE   CAJA # 3, al igual que CAJA2, ejecuta localmente el 
>> POS y solamente va y abre los archivos que estan en la caja 1
>>
>> Problema:
>>
>> Cada empleado llega y checa su hora de entrada en el punto de venta ( 
>> Irrelevante cual caja ) y queda registrado que esta adentro.
>>
>> Si el empleado cobra con su clave cualquir medicamento, lo hace y el el 
>> empleado no ha checado su ENTRADA, le sale una pantalla que no ha checado 
>> su entrada.
>>
>> Todo bien, pero despues de 2 ventas en la caja # 2, al momento de vender 
>> el empleado, el POS le dice que no ha checado su entrada.
>>
>> No tengo problemas si todos son Windows 98, pero ahora como quiero provar 
>> y lograr cambiar a Windows XP, me enfreto con esto.
>> El codigo de mi programa es el mismo.
>>
>> Haber si alguien tiene algo.
> 
> 
> 
>
AkelarreRe: Problema con XP
on Fri, 30 Jun 2006 03:21:39 +0200
>> No puedes (bueno, no debes) poner como servidor una mquina con W9x si 
>> alguno de los clientes tiene XP, provoca prdidas de datos y corrupciones 
>> de ndices hagas lo que hagas.
>
> Pq ?
>


Pues realmente no lo se, pero lo he ledo en varios posts y lo he podido 
comprobar empricamente en varias ocasiones.
Cambies lo que cambies del registro, aadas skip(0) o Commit... si el 
servidor es W9x y el cliente XP... problemas.
Le das la vuelta y pones de server el XP y de cliente el W9x  y va como la 
seda.

Saludos
Jose ValleRe: Problema con XP
on Fri, 30 Jun 2006 14:25:41 +0200
A mi tambin me dijeron que no pusiera un servidor w98 y un cliente xp. 
Tampoco se por que.



"Akelarre" <akelarre@hotmail.com> escribi en el mensaje 
news:2cb5937a$719b9d62$67713@news.alaska-software.com...
>>> No puedes (bueno, no debes) poner como servidor una mquina con W9x si 
>>> alguno de los clientes tiene XP, provoca prdidas de datos y 
>>> corrupciones de ndices hagas lo que hagas.
>>
>> Pq ?
>>
>
>
> Pues realmente no lo se, pero lo he ledo en varios posts y lo he podido 
> comprobar empricamente en varias ocasiones.
> Cambies lo que cambies del registro, aadas skip(0) o Commit... si el 
> servidor es W9x y el cliente XP... problemas.
> Le das la vuelta y pones de server el XP y de cliente el W9x  y va como la 
> seda.
>
> Saludos
>
Jose ValleRe: Problema con XP
on Fri, 30 Jun 2006 15:19:45 +0200
Hola Osvaldo:

Akelarre hace mas cambios en el registro,  entre ellos

"ConnectionNoSessionsTimeout" = dword:ffffffff

Como lo pondras tu en la funcion de Thomas?

oReg:SetValue( "ConnectionNoSessionsTimeout"        , ?)

No acabo de entender que en un tema tan importante est tan poco claro lo 
que hay que hacer!!!





"Osvaldo Ramirez" <ramirezosvaldo@yahoo.com> escribi en el mensaje 
news:5e8f084e$1a2a8d86$630a0@news.alaska-software.com...
>
> Esta es mi funcion del registro ....
> Por favor comentenme si esotoy mal
>
> PROCEDURE ChangeRegistry()
> * Begin
>   LOCAL cKey , oReg , lRtn := .F.
>
>   cKey := 
> "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
>   oReg := XbpReg():NEW( cKey )
>   lRtn := oReg:Status()
>   IF ! lRtn
>     oReg:Create()
>   ENDIF
>
>   * Estos cambios son para el server.
>   oReg:SetValue( "CachedOpenLimit"        , 0 )
>   oReg:SetValue( "EnableOpLocks"          , 0 )
>   oReg:SetValue( "EnableOpLockForceClose" , 1 )
>
>   * Estos son para el cliente
>   cKey := 
> "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"
>   oReg := XbpReg():NEW( cKey )
>   lRtn := oReg:Status()
>   IF ! lRtn
>     oReg:Create()
>   ENDIF
>
>    * Estos son para el server.
>   oReg:SetValue( "EnableOpLocks"          , 0 )
>   oReg:SetValue( "EnableOpLockForceClose" , 1 )
>   oReg:SetValue( "UseOportunisticLocking" , 0 )
>   oReg:SetValue( "UtilizeNtCaching"       , 0 )
>   oReg:SetValue( "UseLockReadUnlock"      , 0 )
>
>
> RETURN
Osvaldo Ramirez Re: Problema con XP
on Thu, 29 Jun 2006 18:02:56 -0600
Muchas gracias Jovenes Ilustres

Le voy a preguntar a Thomas Braun, como poner un valor en exadecimal.

Saludos
Osvaldo Ramirez