Конфигурация источника данных для Java при использовании веб-сервера Apache Tomcat
Источник данных представляет собой именованное подключение к базе данных. Чтобы опубликовать сервис объектов в ArcGIS Spatial Data Server for the Java platform, необходимо указать источник данных в сервере веб-приложений. Объект источника данных определяется с помощью сервиса наименований в интерфейсе наименований и каталогов Java Naming and Directory Interface (JNDI) API.
После установки и настройки Tomcat выполните следующие действия для его подготовки к использованию с ArcGIS Spatial Data Server:
Поместите драйвер JDBC в домашней директории Tomcat
Драйвер JDBC для вашей СУБД необходимо поместить в директорию lib $CATALINA_HOME.
Измените файл Tomcat context.xml
Если вы используете веб-сервер Apache Tomcat, вы должны указать источник данных в файле конфигурации по умолчанию, context.xml. Чтобы изменить context.xml, выполните следующие действия:
- Перейдите к директории conf в папке установки Tomcat.
- Создайте резервную копию файла context.xml.
- Откройте файл context.xml в текстовом редакторе.
- Измените информацию в элементе <Resource name> для работы с вашим сайтом. (Примеры были приведены в данном разделе.) Элемент <Resource name> вложен в элемент <Context>.
В <Context> могут быть другие элементы, но помните, что элемент <Resource name> на один уровень ниже элемента <Context> и он не вложен в другие элементы.
- Сохраните и закройте файл context.xml.
- Перезапустить сервер Tomcat.
Если ваш источник данных не добавлен в файл context.xml file, или перед атрибутом элемента <Resource name> не стоит jdbc/, вы получите следующее сообщение об ошибке:
Name jdbc is not bound in this Context
Примеры
Ниже приведены примеры конфигурации источника данных в файле Tomcat context.xml для каждой из поддерживаемых баз данных. Для каждой базы данных приведены примеры двух типов пулов подключений: пула подключений базы данных (DBCP) и пула подключений JDBC.

Apache рекомендует использовать пул подключений JDBC. Более подробно об этом и о атрибутах элемента <Resource name> см. в документации Apache Tomcat.
PostgreSQL
Ниже приведен пример элемента <Resource> для базы данных PostgreSQL, использующей DBCP. Значение, обозначенные символами X, указывают информацию, относящуюся к вашему сайту.
<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>
В этом примере ресурс называется jdbc/pgservername, а источником данных является база данных PostgreSQL (pgdbname), использующая порт 5432, на сервере 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>
В следующем примере показана та же база данных PostgreSQL, но использующая пул подключений JDBC:
<Context> <Resource type="javax.sql.DataSource" 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="0" 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
Ниже приведен пример элемента <Resource> для Oracle. Значение, обозначенные символами X, указывают информацию, относящуюся к вашему сайту.
<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>
В этом примере ресурс называется jdbc/oraservername, а источником данных является база данных Oracle на сервере oraservername, использующая порт базы данных 1521. Идентификатором Oracle SID является osid. До регистрации источника данных нужно настроить Oracle SID.
<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>
В следующем примере показана та же база данных Oracle, но использующая пул подключений JDBC:
<Context> <Resource type="javax.sql.DataSource" 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="0" 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
Ниже приведен пример элемента <Resource> для DB2. Значение, обозначенные символами X, указывают информацию, относящуюся к вашему сайту.
<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>
В этом примере имя ресурса – jdbc/db2servername, сервер DB2 – db2servername, порт базы данных – 60000, база данных в каталоге – 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>
В следующем примере показана та же база данных DB2, но использующая пул подключений JDBC:
<Context> <Resource type="javax.sql.DataSource" 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="0" 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>