19.05.2020

1c falla cuando se bloquean los datos. Cómo diagnosticé los problemas de bloqueo


En sistemas multiusuario papel importante obras de teatro organización adecuada estructuras y colocación de cerraduras. De lo contrario, los usuarios a menudo encontrarán errores causados ​​por la competencia por ciertos recursos del sistema. Pero hay un problema de conflicto de bloqueo con el que muchos usuarios están familiarizados. ¿Por qué ocurre un conflicto de bloqueo 1C y cómo solucionarlo?

Conflicto de bloqueo en 1C 8.3 y su significado

Para la mayoría de los usuarios, un mensaje de conflicto de bloqueo 1C significa solo un error que les impide hacer su trabajo. Quieren deshacerse de este problema lo antes posible y asediar al departamento de TI con quejas de que "1C no funciona".

Pero para administradores del sistema y desarrolladores, dicho mensaje indica un posible problema en la estructura de configuración. Antes de intentar complacer a los usuarios y eliminar bloqueos, debe analizar la situación y comprender la causa del mensaje de error.

Causas de errores de bloqueo en 1C

Las pruebas de carga demostrativas demuestran que el servidor 1C puede soportar la operación paralela de más de cinco mil usuarios. Pero las condiciones ideales para tales experimentos son inalcanzables en las condiciones diarias de las grandes y medianas empresas. Para lograr un rendimiento similar y sin errores, la configuración debe estar idealmente diseñada y adaptada a los procesos comerciales específicos de la empresa.

Si no elige las opciones ideales, se producirán conflictos de bloqueo 1C por los siguientes motivos:

Trabajo simultáneo de usuarios con una gran cantidad de datos. Esta causa raíz está dictada por los mecanismos internos de 1C. Implican la prohibición de modificar los datos involucrados en una transacción iniciada por cuenta de otro usuario;

Errores y deficiencias en la configuración. La estructura de las soluciones estándar de la empresa "1C" tiene en cuenta las recomendaciones para maximizar la productividad. Pero los desarrolladores de terceros no siempre se adhieren a los altos estándares y, a menudo, puede encontrar las siguientes deficiencias en su código:

  • Consultas subóptimas;
  • Solicitud de saldos al inicio de acciones;
  • Malinterpretar el propósito de los objetos de configuración y su uso incorrecto;
  • Redundancia inherente al sistema o bloqueos desarrollados adicionalmente.

Cómo solucionar un conflicto de bloqueo en 1C 8.3

El mensaje del sistema "Conflicto de bloqueo durante la ejecución de la transacción 1C 8.3" no caracteriza la configuración como diseñada incorrectamente. Pero si se ignoran tales señales, existe la posibilidad de que en el momento más crucial, por ejemplo, al enviar informes trimestrales o anuales, tenga grandes problemas. En el mejor de los casos, un sistema lento y usuarios insatisfechos. En el peor de los casos, datos de salida incorrectos, que pueden dar lugar a sanciones por parte de las autoridades reguladoras.

La solución al problema del conflicto de candados en 1C 8.3 puede ser la transferencia de la configuración a un modo de gestión de candados gestionado (manual). Implementado en la versión 8.1, el mecanismo en manos de especialistas competentes resuelve el problema de los conflictos de bloqueo durante las transacciones en 1C.


Pero debe tenerse en cuenta que esta acción reducirá el nivel de protección de los datos frente a cambios en el proceso de lectura por parte de otros usuarios. Por lo tanto, si no está listo para controlar de forma independiente todas las cerraduras del sistema, no se apresure a cambiar los ajustes de configuración.

Resolución rápida de conflicto de bloqueo 1C

En el trabajo de un administrador o desarrollador, puede haber una situación en la que no haya tiempo para verificar el error y encontrar las causas raíz del problema. Por ejemplo, debe enviar un informe o enviar datos en un momento determinado, y los errores de bloqueo 1C lo impiden.

Hay dos formas de resolver rápidamente el problema:

  • Busque y finalice la sesión que ha bloqueado los datos necesarios. EN pequeñas empresas, donde el número de usuarios de 1C no supera un par de docenas de personas, esta es la mejor solución;
  • Si controla un sistema que tiene cientos de empleados, encontrar la sesión correcta sin especialistas software puede prolongarse durante mucho tiempo. En este caso, será mucho más eficiente reiniciar el servidor.

Estas soluciones son radicales y apuntan solo a una solución rápida del problema y la liberación de datos para informes urgentes. Solo se puede erradicar al comprender la razón por la cual surgió un conflicto de bloqueo durante la ejecución de una transacción 1C. Luego de tales acciones, es necesario encontrar vulnerabilidades en el sistema, optimizar la configuración o el trabajo de los empleados. No se recomienda utilizar tales medidas de forma permanente con conflictos regulares de bloqueos en las transacciones.

¡Hola a todos!

El otro día en el trabajo, encontré un problema con los bloqueos, a saber, comenzó a aparecer el mensaje "Conflicto de bloqueo al ejecutar una transacción. Se ha excedido el tiempo de espera máximo para otorgar un bloqueo".

Obviamente, no hay ningún problema de interbloqueo aquí, es solo que alguna sesión colocó un bloqueo y "olvidó" eliminarlo. Al mismo tiempo, el problema amenazaba con graves consecuencias: el documento Ventas de bienes y servicios no se llevó a cabo. ¡Alrededor de 100 personas trabajan en la base de datos a la vez, y es imposible realizar una operación típica y frecuente!

Había dos soluciones: reiniciar el servidor o buscar una sesión fallida. La primera solución es simple y rápida, pero, como alguien ya escribió aquí, puede reiniciar el servidor hasta que lo despidan. Decidió ir por el segundo camino.

El primer día - el problema apareció por la tarde, al principio parecía que el problema estaba en el usuario remoto que estaba atascado en el Configurador. Parecía que la ejecución simplemente se detuvo en un punto y, por supuesto, la cerradura no se abrió. Después de un par de horas, logramos liberar el configurador, pero el problema no desapareció. Era extremadamente indeseable matar al configurador por la fuerza, tal vez trabajaron en él. Después de eso, Google se hizo cargo. Encontré un artículo en este sitio, que dice cómo encontrar bloqueos en el DBMS de MS SQL, verificado, no había bloqueos en el nivel de DBMS. Extraño. Además, hubo intentos de ajustarlos. revista. Configurar, ¿qué sigue? En 15 minutos un par de gigas de logs! ¿Cómo leerlos, qué buscar? Desconocido.

Encontré un artículo sobre cómo ver lo que está bloqueado a través de SQL Trace. Incluso si lo encuentro, ¿entonces qué? ¡Necesito una sesión!

Más cerca de las 16:00, cuando me di cuenta de que no podía avanzar más, reinicié. Con la esperanza de que esto no vuelva a suceder (y este fue el primer caso en seis meses de trabajo), respiré aliviado, todo funcionó. Pero en vano ... El segundo día - la misma situación. Busqué durante una hora y media, nuevamente intentos incomprensibles de buscar en Google, etc. No hay resultados. Reiniciar. Al final del día volvió a pasar. Bueno, creo que es genial, volveré tranquilamente a casa y me sentaré, profundizaré. Llego a casa, todo está bien. Desafortunadamente.

El tercer día, vi un seminario web, hablé sobre un tema interesante y metodo efectivo buscar un problema. Recordado, pero el problema no se presentó más. Ha pasado una semana y aquí está: ¡otra vez bloqueando! Me froto las manos y empiezo a actuar.

El primero es configurar el registro. Sí, no puedo prescindir de él, pero ahora puedo leerlo. Establecemos dos eventos: el primero es TLOCK, el segundo es TTIMEOUT. El primero muestra todos los eventos de bloqueo, el segundo muestra los bloqueos que no se pudieron establecer en el tiempo asignado. De hecho, lo más probable es que solo TTIMEOUT sea suficiente.



















Copiamos el archivo de registro técnico en el lugar asignado, volamos al programa, llamamos al bloqueo, recibimos un mensaje y eliminamos o renombramos el archivo de registro técnico. ¡No necesitamos toneladas de información sobre otros bloqueos!

Vaya a la carpeta rphost_PID, busque archivos de texto y busque la palabra TTIMEOUT. Vemos la línea:

53:16.789126-0,TTIMEOUT,5,process=rphost,p:processName=*****,t:clientID=16536,t:applicationName=1CV8,t:computerName=ASUSM,t:connectID=17272,SessionID= 2242,Usr=*******,Conexiones en espera=8239

Por cierto, puede haber varias carpetas rphost_PID, todo depende de cuántos procesos de trabajo se estén ejecutando en el servidor.

Y luego todo es simple: mire al final de la línea - WaitConnections = 8239, este es nuestro número de CONEXIÓN. Vamos a la consola del servidor, vamos a Conexiones, buscamos este número y miramos el número de sesión. En mi caso, hubo dos sesiones por usuario, una fallida y otra. Se bloqueó la sesión indicada por el registro técnico. ¡Y sobre un milagro! ¡Todo funcionó, no hay límite para la alegría! Pero, como resultó más tarde, la sesión no se colgó :), trabajaron en ella. Por tanto, de cara al futuro, es recomendable contactar con el usuario y avisar.

suficiente en mi opinión solucion estandar suficiente de un problema común. No se sabe por qué no lo encontré, tal vez debido al hecho de que tuve que buscarlo con alarma, y ​​cuando los usuarios no presionaron, entonces no fue posible realizar pruebas, no hubo error.

“Conflicto de bloqueo durante la ejecución de la transacción: se ha excedido el tiempo de espera máximo para otorgar un bloqueo” es un error bastante común en 1C 8.3 y 8.2 asociado con la competencia por el uso de recursos en el sistema.

El sistema 1C permite que una gran cantidad de usuarios trabajen en paralelo: como muestran las pruebas de carga, hoy ese número no se limita a cinco mil usuarios que trabajan simultáneamente en el sistema. Sin embargo, para que la base de datos 1C 8 pueda admitir simultáneamente grandes cantidades sobre los usuarios, la configuración debe estar correctamente diseñada.

Obtenga lecciones en video de 267 1C gratis:

Realización de un gran número de operaciones.

Es probable que algún usuario haya iniciado, por ejemplo, durante un período prolongado en una sola transacción. La arquitectura 1C 8.3 asume que el sistema no permite cambiar los datos que se utilizan en una transacción por otro usuario y los bloquea.

Quizás este sea un error temporal que dejará de ocurrir cuando otro usuario complete acciones en el sistema. Si este error aparece con frecuencia, lo más probable es que sea otra cosa.

Error de configuración

Además de los errores en el código, a menudo hay soluciones metódicamente incorrectas. Por ejemplo, - implica en sí mismo la tenencia secuencial de documentos. La contabilidad por lotes se puede reemplazar por RAUS; de esta manera, aumentará significativamente el rendimiento del sistema.

¿Cómo solucionar este error en 1C 8.3?

En cualquier caso, la aparición del error “Conflicto de bloqueo al ejecutar una transacción” indica la necesidad de inspeccionar el sistema, sobre todo para medianas y grandes sistemas de información en modo cliente-servidor (MS SQL, PostgreSQL, etc.). Si esto se ignora en una etapa temprana, puede haber consecuencias irreversibles más adelante, cuando la operación del sistema es especialmente importante (durante el período del informe).

Para la auditoría y la corrección de errores, lo mejor es elegir un socio confiable. Solo llámanos y resolveremos cualquiera de tus problemas en lo antes posible. Detalles en la página.

No es raro que al trabajar en 1C se presente el error “Conflicto de bloqueo al ejecutar transacciones: Se excedió el tiempo máximo de espera para otorgar un bloqueo”. Su esencia radica en el hecho de que varias sesiones intentan realizar simultáneamente acciones similares, afectando el mismo recurso. Hoy descubriremos cómo solucionar este error.

Un gran número de operaciones

En primer lugar, cuando busque razones, debe aclarar cuántos usuarios que trabajan simultáneamente hay en la base de datos en la que se genera dicho error. Como sabemos, su número máximo puede ser bastante grande. Son mil cinco mil.

El mecanismo de bloqueos y transacciones se describe en la guía del desarrollador. Se utilizan cuando varias sesiones acceden a los mismos datos al mismo tiempo. Es lógico que los mismos datos no puedan ser modificados por diferentes usuarios en el mismo momento.

También debe verificar si alguno de los usuarios ha comenzado a procesar el cambio masivo de datos. Puede ser como , cierre de mes y similares. En este caso, una vez finalizado el procesamiento, el error desaparecerá por sí solo.

Tareas programadas

No es raro que la causa del error resida en que se procesa una gran cantidad de datos. Se recomienda hacer tales cosas por la noche. Programar la ejecución de dichas tareas programadas fuera del horario laboral.

Por lo tanto, ambos usuarios trabajarán en un sistema estable y las tareas programadas se completarán con éxito, ya que disminuirá la probabilidad de conflictos con las sesiones de los usuarios.

"Sesiones atascadas"

El problema de las "sesiones colgadas" de los usuarios es familiar para casi todos los que se han encontrado con el servicio 1C. El usuario pudo haber salido del programa hace mucho tiempo, o cerrado un documento, pero su sesión aún permanece en el sistema. El problema suele ser único y basta con finalizar dicha sesión a través de la consola del administrador. Los mismos problemas pueden ocurrir con los trabajos en segundo plano.

Según numerosos comentarios en Internet, este tipo de situaciones son más comunes cuando se utilizan claves de seguridad de red. Si la situación de "sesiones colgadas" se repite sistemáticamente, es motivo de revisión y mantenimiento exhaustivo del sistema y servidores (si la base es cliente-servidor).

Errores al escribir la configuración

Todas las configuraciones típicas están diseñadas especialistas calificados y expertos. Cada sistema es cuidadosamente probado y optimizado para un trabajo más rápido y correcto en el mismo.

En este sentido, la causa del error puede residir en un código subóptimo escrito por un desarrollador externo. Esta puede ser una solicitud "pesada" que bloqueará los datos durante un largo período de tiempo. Tampoco es raro construir algoritmos con bajo rendimiento y violación de la lógica.

Es muy probable que surja un conflicto de bloqueo precisamente por errores del desarrollador si surgió después de actualizar el programa. Para verificar, simplemente puede "revertir" las mejoras o refactorizar el código.

Pregunta: UT11.1. Creación por lotes de Implementaciones. Conflicto de bloqueo


Buenas tardes Configuración UT11.1. Opción cliente-servidor. Configuración predeterminada para 1C Server y SQL Server. Formamos implementaciones programáticamente. En la etapa de escritura de documentos, periódicamente se produce un conflicto de bloqueo. ¿Puedes decirme cómo se resuelven esos problemas? ¿Se utilizan transacciones con bloqueos gestionados? Gracias de antemano.

Respuesta:
no lo apague) transfiéralos a la noche; puede haber un cálculo de costos y se consideran índices de búsqueda.

Pregunta: Conflicto de bloqueo al ejecutar una transacción


Todos los días, casi a la misma hora, al sostener un documento, aparece durante 5 a 10 minutos error dado 1С 8.3.10.26.99 UT11(11.4.1.261):
Conflicto de bloqueo al ejecutar una transacción:
Microsoft Sql Server Native Client 11.0: se agotó el tiempo de espera de la solicitud de bloqueo.
HERESULT=80040E31, SqlServer: SQLSTATE=HYT00, estado=38, Gravedad=10, nativo=1222, línea=1
¿Dime por dónde empezar a cavar?

Respuesta:() Habilite el generador de perfiles en este momento en los eventos Lock:Adquired y Lock:Escalation. Luego informa lo que obtuviste.

Pregunta: Recuperación de la base de datos (conflicto de bloqueo)


Buenas tardes. La base se está muriendo. Servidor.
Resultó que no de inmediato, porque. todo funcionó excepto el documento sf emitido. Y no se hace a menudo. Por lo tanto, la copia de seguridad no es relevante (aparentemente han pasado varios días), intentaron implementar una copia de hace 2 días; fue normal durante medio día y luego salió el mismo problema.

Síntomas: al intentar cancelar el SF, obtenemos un conflicto de bloqueo, incluso si hay un usuario en la base de datos. TII (comprobación de la integridad lógica y referencial) falla con un conflicto de bloqueo, creando una copia de seguridad a través de sql management studio - lo mismo ("Se agotó el tiempo de espera del bloqueo del búfer tipo 3 para la página").

Queremos intentar completar el cf hace una semana, pero hay pocas esperanzas de algo.

Respuesta: hay problemas con el servidor de base de datos, y no 1C, las versiones de configuración, etc. no tienen nada que ver.
Quizás el pómulo desatendido vivió lo mejor que pudo mientras hubo suficientes recursos, y ahora el autor inicia una nueva etapa en el desarrollo del conocimiento.
Si el tamaño lo permite, cárguelo en un archivo y comience a aprender sql más profundamente.

Pregunta: UT10. Conflicto de bloqueo


Buenas tardes Opción cliente-servidor. Heredé una configuración de BitAuto muy modificada (servicio de coche basado en UT10). En el controlador del documento "pedido-pedido", el principal para recibir maestros y gerentes, la formación de documentos subordinados (realización, factura, requisito de factura), cálculo del salario de mecánicos, reserva de mercancías, si un nuevo documento , luego la creación de un pedido - comprador y alguna otra funcionalidad. La base de datos creció y, a menudo, comenzaron a surgir conflictos de bloqueo. Los fines de semana, cuando hay menos gente, no hay conflictos.

Sospecho que con esta cantidad de análisis, durante el documento, largo tiempo bloquea algún registro de documentos, aunque el registro de pedidos parece estar completamente bloqueado.

Si crea su propio procedimiento como controlador del botón "Aceptar", donde ejecuta secuencialmente "Procesamiento" y luego el procedimiento, por ejemplo, Generar documentos subordinados, luego Calcular salario, etc. No estoy seguro si esto ayudaría. Agregar botones a los que colgar la formación de documentos no funcionará, porque. los usuarios lo olvidarán.

Respuesta:

Cero
vde69,

Duck, es probable que sea algún tipo de mierda de Raru.

No, esto no es Rarus, esto es BitAuto

Pregunta: Conflicto de bloqueo 1c al abrir formulario de documento


SCP
Recientemente, una vez cada 2 o 3 días, se produce un bloqueo en el documento Factura de reclamación. Aquellos. no se abre ningún documento de este tipo. Todo el tiempo
Otros documentos funcionan bien.
No encontré ningún problema en el depurador, no tengo tiempo para detenerme en ningún módulo; inmediatamente hay un conflicto de bloqueos.
Sospecho que hay algún problema en SQL.

Respuesta: El problema fue un trabajo de mantenimiento de índice que no se completó.

Pregunta: Error de SQL2000 durante la ejecución de transacciones en 1C77


en MSSQL base 1C77 (versión 27) TiS. Regularmente al realizar publicaciones, aparece un error:

¡Ocurrió un error al ejecutar la transacción!
Estado SQL: HYT00
Nativo: 0 Mensaje: Se agotó el tiempo de espera.

Como resultado, el documento falla. Puede durar 20 minutos, o tal vez 1 hora.
¿Cómo lidiar con eso, dónde cavar?

Atentamente,
steve242

El archivo se adjunta al mensaje. Tamaño - 21Kb

Respuesta:

El monitor de rendimiento normal de Windows mostró que la Terminal está cargando infernalmente el disco del sistema C:\.
Todo lo demás: memoria, CPU: en ambos servidores (terminal y whine) casi no se muestran ráfagas anómalas.

Creé una memoria RAM de 2 Gb (de los 12 Gb físicamente disponibles en el servidor de terminal) y estoy tratando de redirigir los directorios del sistema temporal de los perfiles de usuario de la terminal allí.
hasta algo así.

Pregunta: Una vez más, sobre el Conflicto de bloqueos al ejecutar una transacción


El problema está bien descrito en los foros. Pero para mi caso no vi la Solución. Permítanme describir mi problema con más detalle.
UPP 1C: Enterprise 8.2 (8.2.19.90) edición 1.3 (1.3.74.1)
hay un error tal error.... En todas partes. Casi al publicar cada documento.
Y Esto, abajo, cuando... - descargando la infobase en.Configurador

Está claro que no se trata de un simple bloqueo del documento. Incluso describiré el comienzo de este problema. Para la noche pongo el Recableado de documentos para el trimestre.
Terminó en error

Todo lo que sigue después de PUBLICAR CUALQUIER DOCUMENTO da como resultado errores de bloqueo.
Creo que el problema está en MSSQL. Ayuda, que se reunió con este problema. Tal vez
ayudará a actualizar a la nueva versión.

Respuesta:

intente hacer dbcc checktable con no_infomsgs para esa tabla de registro. La idea es que debe haber errores.

Pregunta: Bloqueo al suscribirse a RTiU


Colegas me dicen. Actualización de conferencia 1.3.
La compañía incluye varias firmas. Sea la empresa 1 la principal, la empresa 2 la vendedora. Existe una suscripción para realizar RTiU en el momento en que se produce una venta de la empresa 2 contrapartes externas. La suscripción crea una reventa automática (de la empresa 1 a la 2): se crea otro RT&U y una nota de gastos, además crea un flujo de bienes y servicios a la empresa 2.
Además, también me suscribí a este RTiU en el momento de la reventa, solo registra ciertos datos en mi registro.

Entonces, de vez en cuando, un usuario que realiza una implementación a contrapartes externas tiene un conflicto de bloqueo al ejecutar una transacción. El día principal puede no tener problemas: todo se lleva a cabo, pero a veces el usuario simplemente atormenta: todo no se lleva a cabo (conflicto de bloqueo), los de rutina no se ejecutan en ese momento (si lo son, está claro que el bloque es debido a ellos). Supongo que se trata de suscripciones, porque. el problema se da para un usuario que solo esta haciendo una venta de la empresa 2.
¿Cómo optimizar este momento?
Las suscripciones se ejecutan después del evento, ¿cómo pueden afectar? No puedo averiguar dónde está el error. En general, ¿todos los eventos ocurren implícitamente en 1 transacción? ¿Quizás la reventa debería hacerse en otro? Y en general el cant esta en el propio dock de RTiU o sigue en reventas (otros RTiU, RO, PTiU), que se crean automaticamente, como se entiende?

Respuesta:

Solo tengo tr-tr-tr al cerrar, aparentemente algún tipo de bloqueo no "entiende" que se ha cerrado y se empuja N-ésimo número de veces.

Pregunta: Linux, Postgres, Retail 2.0.5.1 Ucrania RIB en la tienda: error de bloqueo...


¿Alguien puede decirme? Estoy configurando un intercambio de tiendas. Todo funciona bien, resulta hacer un intercambio con las manos. Se reenvían 4-5 mensajes. Luego armo el escenario de acuerdo al cronograma y comienza el columpio... El primer error:

"Error al escribir datos en el archivo de mensajes de intercambio: (Processing.ConvertingDistributedInfobaseObjects.ObjectModule()): Error al llamar al método de contexto (WriteChanges): Conflicto de bloqueo durante la transacción:
Se ha superado el tiempo máximo de inactividad para el acceso a la cerradura debido a la espera de la sesión"

Todas las siguientes:

"Error al escribir datos en el archivo de mensaje de intercambio: (Processing.ConvertingDistributedInfoBaseObjects.ObjectModule()): Error al llamar al método de contexto (WriteChanges): Conflicto de bloqueo al ejecutar la transacción:
Se ha excedido el tiempo de espera máximo para otorgar un bloqueo"

Ni la reindexación ni el cierre de sesiones ayudan. Bloquear en 1C no vale la pena. Ayuda solo a la eliminación de la base y la creación de nuevo.
¿Cómo entendí el bloqueo de tránsitos en un DBMS? Uso Postgress en Linux, 1 base de datos, 4GB de RAM. Si tengo razón, la pregunta es Postgress mal configurado o sin memoria. ¿O tal vez ese no es el problema en absoluto?

Respuesta:() Tan fresco es 8.3.10.2375

Pregunta: Error de bloqueo al borrar el registro de información


Selecciono registros RS con una consulta, luego:

RecordSet.Load(QueryResult.Descargar()); RecordSet.Borrar(); RecordSet.Escribir();
Cuando intento escribir, me sale un error:

"Conflicto de bloqueo al ejecutar una transacción".
El registro no es periódico, no está subordinado al registrador.

¿Cuál es la razón del error?

Respuesta:() "Por alguna razón, estaba seguro de que la selección se aplica solo en el momento de la lectura, y lo que está incluido en la selección se escribe en consecuencia". - ¿Dónde usa la palabra "selección" al menos una vez en su código?


2023
newmagazineroom.ru - Estados contables. UNVD. Salario y personal. Operaciones de divisas. Pago de impuestos. IVA. primas de seguro