Compartir a través de


Ejecución de operaciones en tablas con tipos de datos BFILE en Oracle Database mediante BizTalk Server

El adaptador de base de datos de Oracle admite el tipo de datos BFILE en tablas y procedimientos almacenados. En esta sección se proporciona información sobre cómo realizar operaciones en tablas que tienen una columna de tipo de datos BFILE. Para obtener más información sobre cómo el adaptador de base de datos de Oracle admite BFILE, vea Operaciones en tablas con tipos de datos BFILE en Oracle Database.

Configuración del servidor de bases de datos de Oracle para operaciones en BFILE

En esta sección se muestra cómo invocar un procedimiento que inserta un registro en SCOTT. Tabla CUSTOMERDOC. Esta tabla contiene una columna del tipo de datos BFILE y se crea ejecutando los scripts SQL enviados con los ejemplos del paquete de adaptadores de BizTalk. Para más información sobre los ejemplos y los scripts sql, consulte Ejemplos para el adaptador de base de datos de Oracle.

Después de ejecutar el script para crear la tabla CUSTOMERDOC, debe realizar determinadas acciones en el equipo que ejecuta la base de datos de Oracle para habilitar las operaciones en tipos de datos BFILE. Las tareas que debe realizar en la base de datos de Oracle son:

  1. Cree un directorio C:\MYDIR en el equipo que ejecuta la base de datos de Oracle.

  2. Cree un directorio lógico en la base de datos de Oracle. Esto normalmente requiere un usuario con privilegios SYSDBA. Por ejemplo:

    CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\MYDIR';  
    
  3. Agregue privilegios al usuario para acceder al directorio lógico en Oracle. Por ejemplo:

    GRANT READ, WRITE ON DIRECTORY MYDIR to SCOTT;  
    
  4. Copie los archivos a los que se va a acceder en la ubicación del directorio físico, en el equipo que ejecuta la base de datos de Oracle, asociada al directorio lógico de Oracle. Ha creado este directorio en el paso 1.

    En función del ejemplo anterior, copie un archivo customer_profile.txt en el directorio C:\MYDIR. Este archivo ya está disponible para las operaciones BFILE. Para obtener más información sobre cómo realizar operaciones, vea Realizar operaciones en tablas con datos de tipos de objetos grandes mediante BizTalk Server en Oracle Database.

    Importante

    La operación ReadLOB se admite en tablas con el tipo de datos BFILE. No se admite la operación UpdateLOB. Sin embargo, los usuarios pueden usar alternativamente la operación UPDATE.

Cómo realizar operaciones mediante tipos de datos BFILE

Realizar una operación en una base de datos de Oracle mediante el adaptador de base de datos de Oracle con BizTalk Server implica tareas de procedimientos descritas en Bloques de creación para desarrollar aplicaciones de BizTalk con Oracle Database. Para invocar un procedimiento que inserta un registro en SCOTT. La tabla CUSTOMERDOC, estas tareas son:

  1. Cree un proyecto de BizTalk y genere esquema para el procedimiento almacenado CREATE_CUSTOMERDOC.

  2. Cree mensajes en el proyecto de BizTalk para enviar y recibir mensajes de la base de datos de Oracle.

  3. Cree una orquestación para invocar la operación en la tabla o vista de base de datos de Oracle.

  4. Compile e implemente el proyecto de BizTalk.

  5. Configure la aplicación de BizTalk mediante la creación de puertos físicos de envío y recepción.

  6. Inicie la aplicación de BizTalk.

    En este tema se proporcionan instrucciones para realizar estas tareas.

Ejemplo basado en este tema

También se proporciona un ejemplo, Operate_BFILE, en función de este tema, con el paquete de adaptadores de BizTalk. Para obtener más información, consulte Ejemplos para el adaptador de base de datos de Oracle.

Generación de esquema

En este tema, para mostrar cómo realizar operaciones en una tabla con columnas BFILE, invocaremos el procedimiento CREATE_CUSTOMERDOC. Este procedimiento se crea en el esquema SCOTT\Package\ACCOUNT_PKG mediante la ejecución de los scripts SQL proporcionados con los ejemplos. Este procedimiento toma el tipo de registro BFILE y agrega un registro en la tabla CUSTOMERDOC. Para obtener más información sobre los scripts SQL, vea Ejemplos de esquema.

Consulte Recuperación de metadatos para operaciones de Oracle en Visual Studio para obtener más información sobre cómo generar esquema.

Definición de mensajes y tipos de mensajes

El esquema que generó anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable, el tipo para el que se define mediante el esquema correspondiente. Debe vincular el esquema que generó en el primer paso a los mensajes de la ventana Vista de orquestación del proyecto de BizTalk.

Para este tema, debe crear dos mensajes: uno para enviar una solicitud a la base de datos de Oracle y la otra para recibir una respuesta.

Realice los pasos siguientes para crear mensajes y vincularlos al esquema.

  1. Abra la ventana Vista orquestación del proyecto de BizTalk si no está abierta. Para ello, haga clic en Ver, seleccione Otras ventanas y, a continuación, haga clic en Vista de orquestación.

  2. En la vista Orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.

  3. Haga clic con el botón derecho en el mensaje recién creado y, a continuación, seleccione Ventana Propiedades.

  4. En el panel Propiedades de Message_1, haga lo siguiente:

    Use Para hacer esto
    Identificador Escriba Solicitud.
    Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOC, donde BFILE_Operations es el nombre del proyecto de BizTalk. OracleDBBindingSchema es el esquema generado para el procedimiento de CREATE_CUSTOMERDOC.
  5. Repita el paso 2 para crear un mensaje. En el panel Propiedades del nuevo mensaje, haga lo siguiente:

    Use Para hacer esto
    Identificador Respuesta de tipo.
    Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOCResponse.

Configuración de la orquestación

Debe crear una orquestación de BizTalk para usar BizTalk Server para ejecutar un procedimiento. En esta orquestación, quitará un mensaje de solicitud en una ubicación de recepción definida. El adaptador de base de datos de Oracle consume este mensaje y lo pasa a la base de datos de Oracle a través de ODP. La respuesta de la base de datos de Oracle se guarda en otra ubicación. Una orquestación típica para realizar operaciones en columnas BFILE en una tabla de base de datos de Oracle contendrá:

  • Enviar y recibir formas para enviar mensajes a la base de datos de Oracle y recibir respuestas.

  • Un puerto de recepción unidireccional para recibir mensajes de solicitud para enviarlos a la base de datos de Oracle.

  • Puerto de envío bidireccional para enviar mensajes de solicitud a la base de datos de Oracle y recibir respuestas.

  • Un puerto de envío unidireccional para enviar las respuestas de la base de datos de Oracle a una carpeta.

    Una orquestación de ejemplo es similar a la siguiente:

    Orquestación para realizar operaciones con BFILE

Agregar formas de mensaje

Asegúrese de especificar las siguientes propiedades para cada una de las formas de mensaje. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje que se muestran en la orquestación mencionada.

Forma Tipo de forma Propiedades
ReceiveMessage Recepción - Establecer nombre en ReceiveMessage
- Establecer Activar en True
SendMessage Envío - Establecer nombre en SendMessage
ReceiveResponse Recepción - Establecer nombre en ReceiveResponse
- Establecer Activar en False
SendResponse Envío - Establecer nombre en SendResponse

Adición de puertos

Asegúrese de especificar las siguientes propiedades para cada uno de los puertos lógicos. Los nombres enumerados en la columna Puerto son los nombres de los puertos que se muestran en la orquestación.

Port Propiedades
FileIn - Establecer identificador en FileIn
- Establecer tipo en FileInType
- Establecer el patrón de comunicación en unidireccional
- Establecer la dirección de comunicación para recibir
LOBPort - Establecer identificador en LOBPort
- Establecer tipo en LOBPortType
- Establecer el patrón de comunicación en Solicitud-respuesta
- Establecer la dirección de comunicación en enviar y recibir
SaveResponse - Establecer identificador en SaveResponse
- Establecer tipo en SaveResponseType
- Establecer el patrón de comunicación en unidireccional
- Establecer la dirección de comunicación en Enviar

Especificar mensajes para formas de acción y conectarlos a puertos

En la tabla siguiente se especifican las propiedades y sus valores que se deben establecer para especificar mensajes para las formas de acción y para vincular los mensajes a los puertos. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje tal como se muestran en la orquestación mencionada anteriormente.

Forma Propiedades
ReceiveMessage - Establecer mensaje en solicitud
- Establezca Operaciónen FileIn.Create_BFILE. Petición
SendMessage - Establecer mensaje en solicitud
- Establezca Operaciónen LOBPort.Create_BFILE. Petición
ReceiveResponse - Establecer mensaje en respuesta
- Establezca Operaciónen LOBPort.Create_BFILE. Respuesta
SendResponse - Establecer mensaje en respuesta
- Establezca Operaciónen SaveResponse.Create_BFILE. Petición

Después de especificar estas propiedades, las formas y los puertos de mensaje están conectados y se completa la orquestación.

Ahora debe compilar la solución de BizTalk e implementarla en un BizTalk Server. Para obtener más información, vea Compilar y ejecutar orquestaciones.

Configuración de la aplicación de BizTalk

Después de implementar el proyecto de BizTalk, la orquestación que creó anteriormente aparece en el panel Orquestaciones de la consola de administración de BizTalk Server. Debe usar la consola de administración de BizTalk Server para configurar la aplicación. Para obtener un tutorial, vea Tutorial: Implementación de una aplicación básica de BizTalk.

La configuración de una aplicación implica:

  • Selección de un host para la aplicación.

  • Asignación de los puertos que creó en la orquestación a puertos físicos en la consola de administración de BizTalk Server. Para esta orquestación, debe:

    • Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde quitará un mensaje de solicitud. La orquestación de BizTalk consumirá el mensaje de solicitud y lo enviará a la base de datos de Oracle.

    • Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde la orquestación de BizTalk quitará el mensaje de respuesta que contiene la respuesta de la base de datos de Oracle.

    • Defina una WCF-Custom física o WCF-OracleDB puerto de envío para enviar mensajes a la base de datos de Oracle. También debe especificar la acción en el puerto de envío. Para obtener información sobre cómo crear puertos de WCF-Custom o WCF-OracleDB, consulte Configuración manual del enlace de puertos físicos al adaptador de base de datos de Oracle.

      Nota

      La generación del esquema mediante el complemento de proyecto consumir servicio de adaptador de BizTalk también crea un archivo de enlace que contiene información sobre los puertos y las acciones que se establecerán para esos puertos. Puede importar este archivo de enlace desde la consola de administración de BizTalk Server para crear puertos de envío (para llamadas salientes) o puertos de recepción (para llamadas entrantes). Para obtener más información, consulte Configuración de un enlace de puerto físico mediante un archivo de enlace de puertos a Oracle Database.

Iniciar la aplicación

Debe iniciar la aplicación de BizTalk para invocar el procedimiento que crea un registro en la tabla CUSTOMERDOC. Para obtener instrucciones sobre cómo iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación.

En esta fase, asegúrese de que:

  • El puerto de recepción FILE para recibir mensajes de solicitud para la orquestación se está ejecutando.

  • El puerto de envío FILE para recibir los mensajes de respuesta de la orquestación se está ejecutando.

  • El WCF-Custom o WCF-OracleDB puerto de envío para enviar mensajes a la base de datos de Oracle se está ejecutando.

  • La orquestación de BizTalk para la operación se está ejecutando.

Ejecución de la operación

Después de ejecutar la aplicación, debe quitar un mensaje de solicitud a la ubicación de recepción del archivo. El esquema del mensaje de solicitud debe ajustarse al esquema del procedimiento que generó anteriormente. Consulte Esquemas de mensajes para funciones y procedimientos para obtener más información sobre el esquema de mensajes de solicitud para invocar el procedimiento mediante el adaptador de base de datos de Oracle.

Por ejemplo, el mensaje de solicitud para invocar el procedimiento CREATE_CUSTOMERDOC es:

<CREATE_CUSTOMERDOC xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">  
  <CNAME>John Smith</CNAME>  
  <CDOC>MYDIR/John_Smith_profile.txt</CDOC>  
</CREATE_CUSTOMERDOC>  

Nota

El archivo de texto, John_Smith_profile.txt debe estar presente en la ubicación del directorio físico asociado al directorio lógico de Oracle. En este ejemplo, el archivo de texto debe estar presente en C:\MYDIR.

La orquestación consume el mensaje y lo envía a la base de datos de Oracle. La respuesta de la base de datos de Oracle se guarda en la otra ubicación FILE definida como parte de la orquestación. Por ejemplo, la respuesta de la base de datos de Oracle para el mensaje de solicitud anterior es:

<?xml version="1.0" encoding="utf-8"?>  
<CREATE_CUSTOMERDOCResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"></CREATE_CUSTOMERDOCResponse>  

Nota

Puede crear una orquestación similar para leer datos de tablas que tienen campos de tipo BFILE. El script SQL incluido con el paquete de adaptadores de BizTalk crea una ACCOUNT_PKG que contiene un procedimiento de GET_CUSTOMERDOC. Puede usar este procedimiento para recuperar datos BFILE de SCOTT. Tabla CUSTOMERDOC.

También se incluye un ejemplo, Operate_BFILE, con los ejemplos del paquete de adaptadores de BizTalk. En este ejemplo se muestra cómo insertar registros en SCOTT. Tabla CUSTOMERDOC mediante el procedimiento almacenado CREATE_CUSTOMERDOC (como se describe en este tema). En el ejemplo también se muestra cómo leer datos BFILE de SCOTT. Tabla CUSTOMERDOC mediante GET_CUSTOMERDOC procedimiento almacenado.

Posibles excepciones

Para obtener información sobre las excepciones que puede encontrar al realizar una operación DML mediante BizTalk Server, consulte Excepciones y control de errores.

Prácticas recomendadas

Después de implementar y configurar el proyecto de BizTalk, puede exportar los valores de configuración a un archivo XML denominado archivo de enlaces. Una vez que genere un archivo de enlaces, puede importar los valores de configuración del archivo para que no sea necesario crear los puertos de envío, los puertos de recepción, etc. para la misma orquestación. Para obtener más información sobre el enlace de archivos, consulte Reutilización de enlaces del adaptador de base de datos de Oracle.

Consulte también

Bloques de creación para desarrollar aplicaciones de BizTalk con Oracle Database