Drivers JDBC más utilizados
La que sigue es una lista de drivers JDBC usados con mayor frecuencia. Para cada uno se especifica el nombre de la clase y la sintaxis para su URL jdbc.
Importante: Recordar cómo se divide la URL jdbc para colocarla en la definición de la conexión en O3Designer.
Dada la url jdbc:<sub-protocol>:<driver & database specific parameters>, luego en el panel de conexión se coloca lo siguiente:
Protocolo: <sub-protocol>
Parámetros: <driver & database specific parameters>
Por ejemplo, la url de MySql jdbc:mysql://{hostIP | hostName}:port/database se dividiría así:
Protocolo: mysql
Parámetros: //{hostIP | hostName}:port/database
Para conocer mas en detalle cómo definir conexiones a otras Bases de Datos recomendamos consultar el documento que se adjunta a esta página (solo disponble versión en inglés).
ORACLE
Clase: | oracle.jdbc.driver.OracleDriver |
---|---|
URL: | jdbc:oracle:thin:@{hostIP | hostName}:port:SID |
Default port: 1521
Ejemplo en O3Designer:
Cambio en driver de Oracle
A partir de la versión del driver para Oracle 11, no existe más la clase oracle.jdbc.driver.OracleDriver.
Se debe usar la clase oracle.jdbc.OracleDriver en su lugar.
Los drivers para la version 10g ya traen las 2 versiones de la clase, asi que se debe hacer el cambio desde ahora.
Problemas con el idioma del puesto cliente al conectarse a Oracle
Hemos experimentado inconvenientes al chequear la conexión a Oracle desde O3Studio, utilizando el driver ojdbc14.jar. El problema se visualiza a través del siguiente error: "ORA-00604 "error ocurred at recursive SQL leel"... ORA-12705 "cannot access NLS data files or invalid environment".
Otra situación donde es necesario aplicar la misma solución se detectó en consultas SQL utilizando driver ojdbc6 sobre Oracle 11g, en las cuales no se resuelven las conversiones numéricas y se visualiza el siguiente error: "ORA-01722: número no válido".
Solución: Modificar el Regional Setting en el puesto cliente, seteando Estándares y Formatos: Inglés (Estados Unidos) y Ubicación: Estados Unidos. Por ejemplo, indicando -Duser.language=en -Duser.region=US en las componentes de O3Studio.
Problemas con la zona horaria del puesto cliente al conectarse a Oracle
Hemos experimentado inconvenientes al chequear la conexión o verificar un modelo desde O3Studio, utilizando diferentes driver. El problema se visualiza a través del siguiente error: "ORA-01882: timezone region not found".
Solución: Sí los componentes O3Designer, y O3Builder se ejecutan utilizando los archivos .exe, se debe agregar la siguiente property en los archivos Designer.lax, Builder.lax (versiones <= 5.3), o Designer.vmoptions, Builder.vmoptions (versiones >= 5.4):
-Duser.timezone="GMT-3"
Sí se ejecutan utilizando los archivos .sh, se deben editar (designer.sh, builder.sh) y agregar la siguiente property:
PROPERTIES="$PROPERTIES -Duser.timezone=GMT-3"
Sí se ejecutan utilizando los archivos .bat, se deben editar (Designer.bat, Builder.bat) y agregar la siguiente property:
set PROPERTIES=%PROPERTIES% -Duser.timezone=GMT-3
Oracle OCI
Configurar Driver OCI de Oracle
Para reemplazar el driver JDBC por el driver OCI de Oracle se debe realizar lo siguiente:
Agregar el directorio a una variable de entorno de nombre TNS_ADMIN
el contenido del archivo debe ser
1 2 3 4 5 6 7 | ALIAS_NAME = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = @hostname ) (PORT = @port )) ) (CONNECT_DATA = (SERVICE_NAME = @service_name ) ) ) |
Donde:
ALIAS_NAME es un nombre que se utiliza en el string de conexión
@hostname es la dirección de la base de datos
@port es el puerto donde escucha la base de datos (por defecto 1521)
@service_name es el nombre del servicio de la base de datos
Para configurar el pool de conexiones en el servidor de aplicaciones OC4J utilizar la cadena de conexión
jdbc:oracle:oci:@ALIAS_NAME
o también es posible con
jdbc:oracle:oci:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=@hostname)
(PORT= @port))
(CONNECT_DATA=(SERVICE_NAME=@service_name)))
A configurar en O3:
Para generar los cubos es necesario crear una carpeta en: %IDEASOFT_HOME%\classes\jdbc\lib, en esta carpeta agregar las dll's de Oracle indicadas según la versión el motor en uso y modificar el archivo settings.bat(windows), la linea:
set PROPERTIES=%PROPERTIES% -Djava.library.path=%IDEASOFT_HOME%\classes\bin;%IDEASOFT_HOME%\classes\bin64
por
set PROPERTIES=%PROPERTIES% -Djava.library.path=%IDEASOFT_HOME%\classes\bin;%IDEASOFT_HOME%\classes\bin64;%IDEASOFT_HOME%\classes\jdbc\lib
Bajar las dll OCI necesarias del siguiente link(windows), sino bajar los drivers correspondientes desde el siguiente enlace: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Copiar los driver bajados en el paso anterior en la ruta correspondiente, creada para tal fin.
Nota: Esta es toda la información que se tiene para realizar la conexión con OCI, no hay antecedentes de este tipo de configuraciones en clientes hasta el momento.
INFORMIX
Clase: | com.informix.jdbc.IfxDriver |
---|---|
URL: | jdbc:informix-sqli://{hostIP | hostName}:port[/database]:INFORMIXSERVER=serverName;[user=user;password=password][;name=value[;name=value]...] |
Default port: 1533
Ejemplo en O3Designer:
Driver: | com.informix.jdbc.IfxDriver |
---|---|
Protocolo: | informix-sqli |
Parámetros: | //{hostIP | hostName}:port[/database]:INFORMIXSERVER=serverName;[user=user;password=password][;name=value[;name=value]...] |
Microsoft SQL-SERVER
(Si la conexion es con Certificado leer el siguiente wiki)
SQL-SERVER 2000 y 2005
La informacion siguiente es para el driver distribuido con O3, implementado por el archivo sqljdbc-1.0.809.102.jar, ubicado en el directorio <O3>\classes\jdbc.
Clase: | com.microsoft.sqlserver.jdbc.SQLServerDriver |
---|---|
URL: | jdbc:sqlserver://{hostIP | hostName}[;DatabaseName =value[;property=value]...] |
Default port: 1433
Ejemplo en O3Designer:
La informacion siguiente es para el driver distribuido por Microsoft, que consiste en los archivos msbase.jar, mssqlserver.jar y msutil.jar (deben estar instalados en <O3>\classes\jdbc).
Clase: | com.microsoft.jdbc.sqlserver.SQLServerDriver |
---|---|
URL: | jdbc:microsoft:sqlserver://{hostIP | hostName}[;DatabaseName =value[;property=value]... |
Default port: 1433
Ejemplo en O3Designer:
Driver: | com.microsoft.sqlserver.jdbc.SQLServerDriver |
---|---|
Protocolo: | microsoft:sqlserver |
Parámetros: | //{hostIP | hostName}[;DatabaseName =value[;property=value]... |
Clase: | connect.microsoft.MicrosoftDriver |
---|---|
URL: | jdbc:ff-microsoft://{hostIP | hostName}:port/database |
Ejemplo en O3Designer:
Driver: | connect.microsoft.MicrosoftDriver |
---|---|
Protocolo: | ff-microsoft |
Parámetros: | //{hostIP | hostName}:port/database |
Conexión a instancia
En caso de tener que definir conexión a una instancia particular del servidor de base de datos, la sintaxis de parámetros es la siguiente:
//{hostIP | hostName}\instanceName[;DatabaseName =value[;property=value]...
Notar que se omite el puerto.
Si el string de conexión se debe definir en un archivo de properties, la \ antes del instanceName debe ser doble: \\instanceName
Por defecto SQL Server 2005 Express no tiene conectividad por TCP/IP disponible luego de la instalación. Es necesario ir al SQL Server Configuration Manager. Bajo SQL Server 2005 Network Configuration, click en Protocols for SQLEXPRESS, click on TCP/IP para dejarlo disponible.
Para configurar un puerto en particular y deshabilitar la asignación dinámica, se debe ir al nodo TCP/IP, botón derecho sobre "IPAll" y abrir sus Propiedades. Se deja en blanco el valor de "TCP Dynamic Ports" y se adjudica el "TCP Port" al puerto que se crea conveniente. Lo más usual es utilizar el puerto 1433 ó el puerto 1593.
Reiniciar el servicio de BD para que los cambios tomen efecto
JTurbo
Clase: | com.ashna.jturbo.driver.Driver |
---|---|
URL: | jdbc:JTurbo://{hostIP | hostName}:port/database |
Ejemplo en O3Designer:
Driver: | com.ashna.jturbo.driver.Driver |
---|---|
Protocolo: | JTurbo |
Parámetros: | //{hostIP | hostName}:port/database |
Inetdae
Clase: | com.inet.tds.TdsDriver |
---|---|
URL: | jdbc:inetdae://{hostIP | hostName}:port?database=database |
Ejemplo en O3Designer:
Driver: | com.inet.tds.TdsDriver |
---|---|
Protocolo: | inetdae |
Parámetros: | //{hostIP | hostName}:port?database=database |
MySQL
Clase: | com.mysql.jdbc.Driver |
---|---|
URL: | jdbc:mysql://{hostIP | hostName}:port/database |
Default port: 3306
Driver
El licenciamiento del driver no permite distribución con productos comerciales por lo que debe descargarse su versión correspondiente.
Ejemplo en O3Designer:
Tips para MySQL
Autollenado de campos
En el caso de utilizar versiones de MySQL donde el autollenado de los campos no resuelve los alias definidos en las consultas, se sugiere agregar el parámetro useOldAliasMetadataBehavior con valor verdadero como parte de la URL de conexión.
Ejemplo: hostName:3306/DataBase?useOldAliasMetadataBehavior=true
Configuración de la conexión por consumo de memoria en el builder.
Ver las recomendaciones al momento de definir la conexión en el siguiente How To
MariaDB
Clase: | com.mysql.jdbc.Driver |
---|---|
URL: | jdbc:mariadb://{hostIP | hostName}:port/database |
Default port: 3360
Ejemplo en O3Designer:
Driver
El licenciamiento del driver no permite distribución con productos comerciales por lo que debe descargarse su versión correspondiente.
Essentia
Clase: | intersoft.jdbc.EssentiaDriver |
---|---|
URL: | jdbc:essentia://{hostIP | hostName}:port/schema |
Default port: 1700
Ejemplo en O3Designer:
Driver: | intersoft.jdbc.EssentiaDriver |
---|---|
Protocolo: | essentia |
Parámetros: | //{hostIP | hostName}:port/schema |
POSTGRES
Clase: | com.postgresql.Driver |
---|---|
URL: | jdbc:postgresql://{hostIP | hostName}:port[/database] |
Default port: 5432
Ejemplo en O3Designer:
Driver: | com.postgresql.Driver |
---|---|
Protocolo: | postgresql |
Parámetros: | //{hostIP | hostName}:port[/database] |
Caso especial: PIQL (driver postgres-ideafix), el driver es el de postgres con la única diferencia que se publica puerto por defecto en el puerto 7120
Para el uso de un gran volumen de registros se recomienda pasarle dos parámetros al driver para una mayor eficiencia y performance (consulta se consuma en un cursor): Autocommit OFF y un FetchSize mayor a 0 en las opciones Avanzadas de la definción de la conexión
DB2 as400
Clase: | com.ibm.as400.access.AS400JDBCDriver |
---|---|
URL: | jdbc:as400://{hostIP | hostName}/libreria |
Ejemplo en O3Designer:
Driver: | com.ibm.as400.access.AS400JDBCDriver |
---|---|
Protocolo: | as400 |
Parámetros: | //{hostIP | hostName}/libreria |
DB2 UDB
Clase: | com.ibm.db2.jcc.DB2Driver |
---|---|
URL: | jdbc:db2://{hostIP|hostName}:port/database |
Default port: 50000
Ejemplo en O3Designer:
Driver: | com.ibm.db2.jcc.DB2Driver |
---|---|
Protocolo: | db2 |
Parámetros: | //{hostIP|hostName}:port/database |
RELATIVITY
Clase: | relativity.jdbc.Driver |
---|---|
URL: | jdbc:relativity://{hostIP | hostName}:1583/ODBC |
Ejemplo en O3Designer:
NOTA IMPORTANTE:
Agregarle a builder.bat y designer.bat la siguiente linea:
set PROPERTIES=%PROPERTIES% -Do3.sql.useSystemProp=false
Si se va a correr los que estan en <o3>/bin ... agregarle la siguiente linea tanto a Designer.lax como a Builder.lax:
o3.sql.useSystemProp=false
En GNU/Linux, UNIX, AIX (entre otros) a los builder.sh, designer.sh :
PROPERTIES="$PROPERTIES -Do3.sql.useSystemProp=false"
Service Pack para Relativity 11.00
FIREBIRD
Clase: | org.firebirdsql.jdbc.FBDriver |
---|---|
URL: | jdbc:firebirdsql://{hostIP|hostName}:port/path_to_database |
Default port: 3050
Ejemplo en O3Designer:
Driver: | org.firebirdsql.jdbc.FBDriver |
---|---|
Protocolo: | firebirdsql |
Parámetros: | //{hostIP|hostName}:port/path_to_database |
SQLITE
Clase: | org.sqlite.JDBC |
---|---|
URL: | jdbc:sqlite:path_to_database |
Ejemplo en O3Designer:
Driver: | org.sqlite.JDBC |
---|---|
Protocolo: | sqlite |
Parámetros: | C:\SQLite\SampleDB.db |
PERVASIVE
Clase: | com.pervasive.jdbc.v2.Driver |
---|---|
URL: | jdbc:pervasive://{HOST}:{PORT}/{DB} |
Ejemplo en O3Designer:
Driver: | com.pervasive.jdbc.v2.Driver |
---|---|
Protocolo: | pervasive |
Parámetros: | //192.168.0.1:1583/bddatos |
FoxPro (FoxPro, Visual FoxPro, FoxBase, Clipper)
Clase: | jstels.jdbc.dbf.DBFDriver2 |
---|---|
URL: | jdbc:jstels:dbf:c:/mydir/dbffiles |
Ejemplo en O3Designer:
Driver: | jstels.jdbc.dbf.DBFDriver2 |
---|---|
Protocolo: | jstels |
Parámetros: | dbf:c:/mydir/dbffiles |
Driver Modes
There are two main modes StelsEngine can run in: the mode with data caching and the mode with data swapping. Running in the first mode (default mode), the driver stores all tables in the RAM making it possible to achieve maximum performance. Keep in mind that Java Virtual Machine must have enough free memory allotted for storing large tables (use -Xms and -Xmx JVM options).
The second mode can be used to process large tables which cannot be fully stored in the RAM. To use this mode, set the driver property caching to false. There are also some properties for configuring this mode:
tempPath - directory where temporary files will be created (by default it is a OS temporary directory, specified by JVM environment variable "java.io.tmpdir").
maxRecordsInMemoryPerTable is used to define how many records should be saved in the RAM for each table (by default - 5000 records).
maxSwapStringSize - default size for string columns in swap files (by default - 50 characters).
Ejemplo de uso de parámetros en el string de conexión: dbf:c:/mydir/dbffiles?caching=false
Ingres
Clase: | com.ingres.jdbc.IngresDriver |
---|---|
URL: | jdbc:ingres://{hostIP|hostName}:port/database |
Default port: II7
Ejemplo en O3Designer:
Driver: | com.ingres.jdbc.IngresDriver |
---|---|
Protocolo: | ingres |
Parámetros: | //localhost:II7/demodb;auto=multi |
Asegurarse que la base de datos tenga el Data Access Server (DAS) habilitado.
Access
Crear ODBC del sistema que apunte a el archivo de access
Ejemplo en O3Designer:
Driver: | sun.jdbc.odbc.JdbcOdbcDriver |
---|---|
Protocolo: | odbc |
Parámetros: | "Nombre ODBC" |
Accediendo archivos DBF y EXCEL
Ver notas en sección HowTo Accediendo archivos DBF y Excel