IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Information Management | WebSphere  >

Используйте IBM Cloudscape с WebSphere Application Server Community Edition

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: простой

Нелл Гэвор (Nell Gawor), инженер-консультант, IBM
Лин Сун (Lin Sun), инженер-консультант, IBM

09.02.2006

Прочитав эту статью, вы научитесь: настраивать IBM Cloudscape™, использовать инструмент ij для работы со встроенной базой данных, выбирать адаптер ресурсов, выполнять настройку и размещение пула соединений базы данных, а также настраивать удаленную базу данных IBM Cloudscape. Эта статья показывает, как использовать IBM Cloudscape в среде WebSphere® Application Server Community Edition.

Введение

Сервер приложений IBM WebSphere Application Server Community Edition (Community Edition) включает модуль Derby для внутреннего использования (дополнительную информацию о различиях между Derby и IBM Cloudscape можно найти на боковой панели). Ваши приложения Java 2 Platform, Enterprise Edition (J2EE)™ также могут использовать встроенную Derby, которая в данной статье называется встроенной формой Derby. Вместо установки и настройки внешней базы данных можно хранить данные приложений во встроенной базе данных.

В статье объясняется, как настроить встроенный модуль Derby, создать собственные базы данных и заполнить их данными. Вы научитесь настраивать источники данных и пулы соединений базы данных и устанавливать соединение ваших приложений с данными, а также узнаете, как выбрать правильный адаптер ресурсов для соединения. И наконец, в статье рассматривается, как установить соединение приложений J2EE, выполняющихся в среде Community Edition, с удаленными серверами Derby Network, если механизм встроенной базы данных не отвечает вашим потребностям.

Различия между Derby и IBM Cloudscape

По функциональности Derby и IBM Cloudscape практически не имеют отличий. По существу, у них один механизм базы данных. Различия заключаются в том, что IBM Cloudscape предоставляет дополнительные функции, среди которых поддержка, документация, программы-установщики и примеры. В этой статье речь идет, в основном, о Derby, за исключением конкретных ссылок на пакет программного обеспечения IBM.

Настройка Derby в Community Edition

Директории и файлы, относящиеся к Derby

В Community Edition есть два компонента GBeans, относящихся кDerby: один из них - DerbySystemGBean, который представляет собой экземпляр системы Apach Derby (системы, являющейся набором различных баз данных). Другой компонент, DerbyNetworkGBean, управляет удаленным сетевым доступом к встроенному серверу Derby. Кроме DerbySystemGBean и DerbyNetworkGBean, существуют и другие JAR-файлы, относящиеся к Derby.

  • JAR-файлы, относящиеся к Derby: wasce_home\repository\org.apache.derby\jars содержит все JAR-файлы Derby; wasce_home - установочный каталог Community Edition;
  • var\derby directory: системный каталог Derby (derby.system.home). По умолчанию этот каталог содержит файл derby.log и каталог SystemDatabase. При создании новой базы данных создается новый каталог с именем вновь созданной базы данных;
  • Файл system-database-plan.xml: содержит конфигурацию модуля org/apache/geronimo/SystemDatabase, в том числе конфигурацию DerbySystemGBean и DerbyNetworkGBean, а также конфигурацию адаптера ресурсов SystemDatabase.

Использование файла config.xml для изменения рабочего порта Derby Network Server

По умолчанию Network Server слушает порт 1527 при запуске Community Edition. Если возникает конфликт портов, то, возможно, придется изменить порт по умолчанию. Измените конфигурацию SystemDatabase в файле config.xml. В следующем примере показано, как изменить порт по умолчанию на порт 1528.


Листинг 1: Настройка SysteDatabase в config.xml

			
...
<configuration name="org/apache/geronimo/SystemDatabase">
    <gbean name="DerbyNetwork">
        <attribute name="host">0.0.0.0</attribute>
        <attribute name="port">1528</attribute>
    </gbean>
</configuration>
...
	

После изменения config.xml, необходимо перезагрузить сервер, чтобы изменения пришли в действие. Если вы планируете использовать сценарии ij, предоставляемые Community Edition, вам нужно изменить также порт IJ_PORT, который вы задали выше в файлах wasce_home\bin\ij.bat и ij.sh.

Использование файла derby.properties

Для дальнейшего управления работой механизма базы данных Derby поместите файл derby.properties в каталог wasce_home\var\derby, где wasce_home - установочный каталог Community Edition. Далее приводится пример файла derby.properties который задействует функцию журналирования состояния с записью в файл derby.log. Если значение свойства true, Derby записывает в информационный журнал текст и значения параметров всех выполняемых предложений. Программа также записывает информацию о подтверждениях и откатах, включая время и номер потока. Это свойство полезно для отладки.



Листинг 2: Пример свойств Derby
		
derby.language.logStatementText=true

Дополнительную информацию о том, как настроить файл derby.properties, смотрите по ссылке страница Derby Properties, которую ведет Apache Derby.



В начало


Использование инструмента ij для работы со встроенной базой данных

Для создания, просмотра и манипуляций с данными в базе Derby можно использовать инструмент ij, интерактивный инструмент создания сценариев Derby. Этот инструмент можно использовать с любой базой данных Derby, включая встроенную базу данных среды Community Edition. Используя ij, можно обращаться к нескольким функциям JDBC,™ среди которых возможность просматривать существующие базы данных и таблицы, создавать и удалять эти ресурсы и вносить в них данные. Поскольку консоль администрирования предоставляет только "Technical Preview" (технический предварительный просмотр), инструмент ij является единственным поддерживаемым методом работы со встроенным модулем Derby.

Для удобства пользователей Community Edition предоставляет сценарии для правильной настройки среды ij как в Windows,® так и в Linux® до запуска инструмента. Наряду с некоторыми другими функциями эти сценарии обеспечивают включение всех необходимых JAR-файлов Derby в путь к классам. Поскольку такие сценарии устанавливают соединение с системой Derby при помощи сервера Network Server, для обращения к встроенному модулю Derby должна быть запущена Community Edition. Чтобы использовать сценарии для запуска ij, выполните следующую команду:

ij.[bat|sh]

После запуска ij, вы увидите командную строку, где можно вводить команды. Можно также указать файл, содержащий команды, для выполнения в качестве аргумента, если вы не хотите работать с ij в интерактивном режиме.

Внесение данных

Вы можете использовать ij для создания баз данных и таблиц и заполнения их данными. Любые запускаемые пользователем команды выполняются для той базы данных, с которой установлено соединение, поэтому до установления соединения ничего не будет происходить. Создавая новую базу данных, вы можете одновременно подключиться к ней, выполнив команду:

CONNECT 'name_of_new_db;create=true';

После установления соединения с новой или уже существующей базой данных можно создавать таблицы при помощи стандартного синтаксиса SQL. Например, пример employee создает новую таблицу, которая содержит информацию о сотрудниках при помощи следующей команды:

CREATE TABLE EMP
  (EMPNO NUMERIC(4) PRIMARY KEY NOT NULL,
   ENAME VARCHAR(10), JOB VARCHAR(9),
   MGR NUMERIC(4), 
   SAL NUMERIC(7, 2), COMM NUMERIC(7, 2),
   DEPTNO NUMERIC(2));
   

Вместо того, чтобы вводить каждую команду по отдельности, можно выполнить файл .ddl или другой командный файл, который поддерживается ij. Например, образец empDemo включает файл .ddl, создающий необходимые таблицы и индексы. Для запуска нужно выполнить следующую команду:

RUN 'samples_path/samples/emdemo/src/sql/emp_table_and_record_create.ddl';

Такой подход имеет преимущество, которое заключается в том, что команду можно легко воспроизвести при каждом развертывании приложения на новом сервере и новой базе данных.

Проверка корректности данных

Для проверки существующих данных вы также можете воспользоваться ij. Чтобы получить список всех пользовательских таблиц базы данных, выполните следующую команду:

SELECT tablename from sys.systables where tabletype = 'T';

Для просмотра данных в таблице вы можете также использовать команды SELECT. Например,

SELECT * FROM EMP WHERE ENAME='Smith';

Чтобы разорвать соединение с базой данных, с которой вы работали, воспользуйтесь командой DISCONNECT. Для выхода из ij используйте команду EXIT.

Это только краткий пример команд SQL которые можно использовать в ij. Более подробный список ищите в центре информации IBM Cloudscape InfoCenter (см. раздел Ресурсы).



В начало


Создание плана настройки базы данных и размещение пула соединений базы данных

Выбор правильного адаптера ресурсов Derby для приложения

Вариант Community Edition поддерживает четыре типа адаптеров ресурсов:

  • tranql-connector-derby-embed-local-1.0.rar: TranQL Embedded Local Resource Adapter for Derby (TranQL встроенный локальный адаптер ресурсов для Derby). Этот адаптер ресурсов обеспечивает доступ к встроенной базе данных Derby с поддержкой локальных транзакций;
  • tranql-connector-derby-client-xa-1.0.rar: TranQL Client XA Transaction Resource Adapter for Derby (TranQL клиентский адаптер ресурсов XA-транзакций для Derby). Этот адаптер ресурсов обеспечивает доступ к встроенной базе данных Derby с поддержкой XA-транзакций;
  • tranql-connector-derby-client-local-1.0.rar: TranQL Client Local Transaction Resource Adapter for Derby (TranQL клиентский адаптер ресурсов локальных транзакций для Derby). Этот адаптер ресурсов обеспечивает доступ к удаленной базе данных Derby с поддержкой локальных транзакций;
  • tranql-connector-derby-client-xa-1.0.rar: TranQL Client XA Transaction Resource Adapter for Derby (TranQL клиентский адаптер ресурсов XA-транзакций для Derby). Этот адаптер ресурсов обеспечивает доступ к удаленной базе данных Derby с поддержкой XA-транзакций.

Если вы хотите использовать встроенную базу данных Derby, которая поставляется вместе с Community Edition, то вы можете использовать файл tranql-connector-derby-embed-xa-1.0.rar для поддержки XA-транзакций или файл tranql-connector-derby-embed-local-1.0.rar для поддержки локальных транзакций. Если вы планируете использовать удаленную базу данных, которая установлена на другом компьютере, вы можете использовать файл tranql-connector-derby-client-xa-1.0.rar для поддержки XA-транзакций или файл tranql-connector-derby-client-local-1.0.rar для поддержки локальных транзакций. Подробную информацию об использовании последних двух адаптеров ресурсов см. в разделе, посвященном настройки удаленной базы данных Derby далее в этой статье.

Создание плана настройки базы данных

Выберите тип пула соединений базы данных. Существует три типа пулов соединений: Server-wide (в пределах сервера), Application Scoped (в пределах приложения), Module Scoped (в пределах модуля). Если вы хотите, чтобы пул соединений базы данных был доступен для всех приложений, выполяемых на сервере, выберите Server-wide. Если вы хотите, чтобы пул соединений базы данных был доступен одному или нескольким модулям приложения, выберите Application Scoped. Если вы хотите, чтобы пул соединений базы данных был доступен только одному конкретному модулю приложения, выберите Module Scoped.

Создайте план размещения пула соединений базы данных. Независимо от того, какой тип пула конфигурации базы данных вы решите использовать, придется составить план развертывания пула соединений базы данных. В плане размещения пула соединений базы данных можно определить идентификатор конфигурации источника данных, родительского экземпляра и зависимостей, а также такую информацию о конфигурации адаптера ресурсов, как имя источника данных, минимальный и максимальный размеры пула. Используя план размещения пула соединений базы данных, который имеется в примере EMPDemo, вы поймете, какие нужно внести изменения, чтобы создать свой план размещения.

  • Определите идентификаторы конфигурации базы данных и родительского экземпляра. configId (Листинг 3), должен быть уникальным для экземпляра сервера Community Edition. Если родительский экземпляр (значение parentId) не запущен в момент размещения источника данных, то администратор размещения запустит сначала родительский экземпляр, чтобы обеспечить его доступность.

  • Определите элементы зависимостей. Элементы зависимостей определяют все зависимости в базе данных, и их относительные пути к репозитарию Community Edition (Листинг 3). Если вы хотите установить соединение с удаленным сервером Derby Network Server, вам придется также включить в качестве зависимости файл derbyclient-10.1.ibm.jar.

  • Настройте адаптер ресурсов. Настройка конфигурации для Derby очень проста, и вам не придется вводить никакой информации о драйвере JDBC. Если вы установите свойство CreateDatabase на true, то при размещении пула базы данных будет создана база данных. В рассматриваемом ниже примере вам нужно изменить только элементы name, UserName, Password, DatabaseName, CreateDatabase и настроить пул соединений вашей базы данных, чтобы создать собственную конфигурацию адаптера ресурсов для Derby (Листинг 3). Элемент name определяет имя, которое будет использоваться другими модулями для обращения к пулу соединений. Оно должно быть уникальным в пределах выбранного вами охвата пула соединений базы данных. Например, имя jdbc/EmployeeDatasource должно быть уникальным в пределах сервера, поскольку конфигурация настроена для типа пула соединений с базой данных server-wide.

    Элемент max-size определяет максимально допустимое количество параллельных соединений; элемент min-size определяет минимальное допустимое количество параллельных соединений; blocking-timeout-milliseconds определяет, сколько миллисекунд вызов будет ждать установления соединения от пула, прежде чем констатирует отказ; элемент idle-timeout-minutes определяет, сколько минут может продолжаться неиспользуемое соединение до того, как оно будет закрыто и удалено из пула.

    Возможно, вам интересно, почему элемент global-jndi-name заключен в знаки комментария. Это делается потому, что он используется при попытке установить соединение с источником данных из клиента приложения J2EE, а в примере EMPDemo нет клиентов приложений J2EE. Дополнительную информацию по адаптерам ресурсов Derby можно найти в файле ra.xml в архивах tranql-connector-derby-client-local-1.0.rar, tranql-connector-derby-client-xa-1.0.rar, tranql-connector-derby-embed-local-1.0.rar и tranql-connector-derby-embed-xa-1.0.rar.


Ниже приводится план размещения пула соединений базы данных EMPDemo Derby, предоставленный Community Edition в качестве примера. Это пул соединений типа server-wide.



Листинг 3: план размещения пула соединений базы данных EMPDemo Derby

<?xml version="1.0"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0"
  configId="EmployeeDatasource"      
  parentId="org/apache/geronimo/Server">
    
  <dependency>
      <uri>org.apache.derby/jars/derby-10.1.ibm.jar</uri>
  </dependency>
  <dependency>
       <uri>org.apache.derby/jars/derbynet-10.1.ibm.jar</uri>
  </dependency>
    
  <resourceadapter>
      <outbound-resourceadapter>
          <connection-definition>
              <connectionfactory-interface>javax.sql.DataSource
              </connectionfactory-interface>
              <connectiondefinition-instance>
                  <name>jdbc/EmployeeDatasource</name>
                  <config-property-setting name="UserName">
                  </config-property-setting>
                  <config-property-setting name="Password">
                  </config-property-setting>
                  <config-property-setting name="DatabaseName">Employee
                  </config-property-setting>
                  <config-property-setting name="CreateDatabase">true
                  </config-property-setting>
                  <connectionmanager>
                      <xa-transaction>
                          <transaction-caching/>
                      </xa-transaction>
                      <single-pool>
                          <max-size>5</max-size>
                          <min-size>0</min-size>
                          <blocking-timeout-milliseconds>5000
                          </blocking-timeout-milliseconds>
                          <idle-timeout-minutes>15</idle-timeout-minutes>
                          <match-one/>
                      </single-pool>
                  </connectionmanager>
              <!--global-jndi-name>EmployeeDatasource</global-jndi-name-->
              </connectiondefinition-instance>
          </connection-definition>
      </outbound-resourceadapter>
  </resourceadapter>
</connector>    
    

Если вы хотите создать пул соединения базы данных типа Module Scoped, то вам нужно определить в приведенном выше плане размещения пула соединений базы данных элемент ext-module, как показно ниже. Кроме того, поскольку элемент ext-module не может быть определен в плане geronimo-web.xml, который использует в качестве схемы XML файл "http://geronimo.apache.org/xml/ns/j2ee/web-1.0", то вам придется определить его в плане приложения, которое в качестве схемы XML использует файл "http://geronimo.apache.org/xml/ns/j2ee/application-1.0". Дополнительную информацию можно найти в файле примера daytrader dayTrader-plan.xml, предоставленного Community Edition.



Листинг 4: Изменение плана размещения пула соединений базы данных EMPDemo Derby для источника типа Module Scoped
			
		
<ext-module>
    <connector>EmployeeDatasource</connector>
    <external-path>tranql/rars/tranql-connector-derby-local-xa-1.0.rar</external-path>
	<!--Listing 3 connector element goes here-->
</ext-module>		
    	

Размещение пула соединений базы данных

Вы научились создавать план размещения базы данных и узнали, какие адаптеры ресурсов следует использовать. Давайте посмотрим, как выполнить размещение пула соединений базы данных Derby на сервере Community Edition при помощи инструмента deployer (администратор размещения) из каталога bin (Листинг 5).



Листинг 5: размещение пула соединений базы данных EMPDemo Derby
	            
deploy.[bat|sh] --user system --password manager deploy \
	..\repository\tranql\rars\tranql-connector-derby-embed-xa-1.0.rar \
	Cloudscape-db-plan.xml

В командном окне, в котором выполняются команды размещения, вы видите вывод, показывающий, что размещение пула соединений базы данных успешно завершилось. При необходимости замените имя пользователя с административными привилегиями и пароль. Если вы хотите использовать другой адаптер ресурсов Derby, просто замените указанный выше файл JAR другим на свой выбор. Если вы хотите разместить пул соединений базы данных типа Module Scoped, то при размещении приложения будет размещен источник данных; поэтому не нужно выполнять отдельную команду для размещения источника данных.

Изменение пула соединений базы данных

В инструменте размещения команда изменения не предусмотрена. Чтобы изменить пул соединения базы данных, отменить размещение пула соединений базы данных (Листинг 6) и снова выполнить размещение



Листинг 6: Отмена размещения пула соединений базы данных EMPDemo Derby database connection pool
	            
deploy.[bat|sh] --user system --password manager undeploy EmployeeDatasource

В командном окне, в котором выполняются команды размещения, вы видите вывод, показывающий, что отмена размещения пула соединений базы данных успешно завершилась. После этого вы можете выполнить размещение пула соединений базы данных с измененным планом размещения базы данных (Листинг 5).



В начало


Работа с удаленной базой данных Derby

В большинстве случаев встроенной базы данных Derby в Community Edition будет достаточно для удовлетворения ваших потребностей. Однако если данные, необходимые вашему приложению, уже хранятся в базе данных Derby на удаленном компьютере, вы можете использовать эту базу данных вместо встроенной. Community Edition будет продолжать использование встроенной базы данных Derby для внутренней SystemDatabase. Вы также можете просто иметь приложения, использующие встроенный модуль Derby, и приложения, которые используют удаленные базы данных.

Предположим, что удаленная база данных, которую вы хотите использовать, уже настроена, а на компьютере, где она размещается, запущен экземпляр сервера Derby Network Server; вам нужно разместить источник данных, который использует один из адаптеров ресурсов TranQL client (как противоположность встроенному адаптеру ресурсов). Можно использовать файлы tranql-connector-derby-client-local-1.0.rar или tranql-connector-derby-client-xa-1.0.rar в зависимости от типа поддерживаемых транзакций, необходимых приложению.

Для демонстрации работы с удаленной базой данных мы переделаем пример EMPDemo из предыдущего раздела на использование не встроенного модуля Derby в Community Edition, а удаленного сервера Derby Network Server. Все изменения вносятся в план размещения, представленный в листинге 3.

Первое, что нужно изменить - это зависимости. Кроме derby-10.1.ibm.jar и derbynet-10.1.ibm.jar, адаптер ресурсов для внешней базы данных Derby должен также использовать файл derbyclient-10.1.ibm.jar. В этом новом файле JAR содержатся библиотеки клиента, необходимые для взаимодействия с Derby Network Server, выполняемом на удаленной машине. В листинге 7 показаны новые зависимости.



Листинг 7: зависимости для обращения к удаленной базе данных
        
<dependency>
  <uri>org.apache.derby/jars/derby-10.1.ibm.jar</uri> 
</dependency>
<dependency>
  <uri>org.apache.derby/jars/derbynet-10.1.ibm.jar</uri> 
</dependency>
<dependency>
  <uri>org.apache.derby/jars/derbyclient-10.1.ibm.jar</uri> 
</dependency>

После добавления этих новых зависимостей необходимо добавить дополнительные свойства конфигурации, которые будут определять информацию о соединении, включая адрес хоста и порт сервера Derby Network Server, а также имя пользователя и пароль (Листинг 8). По умолчанию сервер выполняется на порту 1527.



Листинг 8: Определение Derby Network Server
        
<config-property-setting name="ServerName">hostname.ibm.com</config-property-setting> 
<config-property-setting name="PortNumber">1527</config-property-setting>  
<config-property-setting name="UserName">APP</config-property-setting> 
<config-property-setting name="Password">APP</config-property-setting>

При размещении источника данных типа server-wide задайте один из клиентских адаптеров ресурсов (Листинг 9).



Листинг 9: размещение источника данных типа server-wide
	
deploy.[bat|sh] --user system --password manager deploy \
..\repository\tranql\rars\tranql-connector-derby-client-xa-1.0.rar Cloudscape-db-plan.xml

А при размещении этого источника данных в качестве компонента приложения или модуля вам необходимо сослаться на один из клиентских адаптеров ресурсов в элементе ext-module (Листинг 10).



Листинг 10: элемент ext-module element со ссылкой на клиентский адаптер ресурсов
	
<ext-module>
    <connector>EmployeeDatasource</connector>
    <external-path>tranql/rars/tranql-connector-derby-client-xa-1.0.rar</external-path>
	<!--Listing 3 connector element goes here-->
</ext-module>		
    	



В начало


Заключение

Приступайте к использованию IBM Cloudscape in WebSphere Application Server Community Edition сейчас -- успехов вам!



В начало


Ресурсы

Научиться

Получить продукты и технологии

Обсудить


В начало


Об авторах

Нелл Гэвор (Nell Gawor) является инженером-консультантом IBM по программному обеспечению (Research Triangle Park, Северная Калифорния) в группе программного обеспечения проекта System House Advanced Technology. Она имеет степень магистра в области информационных технологий, которую получила в Иллинойском университете, г. Урбана-Шампейн. С Нелл можно связаться по электронной почте: ngawor@us.ibm.com


Лин Сун (Lin Sun) - штатный инженер по программному обеспечению IBM (Research Triangle Park, Северная Калифорния), она работает в группе разработки программного обеспечения WebSphere Application Server Community Edition. Лин имеет степень магистра в области информационных технологий от Университета штата Северная Каролина в г. Чепел Хилл. С Лин можно связаться по электронной почте: linsun@us.ibm.com.




В начало


Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



ДаНетНе знаю
 


 


12345
 


В начало


IBM, Cloudscape и WebSphere являются зарегистрированными торговыми марками IBM в США и других странах. Java и все торговые марки с использованием Java являются зарегистрированными торговыми марками Sun Microsystems, Inc., в США, других странах или на всех территориях. Microsoft, Windows, Windows NT и логотип Windows являются зарегистрированными торговыми марками Microsoft Corporation в США, других странах или на всех территориях. Linux является торговой маркой Линуса Торвальдса (Linus Torvalds) в США и/или других странах. Остальные названия компаний, продуктов или услуг могут быть зарегистрированными торговыми марками других владельцев. Другая компания, продукт или название услуги могут быть торговыми марками или знаками обслуживания, принадлежащими иным физическим или юридическим лицам.



    IBM в РоссииКонфиденциальностьКонтакты