domingo, enero 18, 2015

Nueva versión v2.5.7 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.41)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.7 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

Nueva versión v1.19.41 de FoxBin2Prg (arreglos)

FoxBin2Prg es un programa pensado para sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).

Está liberada la versión v1.19.41 de FoxBin2Prg con los siguientes cambios:

  • Bug Fix db2: Detección errónea de tabla inválida cuando el tamaño es inferior a 328 bytes. Límite mínimo cambiado a 65 bytes.
    • En una versión anterior se agregó una validación extra para detectar tablas inválidas, pero el límite fue un poco alto (328 bytes), siendo que se puede tener una tabla todavía más chica con un campo char(1) y sin registros que solo ocupe 65 bytes. Se ha corregido ese límite para que no de falsos positivos.
  • Bug Fix vcx/scx: Detección errónea de estructuras PROCEDURE/ENDPROC cuando se usan como parámetros en LPARAMETERS (Ryan Harris)
    • Cuando se usan nombres de estructuras, como PROCEDURE/ENDOC,etc, (que son palabras reservadas) como nombres de parámetro en nueva línea (o sea, el LPARAMETERS en una línea y un parámetro llamado, por ej., "procedure" en la siguiente) FoxBin2Prg lo detectaba como una estructura y no como un parámetro. En esta versión se tiene en cuenta si la línea anterior termina con punto y coma ";" para detectar qué es.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 Saludos!

domingo, enero 11, 2015

Nueva versión v2.5.6 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.40)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.6 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

Nueva versión v1.19.40 de FoxBin2Prg (arreglos y mejoras)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.40 de FoxBin2Prg con los siguientes cambios:

  • Mejora frx/lbx: Limpiar ASCII 0 del campo expression de Dataenvironment, Cursores y Relaciones.
    • Aparentemente en algunos campos de expresión FoxPro guarda una cadena larga de chr(0). Luego de hacer algunas pruebas parece que esto es algo innecesario y que los reportes funcionan igual sin la misma, además de mejorar el soporte para algunas herramientas SCM o DVCS donde cualquier caracter de control provoca que el archivo se asuma como binario y no se pueda mostrar como texto.
  • Bug fix frx/lbx: Cuando se usa el entorno de datos, solo se está guardando un cursor, y si hay más se pierden.
    • Este es un bug antiguo. Cuando se usa un reporte con entorno de datos y el mismo tiene más de una tabla, solo la primera tabla es guardada, perdiéndose el resto. Ahora queda solucionado.
  • Agregada nueva configuración "ShowProgressbar:2" para activar la barra de progreso solamente cuando se procesan directorios y desactivarla cuando se procesan archivos sueltos (Jim Nelson)
    • Se quita la opción de configuración DontShowProgress, se agrega la nueva ShowProgressBar y se agrega el nuevo valor "2" (antes solo permitía activar o desactivar) para permitir activar la barra de progreso solamente cuando se procesan múltiples-archivos y desactivarla cuando se procesan archivos individuales.
  • Bug fix dbf: [Error 12, variable "tcOutputFile" is not found] cuando DBF_Conversion_Support=4 y el archivo de salida es igual al generado (Mike Potjer)
  • Mejora scx/vcx/sc2/vc2: Detección de nombres de objeto duplicados para notificar casos de corrupción.
    •  Se agrega una nueva medida de detección de corrupción de archivos vcx/scx, donde se detectan objectos duplicados con el mismo nombre en el mismo contenedor (por ejemplo, 2 botones "Form1.Command1"). Esto no puede ocurrir cuando se usa el IDE de FoxPro, ya que no permite repetir los nombres de objeto (por eso los numera 1,2,3,etc), pero puede ocurrir cuando se modifica la clase por otros medios no-estándar manuales o con programas externos. Si se detectan nombres duplicados, se reportan los errores detectados y no se sobreescribe el archivo destino.
  • Arreglo para "Error 2183: Operation requires that SET MULTILOCKS is set to ON" en algunas conversiones de DBF
    • Este error puede ocurrir al convertir algunos DBF a texto que pertenezcan a un DBC y que tengan un campo autoincremental. Ahora queda solucionado.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 Saludos!

jueves, enero 01, 2015

Nueva versión v2.5.5 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.39)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.5 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:

  • Actualizada la versión de FoxBin2Prg (solo el EXE) a la versión v1.19.39
  • Actualizados los scripts vbs para mostrar los errores del proceso a pantalla completa




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

Nueva versión v1.19.39 de FoxBin2Prg (arreglos y mejoras)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.39 de FoxBin2Prg con los siguientes cambios:

  • Bug fix vbs: Los scripts vbs no muestren los errores del proceso de FoxBin2Prg.
    • Por todos los cambios y mejoras de las últimas 2 versiones, hubo cambios en el manejo de los LOGs que afectaron a los scripts. Estos ahora vuelven a mostrar los errores correctamente.
  • Nuevo: Cuando se usan las claves BIN2PRG o PRG2BIN permitir procesar un archivo solo (Mike Potjer)
    • BIN2PRG y PRG2BIN son palabras clave nuevas para la línea de comandos, que permiten usar FoxBin2Prg sin necesitar más de los scripts. Originalmente estaban pensadas para procesar directorios, pero también permiten procesar archivos individuales. Su uso como línea de comandos (y dentro de accesos directos) es: FoxBin2Prg.exe "BIN2PRG" <archivo|directorio>
  • Nuevo: Agregar la clave SHOWMSG y dejar INTERACTIVE para un diálogo interactivo (Mike Potjer)
    • SHOWMSG es una palabra clave nueva, que sirve para mostrar el mensaje de estado al terminar el proceso de archivos, lo que permite reemplazar los scripts vbs por el FoxBin2Prg.exe con parámetros adicionales. Su uso como línea de comandos (y dentro de accesos directos) es: FoxBin2Prg.exe "SHOWMSG" <archivo|directorio>
  • Nuevo: Cuando se procesa un directorio con foxbin2prg.exe solo y la clave INTERACTIVE, mostrar un diálogo para preguntar qué procesar (Mike Potjer)
    • En la versión anterior el uso de la palabra clave INTERACTIVE no estaba muy claro y se prestaba a confusión. Ahora INTERACTIVE se usa solamente con FoxBin2Prg para poder procesar tanto archivos individuales, como viene siendo hasta ahora , como también directorios, para los que preguntará qué tipo de conversión se desea hacer, lo que permite reemplazar los scripts vbs por el FoxBin2Prg.exe con parámetros adicionales. Su uso como línea de comandos (y dentro de accesos directos) es: FoxBin2Prg.exe "INTERACTIVE" <archivo|directorio>
  • Bug fix dc2: Los datos de DisplayClass y DisplayClassLibrary tenían el valor de "Default" en vez del propio (Christopher Kurth/Ryan Harris)
    • Al generar la información de las vistas de una base de datos, las propiedades DisplayClass y DisplayClassLibrary tenían el valor de la propiedad "Default" en vez del valor correcto. Christopher Kurth y Ryan Harris han pasado el arreglo de este bug antiguo.


Notas:
Algo interesante en esta versión es que se han agregado palabras clave para la llamada de línea de comandos de FoxBin2Prg que permiten no requerir más de los scripts vbs que se usaban para poder procesar directorios.
Se puede crear 3 accesos directos de FoxBin2Prg.exe y moverlos a la carpeta "SendTo" de su perfil de usuario Windows, para poder "enviar" el archivo elegido (pjx,pj2,etc) a la opción seleccionada, y así hacer conversiones al vuelo, luego puede renombrar y modificar esos accesos directos como sigue (asegúrese de que puede ver las extensiones del sistema):

Nombre------------------------  Click-Derecho/Propiedades/destino----------
FoxBin2Prg - Binary2Text.lnk    <ruta>\foxbin2prg.exe "BIN2PRG-SHOWMSG"
FoxBin2Prg - Text2Binary.lnk    <ruta>\foxbin2prg.exe "PRG2BIN-SHOWMSG"
FoxBin2Prg.lnk                  <ruta>\foxbin2prg.exe "INTERACTIVE-SHOWMSG"

La última opción incluso puede sustituir a las otras dos, ya que al procesar un directorio preguntará qué tipo de conversión se desea realizar, lo que permite realizar todas las operaciones posibles con un solo acceso directo.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 Saludos!

domingo, diciembre 14, 2014

Whitepaper: Cacheo de lectura y bloqueo oportunista en redes Microsoft Windows

Traducción del artículo "Opportunistic Locking and Read Caching on Microsoft Windows Networks", de Dennis Piccioni. Última edición: septiembre 6, 2013


N.del T.: Aunque no se menciona a Visual FoxPro, se menciona un sistema de base de datos similar (Visual DataFlex), por lo que aplican cada uno de los problemas y soluciones.


Nota 2: El cacheo es un almacenamiento temporal en memoria caché (RAM).



Resumen


Las redes Windows configuradas inapropiadamente puede conducir a la corrupción en los datos en cualquier sistema de archivos de base de datos, incluyendo la base de datos (DataFlex) embebida. Dos comportamientos de red de Windows, el bloqueo oportunista (en servidores Windows) y el cacheo de lectura (en clientes Windows) son fuentes de posible corrupción.

Se proporciona este documento para los clientes de Data Access Worldwide (DAW) para discutir estos comportamientos, sus efectos y qué se puede hacer para reducir al mínimo las posibilidades de corrupción de datos en las redes de Windows cuando se ejecuta Visual DataFlex (VDF) y/o aplicaciones DataFlex, y centralizar la información en un solo lugar.
 
La información contenida en este documento es una compilación de la última información disponible sobre estos temas desde Microsoft, nuestros propios informes de pruebas en la empresa y los clientes. Estamos tratando de combinar la escasa información proporcionada mi Microsoft sobre estos temas en un solo lugar. Por favor revisar este documento de vez en cuando para comprobar la información actualizada. La fecha corregida por último en la parte superior del papel reflejará cuando se hicieron las últimas ediciones.
 
La información contenida en este documento sólo se ocupa de los sistemas operativos que actualmente apoyamos. Usted puede ver información acerca de productos y entornos admitidos en la lista de productos soportados por Data Access Worldwide .

 

Contenido

  • ¿Qué es el bloqueo oportunista?
  • ¿Qué es el Cacheo de Lectura?
  • ¿Qué son SMB2 y SMB3?
  • Recomendaciones de Data Access Worldwide
  • ¿Qué sistemas operativos están afectados?
  • Qué Entornos no están afectados?
  • Haciendo Cambios en el Registro de Windows
  • Desactivando Oplocks en PC Clientes Windows
  • Desactivando Oplocks en Servidores Windows
  • Desactivando Oplocks en SMB2 y SMB3
  • ¿Las prácticas de codificación afectan a estas cuestiones?
  • Corrupción de datos Persistente
  • Términos
  • Recursos
 

¿Qué es el bloqueo oportunista?


El bloqueo oportunista (oplocks) es un mecanismo específico para Windows para bases de datos cliente/servidor para permitir que varios procesos bloqueen el mismo archivo mientras permite el almacenamiento de datos local (cliente) en caché para mejorar el rendimiento sobre redes Windows.  

Desafortunadamente, la configuración predeterminada del mecanismo oplocks que mejora el rendimiento de un tipo de base de datos (cliente/servidor) también presenta problemas de integridad de datos para otros tipos de bases de datos (sistema de archivos/ISAM ).

La documentación de Microsoft indica que "un bloqueo oportunista (también llamado oplock) es un bloqueo puesto por un cliente en un archivo que reside en un servidor. En la mayoría de los casos, un cliente solicita un oplock así puede almacenar en caché los datos localmente, lo que reduce el tráfico de red y la mejora de tiempo de respuesta aparente. Los Oplocks son utilizados por los redirectores de red en los clientes con servidores remotos, así como por las aplicaciones de cliente en servidores locales" y "los Oplocks son solicitudes del cliente al servidor. Desde el punto de vista del cliente, son oportunistas. En otras palabras, el servidor garantiza dichos bloqueos cuando otros factores hacen esos bloqueos posibles".

Puedes leer más sobre oplocks en la documentación de Microsoft. Por favor vea la Recursos sección para obtener más información.


 

¿Qué es el Cacheo de Lectura?


El cacheo de lectura, a veces conocido como lectura anticipada en caché, es una característica de bloqueos oportunistas. Es una técnica utilizada para acelerar el acceso de red a los archivos de datos. Se trata de cachear datos en los clientes en lugar de en los servidores cuando sea posible.

El efecto del cacheo local es que permite que múltiples operaciones de escritura en la misma región de un archivo que se combinan en una sola operación de escritura a través de la red. El cacheo local reduce el tráfico de red, ya que los datos se escriben una vez. Dicho cacheo mejora el tiempo de respuesta aparente de aplicaciones porque las aplicaciones no esperan a que los datos se envíen a través de la red al servidor.
 
Los problemas con el cacheo de lectura por lo general se producen si algo inesperado sucede, como un cuelgue de la estación de trabajo, donde los datos no se flushean debidamente desde la estación de trabajo, lo que puede llevar a corrupción en los datos.

La documentación de Microsoft señala que «En condiciones extremas, algunas aplicaciones de bases de datos multiusuario que utilizan un almacén de datos común a través de una conexión de red en un servidor de archivos, pueden experimentar problemas de integridad transaccional o la corrupción de los archivos y/o índices de base de datos almacenados en el servidor. Normalmente, esto se aplica a las aplicaciones de bases de datos multiusuario "estilo ISAM" u "orientadas a registros", y no a sistemas relacionales cliente/servidor como SQL Server» y que «un peligro del cacheo local es que los datos escritos sólo tienen tanta integridad como el propio cliente, en tanto que los datos se cachean en el cliente. En general, los datos cacheados localmente se deben flushear al servidor lo antes posible.»
 
Puedes leer más sobre el almacenamiento en caché leer en la documentación de Microsoft.


 

¿Qué son SMB2 y SMB3?


SMB2 y SMB3 son la segunda y tercera generación, respectivamente, de las comunicaciones de bloque de mensajes de servidor (SMB) en redes Windows.

SMB2 se introdujo en Windows Vista, 7 y Windows Server 2008 para permitir una comunicación más rápida entre los equipos que ejecutan Windows Vista, 7 y Windows Server 2008. SMB3 se introdujo en Windows 8 y Server 2012.

Las versiones anteriores de Windows (Windows XP, Server 2003 y anteriores) utilizaban SMB1, también llamado SMB "tradicional". SMB1 aún se soporta en las versiones actuales de Windows (Vista, 7, 8, Server 2008, Server 2012) para la compatibilidad con versiones anteriores.


 

Recomendaciones de Data Access Worldwide


La base de datos embebida (DataFlex) es una base de datos ISAM y por lo tanto susceptibles a los efectos de la configuración predeterminada de Windows oplocks. Usar la base de datos embebida en las redes de Windows sin desactivar oplocks no se recomienda ni se soporta y tiene una alta probabilidad de corrupción de datos.
 
La mejor integridad de los datos, seguridad y rendimiento está disponible mediante el uso de una base de datos cliente/servidor, como IBM DB2, Microsoft SQL Server o Pervasive.SQL con sus aplicaciones de Visual DataFlex y DataFlex. Data Access Worldwide tiene drivers directos (Kits de Conectividad) disponibles para IBM DB2 , Microsoft SQL Server y Pervasive.SQL , así como un kit de conectividad ODBC para el acceso a las bases de datos compatibles con ODBC. Todos estos controladores se cargan en tiempo de ejecución y no requieren cambios de codificación para utilizar con las aplicaciones existentes VDF, DataFlex o aplicaciones web del servidor.
 
Se puede lograr una operación confiable de base de datos en redes de Windows utilizando la base de datos embebida, siempre que la red está configurada correctamente. Puede utilizar la información en este documento para configurar los parámetros de oplocks de su red de Windows. Una desventaja de utilizar este método son los problemas de mantenimiento: se debe asegurar continuamente de que todos y cada uno de los servidores y clientes que utilicen una aplicación que acceda a la base de datos embebida, tengan desactivado oplocks y que siempre se mantengan en ese estado.
 
Un método para asegurar que oplocks está desactivado en los PC cliente es agregar código para aplicaciones que compruebe esos ajustes al inicio de la aplicación. La gente de VDF-Guidance.com ha creado un proyecto de código abierto llamado regcheck para este propósito.
 
Desactivar Oplocks puede tener un impacto en el rendimiento de las redes de Windows.
 
Los Oplocks no se aplican a las bases de datos cliente-servidor. DAW no hace ninguna recomendación específica sobre oplocks si utiliza una base de datos cliente-servidor y no hay tablas de base embebidos.
 
Este artículo le dirá cómo deshabilitar los bloqueos oportunistas, pero debido a las razones expuestas anteriormente Data Access Worldwide recomienda el uso de una base de datos cliente-servidor para las aplicaciones multi-usuario DataFlex en redes Windows.


 

¿Qué sistemas operativos están afectados?


Todos los equipos que ejecutan sistemas operativos Windows que hospeden o accesen tablas de bases de datos embebidas accedidas por otras PCs con Windows necesita tener oplocks dasactivado con el fin de minimizar las posibilidades de corrupción de base de datos.
 
Los Oplocks se pueden desactivar en uno (o ambos) de los siguientes:
  • el lado del cliente (un PC con Windows que tiene acceso a una tabla de base de datos embebida alojado en otro PC)
  • el lado del servidor (un PC con Windows que aloja una mesa de base de datos embebida que se accede desde otro PC)

La lista del sistema operativo Windows que actualmente soportamos para nuestros productos incluye Windows 7, Windows 8, Windows 10, Windows Server 2008 y Windows Server 2012.


 

¿Qué Entornos no están afectados?


Hay algunos entornos y escenarios que soportamos que no pueden verse afectados por bloqueos oportunistas, incluso si se utiliza la base de datos embebida:
 
  • Acceso de base de datos local
En general, cada vez que se accede a una tabla de base de datos embebida en el mismo PC donde se encuentra ubicada, los oplocks no se aplican.
  • Windows Terminal Services y Citrix
En condiciones de uso normal para estos entornos, los usuarios inician sesión en un servidor de Windows y ejecutan aplicaciones de forma local en ese servidor. Si, sin embargo, una base de datos embebida se encuentra en otro servidor del que ejecuta WTS/Citrix, los oplocks entre el servidor WTS/Citrix y el servidor de base de datos deben ser desactivados.
  • Aplicaciones de Servidor Web / Servicios Web
En las aplicaciones web los usuarios acceden a un navegador web que solicita datos desde una aplicación Web y/o los datos se solicitan a través de un servicio web. En ambos casos, la aplicación web en un servidor web tiene acceso a la base de datos, el cliente no lo tiene. Si los datos se encuentran en el mismo servidor, oplocks no entran en juego. Si, sin embargo, una base de datos embebida se encuentra en otro servidor del que ejecuta la aplicación web, los oplocks entre el servidor web y el servidor de base de datos deben ser desactivados.



Haciendo Cambios en el Registro de Windows


Los temas siguientes abordan la edición de cambios en el Registro de Windows.
 
Precaución: La siguiente advertencia aparece en cada artículo de Microsoft que discute la edición del Registro de Windows:
 
ADVERTENCIA: Puede editar el registro mediante el Editor del Registro (Regedit.exe o Regedt32.exe). Si utiliza el Editor del Registro incorrectamente, puede provocar problemas graves que conlleven la reinstalación del sistema operativo. Microsoft no garantiza que los problemas que le causan mediante el Editor del Registro de forma incorrecta se pueden resolver. Utilice el Editor del Registro bajo su propio riesgo.

Si cambia alguno de los valores del registro discutidos a continuación, tendrá que reiniciar el PC en el que se ha cambiado el valor para asegurar que la nueva configuración entre en efecto.
 
Los cambios en el registro se listan en el formato MainRegistryKey \ subclave \ subclave RegistryValue = RequiredValue
 
donde:
  • MainRegistryKey es una de las principales claves del Registro de Windows (por ejemplo HKey_Local_Machine)
  • Subclave es cualquier subclave de una clave principal Registro
  • RegistryValue es un valor del Registro para cambiar o añadir en la clave de registro especificada
  • RequiredValue es la RegistryValue valor debe ajustarse para causar el efecto descrito

Si no existen las subclaves o valores que se describen en el Registro, que tendrá que agregarlos. Por favor, revise cuidadosamente antes de hacerlo.


 

Desactivando Oplocks en PC Clientes Windows


Para deshabilitar los bloqueos oportunistas en un PC cliente de Windows (un PC con Windows que tiene acceso a una tabla de base de datos embebida alojada en otro PC), cambiar o añadir los siguientes valores del registro:
 
  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MRxSmb\Parameters OplocksDisabled = 1



Desactivando Oplocks en Servidores Windows


Para deshabilitar los bloqueos oportunistas en un servidor de Windows (un PC con Windows que hospeda una tabla base de datos embebida que se accede desde otro PC), cambiar o añadir los siguientes valores del registro:
 
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters EnableOplocks = 0



Desactivando Oplocks en SMB2 y SMB3


Oplocks no se puede apagar para SMB2 y SMB3. Puede deshabilitar SMB2 y SMB3 en sí mismos, cómo hacerlo está documentado por Microsoft en el artículo 2696547 de Knowledge Base .
 
De acuerdo con ese artículo, SMB2 y SMB3 se pueden desactivar en los sistemas operativos Windows compatibles con estos.
 
Para deshabilitar SMB2 y SMB3 en un Windows Vista, 7, 8, Server 2008 o Server 2012 PC que alberga tablas de bases de datos embebidas, cambie o agregue el siguiente valor del Registro:
 
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters SMB2 = 0

Una vez SMB2 y SMB3 están desactivados, SMB1 debe volver a habilitarse para ser utilizado de nuevo y los métodos descritos anteriormente se aplican para desactivar oplocks para SMB1.
 
Para volver a habilitar SMB1 en un Windows Vista, 7, 8, Server 2008 o Server 2012 PC que alberga tablas de bases de datos embebidas, cambio o agregue el siguiente valor del Registro:
 
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters SMB1 = 1



¿Las prácticas de codificación afectan a estas cuestiones?

 
  • Si su código de aplicación utiliza DataDictionaries y/o Data_Sets, no debe haber problemas de integridad de datos después de que los bloqueos oportunistas se han desactivado.
  • Los clientes han informado de que con el código de aplicación que no utilice diccionarios de datos y/o conjuntos de datos (por ejemplo, en un bucle de Búsqueda que utiliza la memoria intermedia para encontrar registros), los datos en los registros nuevos o editados desde que los datos fueron accedidos por primera vez, seguirán sin recuperarse correctamente, incluso con oplocks deshabilitadas. La solución alternativa para esta condición es hacer la búsqueda en un estado de bloqueo o la emisión de un comando que vuelva a leer después de que se encontró cada registro (recuerde que debe emitir un comando de desbloqueo después de una relectura, ya que la relectura realiza un bloqueo como parte de su funcionalidad). Vamos a publicar cualquier información adicional que obtengaos acerca de cómo solucionar este problema en el sistema operativo de Microsoft en cuanto esté disponible.
  • Hemos tratado de utilizar la función de API Win32 FlushFileBuffers de Windows que Microsoft recomienda en su documentación del runtime de DataFlex/ Visual DataFlex cuando el atributo DF_HIGH_DATA_INTEGRITY estaba activado. Sin embargo, el rendimiento de aplicaciones se ha degradado hasta el punto de que era prácticamente inutilizable al hacerlo, porque esta función API de Windows es una llamada muy genérica que flushea todos los buffers en un PC cliente en lugar de sólo los utilizados por una aplicación.


 

Corrupción de datos Persistente


Si ha aplicado a todos los valores que se tratan en este trabajo, pero los problemas de corrupción y otros síntomas persisten, he aquí algo de información adicional:
 
  • Tenemos informes creíbles de los desarrolladores de que hardware de red defectuoso, como una sola tarjeta de red defectuosa, puede causar síntomas similares a la corrupción de datos.
  • Si usted ve la corrupción de datos persistentes incluso después de repetidas reindexaciones, es posible que tenga que reconstruir las tablas en cuestión. Esto implica la creación de una nueva tabla con la misma definición que latabla a ser reconstruida y transferir los datos de la tabla antigua a la nueva. Hay varios métodos conocidos para hacer esto que se pueden encontrar en nuestra base de conocimientos .

 

Términos

 
  • ISAM El Método de Indexado de Acceso Secuencial es un sistema de gestión de archivos desarrollado en IBM que permite acceder a los registros de forma secuencial (en el orden en que se ingresaron) o aleatoria (con un índice).
  • SMB El Protocolo de Bloque de Mensajes de Servidor (SMB) es un protocolo de uso compartido de archivos de red, y como se aplica en Microsoft Windows se conoce como protocolo Microsoft SMB. Si desea conocer más acerca de SMB, consulte la documentación de Microsoft.
 
Es posible que desee comprobar si hay una versión actualizada de este documento de vez en cuando. Muchos de nuestros whitepapers se actualizan cuando cambia la información. Para estos documentos, la fecha de Última edición está siempre en la parte superior del documento.


 

Recursos

 
  • Regcheck Una de las mejores maneras de asegurar que los oplocks están desactivadas en los PC cliente es añadir código para aplicaciones que comprueba los ajustes en el arranque. La gente de VDF-Guidance.com han creado un proyecto de código abierto llamado regcheck para este propósito. Tenga en cuenta que el código de este proyecto no se verifica o mantenida por DAW.
  • Soporte de Data Access Worldwide
    Visita la página de inicio de soporte DAW para obtener información sobre todas nuestras ofertas de soporte, incluyendo la lista de productos admitidos, formularios de informe de errores y ofertas de soporte libres, como la base de conocimientos,Whitepapers y foros de apoyo entre compañeros.