Configuración de la fuente de datos para Java cuando utiliza un servidor Web Apache Tomcat

Una fuente de datos es una conexión a una base de datos con nombre. Debe especificar una fuente de datos en el servidor de aplicaciones Web para publicar un servicio de entidades en ArcGIS Spatial Data Server para la plataforma Java. Por lo general, el objeto de la fuente de datos está configurado con un servicio de nomenclatura basado en la basado en la API de Java Naming and Directory Interface (JNDI)

Después de haber instalado y configurado Tomcat, haga lo siguiente para prepararlo para su uso con ArcGIS Spatial Data Server:

Coloque el controlador JDBC en el directorio de inicio de Tomcat

Debe ubicar el controlador JDBC de su DBMS en el directorio lib de $CATALINA_HOME.

Modificar el archivo context.xml de Tomcat

Si utiliza un servidor Web Apache Tomcat, debe especificar la fuente de datos en el archivo de configuración Web predeterminado: context.xml. Para editar context.xml, haga lo siguiente:

  1. Navegue hasta el directorio conf en el directorio de instalación de Tomcat.
  2. Realice una copia de seguridad del archivo context.xml.
  3. Abra el archivo context.xml en un editor de texto.
  4. Modifique la información en el elemento <Nombre del recurso> para trabajar en su sitio. (Se proporcionan ejemplos en este tema). El elemento <Nombre del recurso> se anida dentro del elemento <Contexto>.

    Puede haber otros elementos dentro del elemento <Contexto>, pero asegúrese de que el elemento <Nombre del recurso> se encuentre un nivel abajo del elemento <Contexto> y no anidado dentro de uno de los otros elementos.

  5. Guarde y cierre el archivo context.xml.
  6. Reinicie el servidor Tomcat.

Si no agrega la fuente de datos al archivo context.xml, o si usted no precede el atributo del elemento <Nombre del recurso> con jdbc/, recibirá el siguiente mensaje de error:

Name jdbc is not bound in this Context

Ejemplos

Los siguientes son ejemplos de una fuente de datos configurada en el archivo context.xml de Tomcat para cada una de las bases de datos compatibles. Hay ejemplos de dos tipos de grupos de conexión para cada base de datos: un grupo de conexión de base de datos (DBCP) y un grupo de conexión JDBC. En Apache se recomienda el grupo de conexión JDBC. Consulte la documentación de Apache Tomcat para obtener más información y una explicación de posibles atributos que puede utilizar en el elemento <Nombre del recurso>.

SugerenciaSugerencia:

Si va a configurar varias fuentes de datos, utilice nombres de fuente de datos que reflejan las propiedades de la fuente de datos. Por ejemplo, puede incluir el servidor, la base de datos y los nombres de usuario en el nombre de la fuente de datos. Esto le ayudará a identificar las fuentes de datos sin tener que buscar las propiedades en los archivos del servidor de aplicaciones Web o consolas.

PostgreSQL

El siguiente es un ejemplo del elemento <Recurso> de PostgreSQL que utiliza un DBCP. Los valores marcados con X indican información específica para el sitio que proporcionará.

<Context>     <Resource name="jdbc/X"                auth="Container"               type="javax.sql.DataSource"                driverClassName="org.postgresql.Driver"               url="jdbc:postgresql://X:X/X"               username="X"                password="X"                maxActive="X"                maxIdle="X"                maxWait="X"/> </Context>

En este ejemplo, el nombre del recurso es jdbc/pgservername y la fuente de datos es una base de datos de PostgreSQL (pgdbname) que está en línea en el puerto 5432 en servidor pgservername.

<Context>     <Resource name="jdbc/pgservername_pgdbname_pgusername"                auth="Container"               type="javax.sql.DataSource"                driverClassName="org.postgresql.Driver"               url="jdbc:postgresql://pgservername:5432/pgdbname"               username="pgusername"                password="pgpassword246"                maxActive="20"                maxIdle="10"                maxWait="-1"/> </Context>

El siguiente ejemplo es para la misma base de datos de PostgreSQL, pero utiliza un grupo de conexión JDBC:

<Context>      <Resource name="jdbc/pgservername_pgdbname_pgusername"                 factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"                 driverClassName="org.postgresql.Driver"                url="jdbc:postgresql://pgservername:5432/pgdbname"                 username="pgusername"                password="pgpassword246"                initialSize="20"                maxActive="80"                 maxIdle = "30"                 minIdle="20"                timeBetweenEvictionRunsMillis="30000"                minEvictableIdleTimeMillis="60000"                testOnBorrow="true"                validationQuery="SELECT 1"                 validationInterval="30000"                 removeAbandoned="true"                removeAbandonedTimeout="60"                 logAbandoned="true"                 abandonWhenPercentageFull="60"                jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer"/> </Context>

Oracle

El siguiente es un ejemplo del elemento <Recurso> para Oracle. Los valores marcados con X indican información específica para el sitio que proporcionará.

<Context>     <Resource name="jdbc/X"                auth="Container"               type="javax.sql.DataSource"                driverClassName="oracle.jdbc.OracleDriver"               url="jdbc:oracle:thin:@X:X:X"               username="X"                password="X"                maxActive="X"                maxIdle="X"               maxWait="X"/> </Context>

En este ejemplo, el nombre del recurso es jdbc/oraservername y la fuente de datos es una base de datos de Oracle en servidor oraservername que está en línea en el puerto de la base de datos 1521. El SID de Oracle es osid. El SID de Oracle se debe configurar antes de registrar la fuente de datos.

<Context>     <Resource name="jdbc/oraservername_osid_orausername"                auth="Container"               type="javax.sql.DataSource"                driverClassName="oracle.jdbc.OracleDriver"               url="jdbc:oracle:thin:@oraservername:1521:osid"               username="orausername"                password="0rapassword123"                maxActive="20"                maxIdle="10"               maxWait="-1"/> </Context>

El siguiente ejemplo es para la misma base de datos de Oracle, pero utiliza un grupo de conexión JDBC:

<Context>     <Resource name="jdbc/oraservername_osid_orausername"                factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"                driverClassName="oracle.jdbc.driver.OracleDriver"               url="jdbc:oracle:thin:@oraservername:1521:osid"                username="orausername"               password="0rapassword123"               initialSize="20"               maxActive="80"                maxIdle = "30"                minIdle="20"               timeBetweenEvictionRunsMillis="30000"               minEvictableIdleTimeMillis="60000"               testOnBorrow="true"               validationQuery="SELECT 1 FROM DUAL"                validationInterval="30000"                removeAbandoned="true"               removeAbandonedTimeout="60"                logAbandoned="true"                abandonWhenPercentageFull="60"               jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer"/> </Context>

DB2

El siguiente es un ejemplo del elemento <Recurso> para DB2. Los valores marcados con X indican información específica para el sitio que proporcionará.

<Context>     <Resource name="jdbc/X"                auth="Container"               type="javax.sql.DataSource"                driverClassName="com.ibm.db2.jcc.DB2Driver"               url="jdbc:db2://X:X/X"               username="X"                password="X"                maxActive="X"                maxIdle="X"               maxWait="X"/> </Context>

En este ejemplo, el nombre del recurso es jdbc/db2servername, el servidor DB2 es db2servername, el puerto de la base de datos es 60000 y la base de datos catalogada es db2dba.

<Context>     <Resource name="jdbc/db2servername_db2dba_db2username"                auth="Container"               type="javax.sql.DataSource"                driverClassName="com.ibm.db2.jcc.DB2Driver"               url="jdbc:db2://db2servername:60000/db2dba"               username="db2username"                password="db2password975"                maxActive="20"                maxIdle="10"               maxWait="-1"/> </Context>

El siguiente ejemplo es para la misma base de datos DB2, pero utiliza un grupo de conexión JDBC:

<Context>     <Resource name="jdbc/db2servername_db2dba_db2username"                factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"                driverClassName="com.ibm.db2.jcc.DB2Driver"               url="jdbc:db2://db2servername:60000/db2dba"                username="db2username"               password="db2password975"               initialSize="20"               maxActive="80"                maxIdle = "30"                minIdle="20"               timeBetweenEvictionRunsMillis="30000"               minEvictableIdleTimeMillis="60000"               testOnBorrow="true"               validationQuery="VALUES 1"                validationInterval="30000"                removeAbandoned="true"               removeAbandonedTimeout="60"                logAbandoned="true"                abandonWhenPercentageFull="60"               jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer"/> </Context>

Temas relacionados

9/11/2013