Декабрь 2005

Краткий обзор возможностей Oracle TimesTen In-Memory Database выпуска 6.0


Источник: сайт корпорации Oracle,
http://www.oracle.com/technology/products/timesten/pdf/tt60/tt601%20features%20overview.pdf

1. Введение

В этом документе предлагается итоговое описание функциональных возможностей выпуска 6.0 для продуктов Oracle TimesTen In-Memory Database. В следующих ниже разделах описываются поддерживаемые платформы и список характеристик.

2. Поддерживаемые платформы

В этом разделе описываются поддерживаемые платформы для версии 6.0.1 Oracle TimesTen In-Memory Database

Oracle TimesTen In-Memory Database и Replication – поддерживаемые платформы

Операционная система

JVM

Тип процессора

AIX 5L 5.3 (32/64 bit)

JDK 1.4 (IBM)

IBM Power

HP-UX 11i (32/64 bit)

JDK 1.4, 1.5 (HP)

HP PA-RISC

HP-UX 11i v2 (64 bit)

JDK 1.4, 1.5 (HP)

Intel Itanium-2

MontaVista Linux CGE 3.1 (32 bit)**

JDK 1.4, 1.5 (Sun)

Intel IA-32

MontaVista Linux CGE 3.1 (64 bit)**

JDK 1.5 (Sun)

Intel EM64T

Red Hat Enterprise Linux 3.0, 4.0 (32/64 bits)

JDK 1.4, 1.5 (Sun, BEA JRockit); для Opteron и EM64T требуется JVM 1.5

Intel IA-32, EM64T и Itanium-2; AMD Opteron

Solaris 8, 9, 10 (32/64 bit)*

JDK 1.4, 1.5 (Sun)

UltraSparc

SuSE Enterprise Server 9 (32/64 bit)

JDK 1.4, 1.5 (Sun, BEA JRockit)

Intel IA-32, EM64T; AMD Opteron

Tru64 Unix 5.1B-2 (64 bit)

JDK 1.4, 1.5 (HP)

AlphaChip EV68

Windows Server 2000, 2003, XP

JDK 1.4, 1.5 (Sun, BEA JRockit)

Intel IA-32

* Поддержка Solaris для Opteron (32 и 64 бита) будет включена в исправленную версию (CY2005)
** На этой платформе не поддерживается Cache Connect с Oracle

3. Усовершенствования SQL

В Oracle TimesTen In-Memory Database версии 6.0 предлагаются следующие новые возможности и опции SQL. За деталями, относящимися к каждой возможности, обращайтесь, пожалуйста, к документации и справочному руководству по API TimesTen.

3.1. TRUNCATE Table

Оператор TRUNCATE Table предоставляет пользователю быстрый способ удалить все строки в таблице. TRUNCATE Table действует быстрее чем DELETE * FROM TABLE, потому что при использовании TRUNCATE не выполняется журнализация удаляемых строк. Оператор TRUNCATE является расширением SQL, и он не является частью стандарта ANSI SQL.

Реализация TRUNCATE в TimesTen предлагает следующую семантику:

  • Оператор TRUNCATE будет транзакционным и к нему можно применить откат
  • Будут разрешены параллельные операции READ COMMITTED, и будет предложена та же самая семантика типа Read Committed, что и в случае оператора DELETE
  • Для систем, в которых сконфигурирована TimesTen Replication, оператор TRUNCATE Table будет реплицирован в узел подписчика, и оператор TRUNCATE Table будет выполнен для информационного склада (data store – часть информационного хранилища, содержащая предметно-ориентированные данные) подписчика.

3.2 .Оператор CAST

Для того чтобы позволить пользователям специфицировать преобразование типа данных предлагается оператор CAST. Оператор CAST можно использовать везде, где позволяется использовать константу.

Примеры:

  • INSERT into t1 values(TO_CHAR(CAST(? as real));
  • SELECT concat(x1, CAST (? As char(10)) FROM t1;

    3.3. Арифметика дат и времени и интервальный тип данных

    В этом выпуске поддерживается арифметика дат и времени, где выражения с датами и временем могут включать типы Date, Time и Timestamp; а результатом выражения с датами и временем может быть или дата и время, или интервальный тип. Ниже приводится краткое резюме поддерживаемых операций:

    Операнд 1

    Оператор

    Операнд 2

    Тип результата

    Time/Timestamp

    -

    Time/Timestamp

    Interval Day to Second

    Date

    -

    Date

    Number of Days

    Date-time

    + or -

    Interval

    Date-time

    Interval

    +

    Date-time

    Date-time

    Interval

    + or -

    Interval

    Interval

    Interval

    * or /

    Numeric

    Interval

    Numeric

    *

    Interval

    Interval

    Интервальный тип данных поддерживается только для вычислений (хранение данных типа INTERVAL в этом выпуске не поддерживается). Константа INTERVAL определяется, как показано ниже:

    IntervalQualifier = {YEAR|MONTH|DAY|HOUR|MINUTE|SECOND}
       INTERVAL IntervalQualifier
       INTERVAL [+\-] CharString IntervalQualifier

    При использовании в выражении с арифметикой даты и времени предлагаются две новые функции – NUMTOYMINTERVAL и NUMTODSINTERVAL – для преобразования числового значения в INTERVAL YEAR TO MONTH или в INTERVAL DAY TO SECOND, соответственно. Дополнительно предлагается функция EXTRACT для извлечения поля из промежуточного интервального типа результата и возвращения результата в виде BIGINT или DECIMAL.

    Примеры:
       SELECT date1 - date2 from t1;
       SELECT EXTRACT(day from timestamp1-timestamp2) from t1;
       SELECT * from t1 where timestamp1 - timestamp2 = NUMTODSINTERVAL(10, ‘day’);
       SELECT sysdate + NUMTODSINTERVAL(20,'second') from DUAL;
       SELECT EXTRACT (second from timestamp1-timestamp2) from DUAL;
    /* выбрать разность (в микросекундах) между двумя временными метками d1 и d2 */
       SELECT 1000000*( EXTRACT (day from d1-d2)*24*3600+extract(hour
          from d1-d2)*3600+ EXTRACT (minute from d1-d2)*60+ EXTRACT
             (second from d1-d2)) from d1;

    3.4. Выражение NULL

    В списке SELECT запроса поддерживается выражение NULL. Типом данных результата по умолчанию будет VARCHAR (0). Оператор CAST может использоваться для преобразования результата в другой тип данных. Оператор SELECT с NULL будет поддержан всякий раз, когда разрешен SELECT с константой.

    Пример:

  • SELECT NULL from t1;

    3.5. Значение столбца по умолчанию

    В операторах CREATE TABLE и CREATE CACHE GROUP пользователь может определить значение столбца по умолчанию. Разрешенными по умолчанию значениями являются: константы, NULL, sysdate (системная дата), user (пользователь), current user (текущий пользователь), system user (системный пользователь) и session user (пользователь сеанса). Для имеющихся таблиц можно использовать оператор ALTER TABLE, чтобы добавить новый столбец со специфицированными значениями столбцов по умолчанию; ALTER TABLE может также использоваться, чтобы изменить имеющиеся значения столбцов по умолчанию.

    Примеры:

  • CREATE TABLE t1 (x1 int default 1, d timestamp default sysdate);
  • ALTER TABLE t1 modify (x1 default 2);

    3.6. Ограничение уникальности для столбца

    В операторах CREATE CACHE GROUP и CREATE TABLE пользователь может определить ограничение уникальности для столбца. Для имеющихся столбцов можно использовать ALTER TABLE, чтобы добавить или удалить ограничения уникальности по столбцам для недавно добавленных столбцов. Ограничения уникальности для столбца вводятся для принудительного исполнения системой через уникальный индекс ttree.

    Примеры:

  • CREATE table t1(x1 int unique, y1 int);
  • ALTER table t1 DROP unique (x1);

    3.7. UNION

    Операторы UNION и UNION ALL дают пользователю возможность получить объединенное результирующее множество для двух запросов SELECT. Оператор UNION ALL сохраняет все повторяющиеся строки из обоих операторов SELECT, тогда как оператор UNION перед возвращением в приложение удалит все дубликаты.

       SelectQuery {UNION [ALL] SelectQuery} […] [ORDER BY {ColumnId [ASC\DESC]}]
    
    Пример:
       Select * from t1 where x1 in (select x2 from t2) 
          UNION 
            select * from t1 where x1 in (select x3 from t3);
    

    3.8. CASE WHEN

    Операторы CASE .. WHEN поддерживаются, как определено стандартом ANSI. Выражение CASE может быть специфицировано везде, где разрешается использовать выражение. В выражении CASE не может быть специфицирован подзапрос.

    Примеры:

  • Select CASE WHEN color=1 THEN ‘red’ WHEN color=2 THEN ‘blue’ ELSE ‘yellow’ end from cars;
  • Select CASE color WHEN 1 THEN ‘red’ WHEN 2 THEN ‘blue’ ELSE ‘yellow’ end from cars;

    3.9. Join UPDATE

    В этом выпуске добавлена поддержка комбинированных обновлений, где пользователь может обновить один или несколько столбцов таблицы, используя результат подзапроса. Синтаксис комбинированного обновления следует синтаксису Join Table стандарта ANSI. В этом выпуске во фразе SET поддерживается спецификация одного подзапроса, и этот подзапрос TimesTen может быть вложенным. Количество значений в списке select подзапроса должно быть таким же самым, что и количество столбцов, определенных во фразе select.

    Примеры:

  • Update t1 set x1=(select x2 from t2 where id1=id2)
  • Update t1 set (x1,y1)=(select x2,y2 from t2 where id1=id2)

    Чтобы так ограничить оператор Update, чтобы он обновлял только те строки из t1, для которых имеется соответствие в t2, должна быть следующим образом обеспечена фраза WHERE с подзапросом:

  • Update t1 set x1=(select x2 from t2 where id1=id2) where id1 in (select id2 from t2);
  • Update t1 set (x1,y1)=(select x2,y2 from t2 where id1=id2) where id1 in (select id2 from t2);

    3.10. SELECT FROM DUAL

    В этом выпуске добавлена поддержка SELECT FROM DUAL, где DUAL – это фиктивная системная таблица с фиктивным столбцом. DUAL дает пользователю возможность выполнить запрос SELECT, не определяя таблицу пользователя. Например:

  • SELECT sysdate FROM DUAL;
  • SELECT user FROM DUAL;
  • SELECT 1 FROM DUAL;
  • SELECT ? FROM DUAL;

    3.11. SELECT во фразе FROM или в производной таблице

    Запрос SELECT поддерживается во фразе FROM запроса SELECT или оператора UPDATE, где SELECT определяет производную таблицу, как описано в стандарте ANSI. Для этой производной таблицы должно быть определено корреляционное имя. Например:

  • SELECT * from t1, (select MAX(x2) maxx2 from t2) tab2 where t1.x1 = tab2.maxx2;

    3.12. Битовые операции над двоичными типами

    Была добавлена поддержка следующих битовых операций над двоичными типами данных:

  • & (bitand – битовое И),
  • | (bitor – битовое ИЛИ)
  • ^ (exclusive or – исключающее ИЛИ)
  • ~ (bitneg – битовое отрицание).

    3.13. Расширение поддержки OUTER JOIN

    В этом выпуске расширяется работающий сегодня синтаксис внешнего соединения ‘+’, чтобы позволить специфицировать присоединяемую таблицу с помощью внутреннего (inner), поперечного (across), левого внешнего (left outer) и правого внешнего (right outer) соединения во фразе FROM запроса SELECT, как определено в стандарте ANSI. Например:

  • SELECT * from t1 LEFT JOIN t2 on x1=x2 WHERE x1<10;

    3.14. VIEW

    Поддерживается нематериализуемая таблица VIEW, определенная на базе запроса SELECT. В этом выпуске поддерживается таблица VIEW только для чтения (то есть нематериализуемую таблицу VIEW нельзя обновлять). Например:

  • CREATE VIEW v1 as SELECT * FROM t1;
  • CREATE VIEW v1 (max1) as SELECT max(x1) FROM t1;

    3.15. Глобальные временные таблицы

    В этом выпуске поддерживаются глобальные временные таблицы, которые могут быть созданы с использованием оператора CREATE TABLE. Определение глобальной временной таблицы постоянно и является видимым для всех подключений к хранилищу данных. Каждое подключение к информационному хранилищу будет иметь свой собственный экземпляр временной таблицы. В зависимости от определения таблицы, специфицированной в операторе CREATE TABLE, строки в глобальной временной таблице могут быть или удалены, или сохранены после COMMIT.

  • CREATE [GLOBAL TEMPORARY] TABLE [Owner.]TableName [ON COMMIT { DELETE| PRESERVE } ROWS ]

    Например:

  • CREATE GLOBAL TEMPORARY TABLE t1 (x1 int, y1 int) ON COMMIT DELETE ROWS;

    3.16. Подзапрос с агрегатами

    В этом выпуске добавлена поддержка агрегированных подзапросов, специфицируемых во фразах WHERE или ON присоединяемой таблицы запроса. В подзапросах поддерживается также фраза HAVING. Например:

  • SELECT * from t1 WHERE x1 IN (SELECT max(x2) from t2);
  • SELECT * from t1 WHERE x1 in (SELECT max(x2) from t2 GROUP BY y2 HAVING count(*)>1);
  • SELECT * from orders WHERE price = (SELECT max(price) from stock WHERE stock.cat=orders.cat);

    3.17. Пустой список IN

    Поддерживается пустой список IN. Например:

  • SELECT * from t1 WHERE x1 IN ();
  • SELECT * from t1 WHERE not x1 IN ();

    3.18. Составные запросы с подзапросами IN (или EXIST или ANY)

    В этом выпуске добавлена поддержка агрегата запроса SELECT, который определяет подзапросы с предикатами IN, EXISTS или кванторными предикатами с ANY или SOME. Например:

  • SELECT max(price) FROM books WHERE id IN (SELECT id FROM exclBookList);

    3.19. Использование NOT EXISTS, NOT IN и квантифицированных сравнений с ALL в выражении OR

    Поддерживается использование NOT EXISTS, NOT IN и квантифицированных сравнений с квантором ALL в выражении OR. Например:

  • SELECT * from t1 WHERE x1 NOT IN (SELECT x2 from t2) OR x=1;
  • SELECT * from t1 WHERE x1 < ALL (SELECT x2 from t2) OR x=1;

    3.20. Строковые функции

    В этом выпуске стали доступными следующие новые строковые функции:

  • Возвращает строку, начинающуюся в позиции m, состоящую из n символов.
    SUBSTR (char, m, n)
  • Определяет первое вхождение, если таковые вообще имеются, строки CharExpr1 в другую строку, CharExpr2.
    INSTR (CharExpr2, CharExp1 [, m. [, n]])
  • Возвращает длину (в символах) заданной строки символов как целое число.
    LENGTH (CharExpr)

    Например,

  • SELECT SUBSTR(name,1,10) FROM employees;
  • SELECT INSTR(name, ‘LA’) FROM cities;
  • SELECT LENGTH(name), name from employees;

    3.21. Несколько агрегатов Distinct

    В этом выпуске поддерживается оператор SELECT с несколькими агрегатами DISTINCT. Для этой характеристики для каждой уникальной группы будет требоваться несколько сортировок, по одной для каждого различного (distinct) столбца. Например:

  • SELECT count(distinct x1), count(distinct y1) from t1;

    3.22. Конкатенация

    В этом выпуске поддерживается конкатенация двух символьных строк с использованием оператора ||. Например,

  • SELECT lastName || ‘ ‘ || firstName FROM employees;

    4. Интерфейс Java для XLA Data Publishing

    До выхода выпуска 6.0 база данных TimesTen в оперативной памяти обеспечивала возможность публикации данных через интерфейс Transaction Log API (XLA), доступный для приложений, написанных на языках C/C++ и эксплуатирующихся на той же самой машине, что и база данных TimesTen. В выпуске 6.0 продукта TimesTen возможность публикации данных расширена, чтобы обеспечить интерфейс Java, базирующийся на промышленном стандарте API Java Message Services (JMS).

    Приложения Java могут использовать API JMS/XLA, чтобы получать уведомления об изменениях данных в информационном хранилище TimesTen. JMS/XLA использует интерфейс публикации-подписки-на-новости (publish-subscribe) JMS, чтобы обеспечить доступ к обновлениям данных.

    В этом выпуске API JMS/XLA поддерживает сообщения только для чтения, и конфигурация, в которой приложение подписывается на изменения данных, должна выполняться на той же самой машине, что и база данных TimesTen, и подключаться к информационному хранилищу через Direct Access Mode. Обновляемые сообщения в этом выпуске не поддерживаются.

    Интерфейс JMS/XLA API поддерживает и JDK 1.4, и JDK 1.5 (там, где он доступен).

    5. Поддержка методов соответствия техническим требованиям JDBC 3.0

    Драйвер JDBC TimesTen будет расширен, чтобы можно было включить в него следующие усовершенствования:

    • Поддержка списка интерфейсов и методов, необходимых для соответствия техническим требованиям JDBC 3.0 .
    • Поддержка организации пула подготовленных операторов для PooledConnection, как это определено в спецификации JDBC 3.0.
    • Обеспечение методов Set/Get для следующих свойств пула подключений:
      MaxStatements, InitialPoolSize, MinPoolSize, MaxPoolSize, MaxIdleTime, PropertyCycle.
    • Обеспечение нового интерфейса – com.timesten.jdbc.VendorCode, в котором коды ошибок определены как константы в Java. Этот новый интерфейс будет включен в архивный файл (jar) JDBC TimesTen.

    6. Контрольные точки сборки данных

    В этом выпуске TimesTen выполняет в фоновом режиме автоматические неблокирующие контрольные точки. Фоновые параметры настройки контрольных точек могут управляться пользователем. Фоновые контрольные точки могут устанавливаться с определенной частотой (по истечении временного интервала) и/или по объему журнала транзакций (когда в файлах журнала транзакций содержится некоторое определенное количество данных).

    Были добавлены два новых атрибута хранилища данных, CkptFrequency и CkptLogVolume, дающие пользователям возможность управлять тем, как часто должны выполняться контрольные точки. Эти два атрибута контрольных точек могут быть динамически реконфигурированы с использованием новой встроенной процедуры ttCkptConfig.

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

    7. Автоматическое уплотнение свободных блоков

    В этом выпуске диспетчер памяти во время выполнения выполняет автоматическое уплотнение свободных смежных блоков; это означает, что приложению не требуется вызывать ttCompact или ttCompactTS.

    8. Параллельные потоки восстановления

    Чтобы ускорить процесс восстановления потерявшего работоспособность информационного хранилища, несколько индексных таблиц могут быть восстановлены параллельно. Это может быть сделано, если значение нового атрибута хранилища данных, RecoveryThreads, установлено на число, большее 1. Такое значение атрибута позволяет системе порождать для параллельного восстановления индексных таблиц несколько потоков (в предположении, что в информационном хранилище имеется более одной индексной таблицы).

    9. Усовершенствования восстановления информационных хранилищ

    В этом выпуске была оптимизирована операция дублирования (ttRepAdmin-duplicate), чтобы сократить общее количество времени, потраченного на дублирование информационного хранилища. Чтобы быть чувствительным к полосе пропускания сети, используемой задачей дублирования информационного хранилища, пользователь может также специфицировать порог для управления полосой пропускания сети, используемой для операции дублирования информационного хранилища.

    10. Усовершенствования репликации

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

    10.1. Репликация на уровне информационного хранилища

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

    Например:
    ELEMENT ds1 DATASTORE
    MASTER masterds ON “system1”
    SUBSCRIBER subscriberds ON “system2”
    EXCLUDE TABLE T1, T2
    EXCLUDE CACHE GROUP cg3

    Когда к информационного хранилищу добавляются новые таблицы, пользователь может изменить схему репликации на уровне информационного хранилища, чтобы ВКЛЮЧИТЬ (INCLUDE) вновь добавленные таблицы.

    10.2. Активное резервирование и топология многочисленных подписчиков

    В этом выпуске введена новая топология репликации. Репликация с активным резервированием конфигурирует, как главные (Masters), два информационных хранилища, но в каждый момент времени только одно из них может быть активным главным. Одно из них является активным главным информационным хранилищем, а другое – резервным главным информационным хранилищем. Запросы приложений могут непосредственно обновлять активное главное информационное хранилище, но для резервного главного информационного хранилища не позволяются никакие прямые обновления. Резервное главное информационное хранилище принимает обновления только от активного главного информационного хранилища. Принудительное исполнение этой семантики обеспечивается программным обеспечением Replication. При использовании конфигурации с активным резервированием автоматическое преодоление последствий сбоя с переходом к резервному информационному хранилищу осуществляется быстро.

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

    11. Создание пула процессов сервера

    При использовании режима с установлением соединения клиент-сервер, для каждого подключения клиента требуется процесс сервера. По умолчанию процесс сервера создается во время создания подключения. В этом выпуске пользователь может конфигурировать пул процессов сервера, которые будут созданы предварительно, чтобы подключения клиента могли быть удовлетворены немедленно, что повышает производительность во время подключения. Чтобы конфигурировать пул процессов сервера, пользователь определяет в файле ttendaemon.options опцию serverPool.

    Если в пуле больше нет доступных процессов сервера, будет создан новый процесс. Значение по умолчанию для serverPool устанавливается в нуль, чтобы поддержать совместимость с предыдущими выпусками.

    12. Усовершенствования групп кэша

    В этом разделе описываются усовершенствования, сделанные в продукте TimesTen/Cache для улучшения конфигурирования групп кэша и действий во время выполнения, а также производительности загрузки данных и синхронизации данных.

    12.1. Производительность загрузки данных

    Для улучшения выполнения операций загрузки данных для очень больших групп кэша были проведены усовершенствования. Более конкретно, были решительно уменьшены требования к объему временной памяти, используемой во время первоначальной загрузки данных. Дополнительно была оптимизирована функция загрузки данных, чтобы сократить время, требующееся для загрузки групп кэша, в которых задействовано более одной таблицы.

    В этом выпуске первоначальная загрузка группы кэша позволяет пользователю определять, следует ли для загрузки группы кэша использовать несколько транзакций. Пользователь может определить, что он желает фиксировать (commit) транзакцию через каждые <N> строк данных, позволяя операции загрузки периодически фиксировать транзакцию вместо того, чтобы иметь одну единственную транзакцию для всей группы кэша. Для меньшей по размеру транзакции системные накладные расходы для функции загрузки данных будут меньшими.

    12.2. Асинхронные обновления в Oracle

    В этом выпуске пользователь может конфигурировать группу кэша для асинхронной репликации изменений в Oracle. Это называют группой кэша Asynchronous Write-Through (AWT). При использовании в Oracle асинхронных обновлений улучшается время отклика приложения, потому что управление программой возвращается в приложение, как только транзакция будет зафиксирована в информационном хранилище TimesTen; приложение не должно ждать завершения Commit on Oracle. Эти транзакции будут переданы в Oracle асинхронно.

    12.3. Реплицирование групп кэша

    В зависимости от требований к высокой доступности некоторые пользователи могли бы извлечь выгоду из реплицирования групп кэша в другой экземпляр TimesTen/Cache в дополнение к реплицированию обновлений в реальном времени во внутренней базе данных Oracle. Реплицирование групп кэша в другой экземпляр TimesTen позволяет пользователю обеспечить более быстрое восстановление с резервной базы данных TimesTen вместо того, чтобы иметь необходимость перезагружать данные из Oracle.

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

    Была расширена операция дублирования (ttRepAdmin-duplicate), чтобы позволить сохранять определение группы кэша из исходного информационного хранилища в целевое информационное хранилище.

    13. Функциональная совместимость с серверами приложений J2EE

    База данных TimesTen в оперативной памяти может использоваться вместе с промышленными стандартами серверов приложений J2EE. С выпуском 6.0 IMDB TimesTen были проверены следующие серверы приложений J2EE: Oracle Application Server 10g (10.1.2), BEA WebLogic (8.1 SP4), JBOSS Application Server (4.0.1), сервер приложений IBM Websphere (6.0.0.1) и сервер приложений Sun (8.1).

    14. Функциональная совместимость с объектно-реляционными инструментальными средствами отображения

    14.1. Oracle TopLink

    В выпуск 10.1.3 Oracle TopLink добавлена поддержка Oracle TimesTen In-Memory Database. В этом выпуске в Oracle TopLink вводится новый класс TimesTenPlatform (oracle.toplink.platform.database). Этот класс настраивает взаимодействие TopLink SQL и JDBC с базой данных, чтобы использовать заказные типы, функции и общеупотребительные нестандартные операции, типа внешних соединений. В дополнение к этой платформе времени выполнения пользователи будут также видеть доступные опции этой платформы в интегрированном редакторе отображений JDeveloper и в автономных автоматизированных пользовательских интерфейсах (UI) для конфигурирования TopLink. В рамках этих инструментальных средств разработчики будут в состоянии импортировать свои реляционные схемы, отображать или генерировать и отображать свои постоянные объекты. Для получения дополнительной информации обратитесь в центр продукта Oracle TopLink по адресу http://www.oracle.com/technology/products/ias/toplink/index.html

    14.2. Hibernate

    В дистрибутив Hibernate 3.0 включена прямая поддержка SQL для Oracle TimesTen In-Memory Database с помощью класса TimesTenDialect.

    ## TimesTen
    hibernate.dialect org.hibernate.dialect.TimesTenDialect
    hibernate.connection.driver_class com.timesten.jdbc.TimesTenDriver
    hibernate.connection.url jdbc:timesten:direct:DEFAULT
    hibernate.connection.username
    hibernate.connection.password

    Для получения дополнительной информации о Hibernate, пожалуйста, посетите сайт http://www.hibernate.org

  • E-mail this page