ERROR en Oracle Application Server 10g - The requested instance is either invalid or not running (SQL Server Express 2005 & Windows Server 2003 )


Error :

Unable to establish connection. Error message: Exception occurred testing connection. Exception:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]The requested instance is either invalid or not running

Este error ocurre al probar una conexion sobre una base de datos SQL Server Express 2005.












La solucion a este problema es

1.- Descargar Microsoft SQL Server JDBC Driver 2.0
2.- Copiar los archivos en el directorio [DirInstall]\j2ee\oc4j_soa\applib
3.- Reiniciar el Oracle Application Server

[DirInstall]\opmn\bin opmnctl stopall

[DirInstall]\opmn\bin opmnctl startall


Creamos el pool de conexion son los siguientes parametros.

Connection Factory Class : com.microsoft.sqlserver.jdbc.SQLServerDriver
URL: jdbc:sqlserver://[server]\[instancia]:[port];databaseName=[db]


Probamos de nuevo la conexion y deberá funcionar correctamente.









Crear Application Server Connection on Jdeveloper (Mac or Windows)


Abrimos nuestro jdeveloper , nos vamos a la seccion de Connections - Aplication Server , boton derecho - Create New Aplication Server Connection y seguimos el asistente.


Connection name : OAServerConexionTest
Connection Type : Oracle Application Server 10g 10.1.3

UserName: oc4juser
Password : password
DeployPassword : Checked

Host Name : myOASTest.com [Nombre del host donde se encuentra el Oracle Application Server]
OC4J Instance Name : oc4jdefault [El nombre de la instancia OC4J que se desee usar para el deploy del servicio]
OPMN PORT : 6003










































Procedemos a probar nuestra conexion.














Y listo ya tenemos configurado nuestro Application Server Connection

Crear Conexion MS SQL SERVER en Oracle SOA Suite 10.1.3.3.0 (MS Windows Server 2003)

Primero que nada debemos copiar los siguientes archivos msbase.jar, msutil.jar, mssqlserver.jar en el directorio
[soasuiteinstall]\j2ee\oc4j_soa\applib















Hay que reiniciar la instancia oc4j_soa , para que se puedan leer las librerias.

Despues debemos obtener los parametros que corresponden a la conexion a la base de datos , los cuales podemos obtener apartir del algun servicio web que vayamos a deployar en nuestro Oracle Application Server y que use dicha conexion.















location="eis/DB/sqlconexion"
UIConnectionName="sqlconexion" mcf.PlatformClassName="oracle.toplink.internal.databaseaccess.Oracle9Platform" mcf.ConnectionString="jdbc:sqlserver://[server]\[instancia];databasename=Mydb"


Ahora si procedemos a configurar la conexion a SqlServer en nuestro OAS.


1.-Crear Conexion Factory.

Acesamos a nuestro Oracle SOA Suite y seleccionamos Application Server Control






















Despues seleccionamos la instancia OC4J














OC4J - MODULES - DbAdapter , y procedemos a crear una nueva Conexion Factory.



































Aqui procedemos a capturar los valores para la Conexion Factory

dataSourceName= ""
defaultNChar= false platformClassName=oracle.toplink.internal.databaseaccess.Oracle9Platform
sequencePreallocationSize=50
usesBatchWriting=true
usesNativeSequencing=true
xADataSourceName=jdbc/sqlconexion
[Nombre de la conexion obtenida del WSDL que genera el JDeveloper]













Damos aceptar y ya esta lista nuestra Conexion Factory.


2.- Crear Pool de Conexion.


Nos vamos a nuestra instancia OC4J - Administracion - JDBC Resources














Vamos a la seccion de Connection Pools - despues oprimimos Create.












Aqui seleccionamos la aplicacion para la cual vamos a crear el pool de conexion.En este caso orabpel.












Procedemos a capturar los parametros de la conexion.

Name:
sqlconexion_pool
Connection Factory Class : com.microsoft.jdbc.sqlserver.SQLServerDriver
URL:
jdbc:sqlserver://[server]\[instancia];databasename=Mydb
username : usuario
password : password















Procedemos a realizar un test de la conexion y el resultado debe ser que la conexion tuvo exito.









3.- Crear DataSource asociado a un Pool de Conexion

De igual forma nos vamos a Nos vamos a nuestra instancia OC4J - Administracion - JDBC Resources - DataSource y Create

Aplicacion : orabpel
DataSource Type : Managed DataSource











Y procedemos a capturar los datos para nuestro DataSource.

Name : sqlconexion

JNDI Location : jdbc/sqlconexion

Transaction Level : Global & Transactions
Connection Pool : sqlconexion_pool












Procedemos a verificar que nuestra conexion se haya realizado de forma correcta.



Crear una conexion MS SQl Sever 2000 con Jdeveloper 10.1.3.4 (Mac or Windows)

Antes de proceder a realizar la conexion en Jdeveloper , es necesario copiar el archivo sqljdbc.jar en los siguientes directorios

Windows :
[jdevstudio]\jdk\jre\lib\ext
[jdevstudio]\j2ee\home\applib

Mac Os x :
/system/library/Frameworks/JavaVM.framework/versions/1.5.0/home/lib/ext


Una vez hecho esto procedemos a configurar la base de datos en Jdeveloper.

1-Abrimos nuestra pestaña Connections y damos boton derecho en Database,seleccionamos NewDatabase Connection.














Seguimos el asistente y empezamos a configurar nuestra conexion, los datos necesarios para poder realizar la conexion , son :

usuario: myuser
password: password
JNDI : jdbc:sqlserver://myserver\instancia;databasename=mydb
Connection Type : Third Party JDBC Driver
DriverClass : com.microsoft.sqlserver.jdbc.SQLServerDriver
library name : sqljdbc
Classpath :

Windows
[jdevstudio]\j2ee\home\applib
Mac Os x
/system/library/Frameworks/JavaVM.framework/versions/1.5.0/home/lib/ext




























Aqui es donde tenemos que registrar nuestra clase para realizar la conexion.

Damos click en el boton Browse.















En la parte inferior izquierda damos click en el boton New para agregar una libreria de Usuario














el nombre de la libreria es sqljdbc y en el classpath seleccionamos dependiendo nuestro SO.

Windows
[jdevstudio]\j2ee\home\applib
Mac Os x
/system/library/Frameworks/JavaVM.framework/versions/1.5.0/home/lib/ext

y damos click en el boton OK.









































Aqui asignamos el DriverClass con com.microsoft.sqlserver.jdbc.SQLServerDriver













En la parte de URL asignamos nuestro JNDI jdbc:sqlserver://myserver\instancia;databasename=mydb














Procedemos a realizar el test y no debemos tener ningun problema.














Y listo ya tenemos nuestra conexion a SQL Server, si su necesidad es crear WebServices a partir de dicha conexion y Deployarlos en su OAS les mandara un error al momento de la ejecución, mas adelante publicaré la forma de configurarlo.