Debido a que la última vez encontré el problema del procesamiento de transacciones en el servicio web, accidentalmente hice un descubrimiento interesante sobre la configuración de registro de cadenas de conexión de OracleConnection mientras depuraba el programa.
Leí un artículo antes, pero no recuerdo qué era. El artículo decía que es mejor configurar enlist como falso. En ese momento, no entré en detalles sobre por qué debería configurarse como falso. mi programa, enlist=false fue escrito directamente. Recién ahora descubrí que existe una relación sutil entre la configuración del alistamiento y el procesamiento de las transacciones.
Los administradores de transacciones generalmente utilizan dos métodos para administrar, uno se llama administración ligera de transacciones, conocida como LTM, y el otro se llama oleX TM. En el envío de fase simple, generalmente se usa LTM, mientras que en el procesamiento de transacciones distribuidas, generalmente se usa 2PC, por lo que el método utilizado es oleX TM.
Si enlist = false, significa que las transacciones posteriores no se registrarán en la transacción actual, por lo que la transacción actual no se convertirá en la raíz de la transacción. Si se utiliza procesamiento de transacciones distribuidas en el programa, es posible que no se ejecute correctamente (no lo he probado). En este momento, el programa le dice a TM que use LTM para administrar.
Si enlist=true, entonces el proceso le dice a TM que debe administrarse usando oleX TM. La administración de transacciones distribuidas se habilitará automáticamente en este momento, por lo que si se establece enlist=true en la cadena de conexión, si se usa la base de datos Oracle, entonces el fondo Al llamar a oramts.dll, si el servicio MTS para Oracle no está instalado en el entorno de desarrollo, le indicará que no se puede encontrar oramts.dll. Puede descargar el paquete de instalación de este servicio desde el sitio web de Oracle. No sé por qué Oracle no proporciona un paquete de instalación por separado, pero lo descarga junto con odac.
¿Qué pasará si no configuras el enlistamiento? Esto depende de si su programa utiliza transacciones distribuidas o procesamiento de transacciones general. TM reaccionará automáticamente según la solicitud del programa.
Conclusión: enlist tiene cierto control sobre el registro de transacciones. Si mi descripción es incorrecta, por favor ayúdame a corregirme.
Dirección del enlace: http://yanrongpi.cnblogs.com/archive/2006/07/13/450189.html