Solución de problemas operativos con el adaptador de Oracle E-Business Suite
En esta sección se describe el uso de técnicas de solución de problemas para resolver los errores operativos que puede encontrar al usar el adaptador de Microsoft BizTalk para Oracle E-Business Suite.
La habilitación del seguimiento
Para obtener más información sobre la compatibilidad de seguimiento en el adaptador de Oracle E-Business, seguimiento de diagnóstico y registro de mensajes en el adaptador de Oracle E-Business Suite.
Problemas conocidos
A continuación se muestran los errores más comunes que puede encontrar al usar el paquete de adaptadores de BizTalk, junto con su causa y resolución probables.
Error al cargar los enlaces del adaptador
Problema
Al intentar iniciar el complemento Agregar referencia de servicio de adaptador de Visual Studio o el complemento Consumir servicio de adaptador de BizTalk Project, obtendrá el siguiente error:
There was an error loading the binding, <binding name>, from your system configuration.
ConfigurationErrorsException: Exception has been thrown by the target of an invocation.
Causa
Al intentar iniciar el complemento agregar referencia de servicio de adaptador o el complemento Consumir servicio adaptador, WCF carga los enlaces de adaptador para todos los adaptadores instalados. A su vez, los enlaces del adaptador dependen del software cliente específico para la aplicación empresarial. Es posible que se enfrente a este problema por uno o ambos de los siguientes motivos:
El software cliente loB necesario no está instalado en el equipo donde instaló el adaptador.
Ha hecho una instalación típica o completa del adaptador, que instala todos los adaptadores incluidos en el paquete de adaptadores de BizTalk. Sin embargo, es posible que las bibliotecas cliente de LOB se instalen solo para una aplicación empresarial. Como resultado, la GUI no puede cargar los enlaces para los otros adaptadores.
Resolución
Asegúrese de que las versiones de cliente loB necesarias están instaladas en el equipo donde instaló el paquete de adaptadores de BizTalk. Para obtener información sobre las versiones de cliente compatibles, consulte la guía de instalación disponible en <unidad> de instalación:\Archivos de programa\Microsoft BizTalk Adapter Pack.
Asegúrese de realizar una instalación personalizada de los adaptadores para instalar solo el adaptador que necesita.
El adaptador de Oracle E-Business Suite no se muestra en la lista de adaptadores de la consola de administración de BizTalk Server
Problema
A diferencia de la versión anterior de los adaptadores enviados con BizTalk Server, el adaptador de Oracle E-Business incluido con BizTalk Adapter Pack no aparece en la lista de adaptadores de la consola de administración de BizTalk Server.
Causa
El adaptador de Oracle E-Business más reciente es un enlace personalizado de WCF. Por lo tanto, aunque la consola de administración de BizTalk Server muestra el adaptador de WCF-Custom, no muestra los enlaces personalizados de WCF y, por lo tanto, no muestra el adaptador de Oracle E-Business basado en WCF.
Resolución
Puede agregar explícitamente el adaptador de Oracle E-Business a la consola de administración de BizTalk Server siguiendo los pasos mencionados en Adición del adaptador de Oracle E-Business Suite a BizTalk Server consola de administración.
Error al realizar operaciones en Oracle E-Business Suite
Problema
El adaptador proporciona el siguiente error al realizar cualquier operación en Oracle E-Business Suite mediante BizTalk Server.
Para BizTalk Server
System.ArgumentNullException: Value cannot be null.
Causa
No se especifica la acción WCF del mensaje. WCF requiere que se especifique una acción SOAP para cada operación, que informa al adaptador sobre la operación que se va a realizar en la aplicación loB.
Resolución
Especifique la acción SOAP en el puerto de envío o como una propiedad de contexto de mensaje en una orquestación de BizTalk. Para obtener instrucciones, consulte Configuración de la acción SOAP para Oracle E-Business Suite. Consulte Messages and Message Schemas for Oracle EBS adapter (Mensajes y esquemas de mensajes para el adaptador de Oracle EBS ) para ver una lista de acciones para cada operación.
El proceso de BizTalk podría bloquearse debido a una versión incorrecta del cliente de Oracle cuando se quita un mensaje de solicitud en la ubicación de recepción.
Problema
Después de quitar un mensaje de solicitud en una ubicación de recepción definida en una orquestación de BizTalk, la orquestación consume el mensaje y el host de BizTalk (BTSNTSvc.exe) se bloquea y reinicia.
Causa
La instalación del cliente de Oracle agrega la referencia a los ensamblados de cliente más recientes en la variable PATH. Además, las referencias a la instalación más reciente del ensamblado de cliente de Oracle preceden a la referencia a los ensamblados de cliente existentes. Por lo tanto, si la instalación de cliente de Oracle más reciente no es de una versión de cliente compatible, el host de BizTalk se bloquea y, a continuación, se reinicia.
Por ejemplo, supongamos que el cliente de Oracle compatible 11.1.0.7 ya está instalado en el equipo y la variable PATH tiene la siguiente referencia:
C:\oracle\product\11.1.0\client_1\bin;
Si un cliente de Oracle no compatible, por ejemplo 10.2.0.3, está instalado en el mismo equipo, la variable PATH tendrá la siguiente referencia:
C:\oracle\product\10.2.0\db_2\bin;C:\oracle\product\11.1.0\client_1\bin;
Tenga en cuenta que se hace referencia a la versión de cliente no admitida antes de la versión admitida y, por tanto, el host de BizTalk se bloquea. Si hay más de un host de BizTalk en ejecución, el que hospeda el adaptador se bloquea.
Resolución
Si hay más de un cliente de Oracle instalado en el mismo equipo, asegúrese de que se hace referencia a la versión de cliente de Oracle compatible antes de las demás versiones de cliente de Oracle en la variable PATH. Por ejemplo, si la versión de cliente de Oracle admitida es 11.1.0.7, la referencia en la variable PATH debe ser similar a la siguiente:
C:\oracle\product\11.1.0\client_1\bin;C:\oracle\product\10.2.0\db_2\bin;
El adaptador puede producir una excepción de desbordamiento al ejecutar una operación
Problema
Con el adaptador, si intenta realizar una operación que contiene tipos de datos numéricos de Oracle dentro de DataSets o CURSORES REF de tipo débil, el adaptador podría producir una excepción de desbordamiento.
Causa
Esto sucede si proporciona un valor grande para el tipo de datos numérico de Oracle dentro de DataSets o cursores REF con tipo débil que no caben en el tipo de .NET respectivo.
Resolución
Si desea pasar valores grandes para el tipo de datos numérico de Oracle dentro de DataSets o CURSORES REF con tipo débil, debe habilitar la escritura segura estableciendo el valor de la propiedad de enlace EnableSafeTyping en true. Al habilitar la escritura segura, se expone el tipo de datos numérico de Oracle dentro de DataSets o CURSORES REF con tipo débil como cadenas.
El adaptador puede producir una excepción de desbordamiento aritmético al ejecutar una operación ExecuteScalar.
Problema
Con el adaptador, si intenta ejecutar una instrucción SELECT en una operación ExecuteScalar que recupera un gran número, el adaptador produce la siguiente excepción: "System.OverflowException: la operación aritmética produjo un desbordamiento".
Causa
Esto sucede debido a la limitación conocida de la operación ExecuteScalar en ODP.NET. ODP.NET intenta caber en los datos en el tipo de datos Decimal de .NET y, si el resultado es demasiado grande para caber en el tipo decimal de .NET, se produce la excepción.
Resolución
Use TO_CHAR() en la instrucción SELECT de la operación ExecuteScalar para convertir los datos devueltos como cadena.
El cliente del adaptador podría producir la siguiente excepción al ejecutar una operación: "No se pudo recuperar el identificador de usuario, el identificador de responsabilidad, el identificador de la aplicación. Compruebe si se pasaron los valores correctos".
Problema
Los clientes del adaptador pueden producir esta excepción si está realizando operaciones en artefactos de Oracle E-Business Suite (tablas de interfaz, vistas de interfaz, programas simultáneos y conjuntos de solicitudes).
Causa
Esto sucede si proporciona una combinación incorrecta de nombre de usuario, contraseña y nombre de responsabilidad de Oracle al realizar operaciones en tablas de interfaz, vistas de interfaz, programas simultáneos y conjuntos de solicitudes. El adaptador de Oracle E-Business requiere estos valores para establecer el contexto de la aplicación para estos artefactos. Para obtener más información sobre cómo establecer el contexto de la aplicación, consulte Establecimiento del contexto de la aplicación.
Resolución
Debe especificar una combinación correcta del nombre de usuario, la contraseña y la responsabilidad de Oracle para establecer correctamente el contexto de la aplicación para un artefacto de Oracle E-Business Suite. Para especificar valores para el nombre de usuario y la contraseña de Oracle, debe usar las propiedades de enlace OracleUserName y OraclePassword . Para especificar el valor de la responsabilidad de Oracle, puede usar la propiedad de enlace OracleEBSResponsibilityName o la propiedad de contexto del mensaje.
Error con RootNode TypeName en proyectos de BizTalk
Problema
En un proyecto de BizTalk en Visual Studio, si los esquemas generados a partir del complemento Consumir servicio de adaptador contienen caracteres no válidos o palabras reservadas para la propiedad RootNode TypeName , se producirá el siguiente error al compilar el proyecto:
Node <node reference> - Specify a valid .NET type name for this root node.
The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).
Resolución
Haga clic con el botón derecho en el nodo rood al que se hace referencia en el error y seleccione Propiedades.
Para la propiedad RootNode TypeName , quite los caracteres no válidos o las palabras reservadas, por ejemplo, punto (.).
Advertencia de enlace no válida al usar el adaptador en Visual Studio
Problema
Cuando use el adaptador para crear una aplicación en Visual Studio 2013 y abra el archivo de configuración (app.config) generado por el adaptador, verá una advertencia similar a la siguiente:
The element 'bindings' has invalid child element 'oracleEBSBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...
Causa
Esta advertencia aparece porque el enlace del adaptador de Oracle E-Business, oracleEBSBinding
, no es un enlace estándar enviado con Windows Communication Foundation (WCF).
Resolución
Puede omitir esta advertencia sin problemas.
BizTalk Server produce una excepción si usa más de un esquema de notificación en la misma aplicación o usa el esquema de notificación en varias aplicaciones del mismo host.
Problema
BizTalk Server produce una excepción XLANG o una excepción que indica que la aplicación no puede encontrar la especificación del documento porque varios esquemas coinciden con el tipo de mensaje.
Causa
Esto sucede debido a cualquiera de las siguientes acciones:
Ha generado más de un esquema de notificación en un proyecto de BizTalk Server, lo ha implementado en una aplicación de BizTalk Server y, a continuación, ha ejecutado la aplicación para recibir notificaciones de la base de datos de Oracle. Dado que los esquemas de notificación son comunes, hay un conflicto entre los esquemas que se implementan en la aplicación BizTalk Server.
En el caso de varios proyectos, ha generado un esquema de notificación para cada uno de los proyectos de BizTalk Server, ha implementado cada proyecto en una aplicación BizTalk Server independiente en el mismo host y, a continuación, ha ejecutado una aplicación o aplicaciones para recibir notificaciones de la base de datos de Oracle. Dado que los esquemas y ensamblados son accesibles en las aplicaciones de BizTalk Server, hay un conflicto entre los esquemas comunes implementados en varias aplicaciones y ensamblados de BizTalk Server.
Resolución
Use un único archivo de esquema de notificación para una aplicación de BizTalk Server. Si necesita usar el esquema de notificación en varias aplicaciones de BizTalk Server en el mismo host, cree una aplicación que contenga un único esquema de notificación y, a continuación, use el esquema de notificación de todas las demás aplicaciones de BizTalk Server.
Excepción de tiempo de espera durante la exploración de artefactos de Oracle E-Business Suite en Visual Studio
Problema
Al examinar los artefactos de Oracle E-Business Suite en un proyecto de Visual Studio mediante el Asistente para agregar metadatos del adaptador, Agregar complemento de referencia del servicio adaptador o Consumir complemento de servicio de adaptador, podría producirse una excepción de tiempo de espera.
Causa
Esto puede ocurrir si el servidor que hospeda Oracle E-Business Suite es lento, el servidor se encuentra en una ubicación remota o el esquema que está buscando tiene un gran número de artefactos.
Resolución
Puede optar por aumentar el valor de la propiedad de enlace SendTimeout o proporcionar una expresión de búsqueda en el cuadro de texto Buscar en la categoría para reducir el número de artefactos que recupera el adaptador.
Para obtener más información sobre cómo especificar propiedades de enlace, consulte Configuración de las propiedades de enlace para Oracle E-Business Suite. Para obtener más información sobre cómo buscar artefactos en Oracle E-Business Suite, consulte Examinar, buscar y obtener metadatos para las operaciones de Oracle E-Business Suite.
El uso de memoria y el recuento de subprocesos aumenta al usar el adaptador en una operación de entrada de transacción
Problema
En una operación de entrada transaccionada, como sondear, si no hay datos disponibles en la tabla que se sondean y el adaptador continúa sondeando, durante un período de tiempo experimenta un aumento en el uso de memoria y el recuento de subprocesos.
Causa
Si no hay datos disponibles en la tabla que se están sondeando, después de cada ciclo de tiempo de espera de recepción, Windows Communication Foundation (WCF) genera un nuevo subproceso para continuar con la operación de sondeo. Por lo tanto, el número de subprocesos y el uso de memoria aumentan durante un período de tiempo. Sin embargo, si la tabla que se sondea tiene algunos datos, el mismo subproceso continúa realizando todos los sondeos posteriores.
Resolución
Se recomienda establecer ReceiveTimeout en el valor máximo posible, que es 24.20:31:23.6470000 (24 días) para que un nuevo subproceso se genere solo cada 24 días. Esto garantizará que el uso de memoria y el recuento de subprocesos no crezcan demasiado pronto.
Para obtener más información sobre la propiedad de enlace ReceiveTimeout , vea Leer sobre las propiedades de enlace del adaptador de BizTalk para Oracle E-Business Suite. Para obtener instrucciones sobre cómo especificar propiedades de enlace, consulte Configuración de las propiedades de enlace para Oracle E-Business Suite.
Nota
Al usar el adaptador con BizTalk Server, establecer el tiempo de espera en un valor grande no afecta a la funcionalidad del adaptador.