Creación del URI de conexión de Oracle Database
El URI de conexión de la base de datos de Microsoft BizTalk para Oracle contiene propiedades que el adaptador usa para establecer una conexión a la base de datos de Oracle. En este tema se proporciona información sobre cómo especificar el URI de conexión para conectarse a la base de datos de Oracle mediante tnsnames.ora y sin usar tnsnames.ora. También proporciona información sobre el uso del URI de conexión para conectarse a la base de datos de Oracle.
URI de conexión para conectarse a la base de datos de Oracle mediante tnsnames.ora
Importante
- Para este enfoque, debe agregar la entrada del nombre del servicio net en el archivo tnsnames.ora del equipo con el cliente del adaptador instalado. Para obtener más información sobre la entrada de nombre del servicio net, consulte Configuración del cliente de Oracle para el adaptador de base de datos de Oracle.
- Debido a una limitación de cliente de Oracle, el parámetro DataSourceName (net service name) en el URI de conexión no puede contener más de 39 caracteres si está realizando operaciones en una transacción. Por lo tanto, asegúrese de que el valor especificado para el parámetro DataSourceName sea menor o igual que 39 caracteres si va a realizar operaciones en una transacción.
Un URI de dirección de punto de conexión típico en WCF se representa como: scheme://userauthparams@hostinfoparams?query_string
, donde:
-
scheme
es el nombre del esquema. -
userauthparams
es una colección de valores de nombre de parámetros necesarios para la autenticación de usuario por el punto de conexión. -
hostinfoparams
es la información necesaria para establecer la conexión con el host; por ejemplo, una ruta de acceso. -
query_string
es una colección opcional name-value de parámetros delimitados por un signo de interrogación (?).
El URI de conexión del adaptador de base de datos de Oracle cumple este formato básico y se implementa de la siguiente manera:
oracledb://[NET_SERVICE_NAME]?PollingId=[POLLING_ID]
O bien, en escenarios más avanzados:
oracledb://User=[USER_NAME];Password=[PASSWORD]@[NET_SERVICE_NAME]?PollingId=[POLLING_ID]
En la tabla siguiente se explican las propiedades contenidas en el URI de conexión:
Propiedad URI de conexión | Category | Descripción |
---|---|---|
[USER_NAME] | userauthparams | Nombre de usuario que se va a usar para la autenticación en la base de datos de Oracle, como SCOTT . Debe establecer la propiedad de enlace AcceptCredentialsInUri en true para especificar el nombre de usuario y la contraseña en el URI de conexión. La propiedad de enlace AcceptCredentialsInUri no está disponible en la pestaña Enlace de BizTalk Server.Nota El adaptador de base de datos de Oracle conserva el caso del valor especificado para el nombre de usuario cuando abre una conexión en la base de datos de Oracle. Los nombres de usuario de la base de datos de Oracle distinguen mayúsculas de minúsculas. Debe asegurarse de proporcionar nombres de usuario de Oracle al adaptador de Oracle Database en el caso esperado por la base de datos de Oracle. Normalmente, esto significa que el nombre de usuario de la credencial SCOTT/TIGER debe ser mayúscula: "SCOTT". |
[CONTRASEÑA] | userauthparams | Contraseña que se va a usar para la autenticación en la base de datos de Oracle, como TIGER . Debe establecer la propiedad de enlace AcceptCredentialsInUri en true para especificar el nombre de usuario y la contraseña en el URI de conexión. La propiedad de enlace AcceptCredentialsInUri no está disponible en la pestaña Enlace de BizTalk Server.Nota El adaptador de base de datos de Oracle conserva el caso del valor especificado para la contraseña cuando abre una conexión en la base de datos de Oracle. En el caso de la versión 10g y anteriores, las contraseñas del sistema Oracle no distinguen entre mayúsculas y minúsculas. |
[NET_SERVICE_NAME] | hostinfoparams | Nombre del servicio net que se especifica en el archivo tnsnames.ora en el equipo donde está instalado el adaptador de base de datos de Oracle. Para obtener más información sobre los nombres de servicio net y tnsnames.ora, consulte Configuración del cliente de Oracle para el adaptador de base de datos de Oracle. |
[POLLING_ID] | query_string | Cadena opcional que el adaptador debe anexar al espacio de nombres estándar de la operación POLLINGSTMT. Esto le permite especificar un espacio de nombres único para cada operación de sondeo cuando un proyecto contiene varias operaciones de sondeo. No es necesario especificar una cadena PollingId si el proyecto contiene solo una operación POLLINGSTMT. |
Nota
Los parámetros de consulta también se usan en el URI de conexión cuando se especifica una dirección de punto de conexión para un cliente de Exchange de metadatos de WCF.
URI de conexión para conectarse a la base de datos de Oracle sin usar tnsnames.ora
Importante
- Para este enfoque, el nombre del servicio net en el archivo tnsnames.ora o el archivo tnsnames.ora real no necesita estar presente en el equipo cliente.
- Este modo de conectividad no se admite si está realizando operaciones en una transacción. Esto se debe a una limitación del cliente de Oracle.
Un URI de dirección de punto de conexión típico en WCF se representa como: scheme://userauthparams@hostinfoparams?query_string
, donde:
-
scheme
es el nombre del esquema. -
userauthparams
es una colección de valores de nombre de parámetros necesarios para la autenticación de usuario por el punto de conexión. -
hostinfoparams
es la información necesaria para establecer la conexión con el host; por ejemplo, nombre del servidor, número de puerto, etc. -
query_string
es una colección opcional name-value de parámetros delimitados por un signo de interrogación (?).
El URI de conexión del adaptador de base de datos de Oracle cumple este formato básico y se implementa de la siguiente manera:
oracledb://[SERVER_ADDRESS]:[PORT_NUMBER]/[SERVICE_NAME]/[SERVICE_TYPE]?PollingId=[POLLING_ID]
O bien, en escenarios más avanzados:
oracledb://User=[USER_NAME];Password=[PASSWORD]@[SERVER_ADDRESS]:[PORT_NUMBER]/[SERVICE_NAME]/[SERVICE_TYPE]?PollingId=[POLLING_ID]
En la tabla siguiente se explican las propiedades contenidas en el URI de conexión:
Propiedad URI de conexión | Category | Descripción |
---|---|---|
[USER_NAME] | userauthparams | Nombre de usuario que se va a usar para la autenticación en la base de datos de Oracle; por ejemplo, SCOTT. Debe establecer la propiedad de enlace AcceptCredentialsInUri en true para especificar el nombre de usuario y la contraseña en el URI de conexión. La propiedad de enlace AcceptCredentialsInUri no está disponible en la pestaña Enlace de BizTalk Server. Nota El adaptador de base de datos de Oracle conserva el caso del valor especificado para el nombre de usuario cuando abre una conexión en la base de datos de Oracle. Los nombres de usuario de la base de datos de Oracle distinguen mayúsculas de minúsculas. Debe asegurarse de proporcionar nombres de usuario de Oracle al adaptador de Oracle Database en el caso esperado por la base de datos de Oracle. Normalmente, esto significa que el nombre de usuario de la credencial SCOTT/TIGER debe ser mayúscula: "SCOTT". |
[CONTRASEÑA] | userauthparams | Contraseña que se va a usar para la autenticación en la base de datos de Oracle; por ejemplo, TIGER. Debe establecer la propiedad de enlace AcceptCredentialsInUri en true para especificar el nombre de usuario y la contraseña en el URI de conexión. La propiedad de enlace AcceptCredentialsInUri no está disponible en la pestaña Enlace de BizTalk Server. Nota El adaptador de base de datos de Oracle conserva el caso del valor especificado para la contraseña cuando abre una conexión en la base de datos de Oracle. En el caso de la versión 10g y anteriores, las contraseñas del sistema Oracle no distinguen entre mayúsculas y minúsculas. |
[SERVER_ADDRESS] | hostinfoparams | Nombre o dirección IP del servidor en el que se ejecuta la base de datos de Oracle. Esto es obligatorio si usa este tipo de conectividad. |
[PORT_NUMBER] | hostinfoparams | Puerto del agente de escucha de Oracle Net. Si no se especifica ningún valor, el adaptador toma el valor predeterminado 1521. |
[SERVICE_NAME] | hostinfoparams | Nombre del servicio de base de datos de Oracle. Esto es obligatorio si usa este tipo de conectividad. |
[SERVICE_TYPE] | hostinfoparams | Tipo de servicio de Oracle. Los valores posibles son Dedicado o Compartido. Un servicio dedicado usa un proceso de servidor dedicado para atender solo un proceso de usuario. Un servicio compartido usa un proceso de servidor compartido que puede atender varios procesos de usuario. De manera predeterminada es Dedicado. |
[POLLING_ID] | query_string | Cadena opcional que el adaptador debe anexar al espacio de nombres estándar de la operación POLLINGSTMT. Esto le permite especificar un espacio de nombres único para cada operación de sondeo cuando un proyecto contiene varias operaciones de sondeo. No es necesario especificar una cadena PollingId si el proyecto contiene solo una operación POLLINGSTMT. |
Nota
Los parámetros de consulta también se usan en el URI de conexión cuando se especifica una dirección de punto de conexión para un cliente de Exchange de metadatos de WCF.
Credenciales de base de datos de Oracle y el URI de conexión
De forma predeterminada, el adaptador de Oracle Database produce una excepción cuando se especifican las credenciales de la base de datos de Oracle en el URI de conexión. Esto se debe a que estas credenciales se representan como texto sin formato en el URI de conexión y esto supone un riesgo de seguridad. Puede establecer la propiedad de enlace AcceptCredentialsInUri para controlar si el URI de conexión puede contener credenciales para la base de datos de Oracle. Si la propiedad AcceptCredentialsInUri es false, el adaptador de Oracle Database produce una excepción si el URI de conexión contiene credenciales de base de datos de Oracle; Si la propiedad es true, no se produce ninguna excepción.
Hay algunos escenarios limitados en los que es necesario especificar las credenciales en el URI de conexión. Por ejemplo, para recibir la operación POLLINGSTMT entrante cuando se usa el modelo de servicio WCF o el modelo de canal WCF. Sin embargo, en la mayoría de las situaciones, debe evitar proporcionar credenciales en el URI de conexión. Para obtener más información sobre cómo proporcionar credenciales de forma más segura para la base de datos de Oracle, consulte Protección de las aplicaciones de Oracle Database.
Importante
Debido a los riesgos de seguridad que supone pasar credenciales en cadenas como texto sin formato, debe evitar especificar las credenciales de conexión de base de datos de Oracle en el URI de conexión.
Uso de caracteres reservados en el URI de conexión
El adaptador de Oracle Database no admite la especificación de un URI de conexión que tenga caracteres especiales para ninguno de los valores de parámetro. Si los valores del parámetro de conexión contienen caracteres especiales, asegúrese de realizar una de las siguientes acciones:
Si va a especificar el URI en Visual Studio mediante agregar complemento de referencia de servicio de adaptador o consumir complemento de servicio de adaptador, debe especificarlos tal como está en la pestaña Propiedades del URI , es decir, sin usar caracteres de escape. Si especifica el URI directamente en el campo Configurar un URI y los parámetros de conexión contienen caracteres reservados, debe especificar los parámetros de conexión mediante caracteres de escape adecuados.
Si va a especificar el URI al crear un puerto de envío o recepción en BizTalk Server consola de administración y los parámetros de conexión contienen caracteres reservados, debe especificar los parámetros de conexión mediante caracteres de escape adecuados.
Uso del URI de conexión para conectarse a la base de datos de Oracle
A continuación se muestra un ejemplo de un URI de conexión para el adaptador de oracle Database.
Uso de tnsnames.ora | Sin usar tnsnames.ora |
---|---|
oracledb://ADAPTER En este ejemplo, ADAPTER es un nombre de servicio neto asociado con el NOMBRE DEL SERVICIO y la información de conexión de la base de datos de Oracle de destino en tnsnames.ora. |
oracledb://yourOracleServer:1521/yourOracleDatabaseServiceName/Dedicated En este ejemplo, el nombre del servidor es "yourOracleServer" y el nombre del servicio es "yourOracleDatabaseServiceName". |
A continuación se muestra un ejemplo de un URI de conexión para una operación POLLINGSTMT. Este URI incluye un parámetro PollingId para modificar el espacio de nombres de la operación POLLINGSTMT.
Uso de tnsnames.ora | Sin usar tnsnames.ora |
---|---|
oracledb://ADAPTER?PollingId=MyPollingNotification1 |
oracledb://yourOracleServer:1521/yourOracleDatabaseServiceName/Dedicated? PollingId=MyPollingNotification1 |
Para los URI de conexión anteriores, el adaptador de base de datos de Oracle crea el siguiente espacio de nombres para la operación POLLINGSTMT.
http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTMyPollingNotification1
Para obtener información sobre cómo establecer una conexión a la base de datos de Oracle cuando:
Use el complemento Consumir servicio de adaptador de BizTalk Project o el complemento Agregar referencia de servicio de adaptador de Visual Studio, vea Conectarse a oracle Database en Visual Studio mediante el servicio Consumir adaptador.
Configure un puerto de envío o un puerto de recepción (ubicación) en una solución de BizTalk Server, consulte Configuración manual de un enlace de puerto físico al adaptador de base de datos de Oracle.
Use el modelo de canal WCF en una solución de programación; consulte Creación de un canal mediante Oracle Database.
Use el modelo de servicio WCF en una solución de programación. Consulte Configuración de un enlace de cliente para oracle Database.
Use la Herramienta de utilidad de metadatos serviceModel de WCF (svcutil.exe), vea Usar la herramienta de utilidad de metadatos ServiceModel con el adaptador de BizTalk para la base de datos de Oracle.
Consulte también
Crear una conexión a la base de datos de Oracle
Configuración del cliente de Oracle para el adaptador de base de datos de Oracle