1 / 31

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer. Сергей Климов SKlimov@bis.ru ЗАО « Банковские информационные системы » ( « БИС » ). Программа. Причины использования OpenEdge DataServer for ORACLE Обзор конфигураций OpenEdge DataServer for ORACLE

vartan
Download Presentation

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Сергей Климов SKlimov@bis.ru ЗАО «Банковские информационные системы» («БИС») Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  2. Программа • Причины использования OpenEdgeDataServerforORACLE • Обзор конфигураций OpenEdgeDataServerforORACLE • Проблемы миграции и накладываемые ограничения • Секреты и хитрости Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  3. Причины использования OpenEdgeDataServerforORACLE • ORACLE de facto стандарт промышленной СУБД • ORACLE обладает большим потенциалом для масштабирования приложений: RAC, горизонтальное масштабирование и т.п. Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  4. Обзор конфигураций OpenEdge • DataServerforORACLE Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  5. PROGRESS Networking OpenEdge Client PROGRESS Networking OpenEdge DataServer Broker ORACLE DB OpenEdge Client OpenEdge Client OpenEdge Client Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  6. Преимущества PROGRESS Networking • Универсальность • Простота настройки на некоторых платформах Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  7. ORACLE Networking OpenEdge Client PROGRESS Networking ORACLE DB OpenEdge Client OpenEdge Client OpenEdge Client Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  8. Преимущества ORACLE Networking • Производительность • Проста администрирования Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  9. Проблемы миграции и накладываемые ограничения Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  10. Проблемы миграции. Данные • Длина символьного поля в PROGRESS 32K в ORACLE 4K (varchar2) • Потенциальный размер записи не может превышать 32К • Отсутствие word-index • Отсутствие массивов • Имя поля в таблице ORACLE 30 байт, в PROGRESS 32 байта • Начальные значения последовательностей положительные Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  11. Длина символьного поля в PROGRESS 32K в ORACLE 4K • Заменять VARCHAR2 на LONG. Но может быть только один LONG в таблице! • Миграция на CLOB • Менять логику приложения, т.о. чтобы несоздавать строки, превышающие 4K Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  12. Потенциальный размер записи не может превышать 32К • Уменьшать SQL Width • Замена varchar2 на LONG Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  13. Отсутствие word-index • Замена CONTAINS на MATCHES. Падение производительности! • Перенос поля с WI в отдельную OpenEdgeтаблицу • Отказ от использования WI Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  14. Отсутствие массивов • Может приводить к ограничению на размер записи или поля • Может приводить к ограничению на имя поля в таблице ORACLE до 30 байт Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  15. Проблемы миграции. Данные • Уменьшать наименования полей до 30 байт • Сделать начальные значения последовательностей положительными Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  16. Проблемы миграции. Код • Отсутствие SHARE-LOCK • Видимость записи при CREATE • Плавающий ROWID • Работа с 2-мя БД: SETUSERID, USERID и т.п. • Отсутствие оператора CURRENT-VALUE Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  17. Отсутствие SHARE-LOCK • Переработать приложение без SHARE-LOCK • Разработать механизм аналогичный SHARE-LOCK Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  18. Видимость записи при CREATE • Добавление после CREATE – VALIDATE, RELEASE, ROWID или RECID DO TRANSACTION: CREATE Customer. Customer.Cust-id = 10. ... FIND FIRST Customer WHERE Cust-Id = 10 NO-LOCK NO-ERROR. END. VALIDATE Customer. Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  19. Плавающий ROWID • Перечитайте ROWID после изменения уникального ключа • Перечитайте ROWID послеотката удаления • Замените ROWID на RECID  Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  20. Проблемы миграции. Код • Функции типа SETUSERID, USERID и CAN-DO должны всегда содержать ссылку на логическую БД • Функция CURRENT-VALUE должна использоваться только после NEXT-VALUE • Оператор CURRENT-VALUE не доступен • Не доступны функции DBTASKID, COUNT-OF Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  21. Проблемы миграции. Производительность Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  22. Проблемы миграции. Производительность • Тюнинг клиентских параметров • Тюнинг параметров запроса • Использование «родного» SQL через SEND-SQL-STATEMENT • Использование VIEW • Использование хранимых процедур Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  23. Секреты и хитрости Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  24. Клиентские параметры – Dsrvqt_cache_size Записей/ Сек Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  25. Параметры запроса Записей/ Сек Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  26. Использование возможностей ORACLE FOREACHacct WHERE acct.acct-cat = "b" AND CAN-DO("40*1", acct.acct) NO-LOCK, LAST acct-pos OF acct NO-LOCK Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  27. Использование возможностей ORACLE Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  28. SEND-SQL-STATEMENT САМЫЙ БЫСТРЫЙ ВАРИАНТ RUN STORED-PROC send-sql-statement h1 = PROC-HANDLE NO-ERROR ("select ... "). FOR EACH proc-text-buffer WHERE PROC-HANDLE = h1: ... END. CLOSE STORED-PROC send-sql-statement WHERE PROC-HANDLE = h1. Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  29. ORACLE VIEW CREATEORREPLACEVIEWlast_acct_posAS SELECT …. Импорт VIEW в схема-холдер FOR EACH last_acct_pos: … END. Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  30. Хранимые процедуры RUN STORED-PROC newProcAcctPos LOAD-RESULT-INTO tt1 (INPUT "40", INPUT "1", OUTPUT ?). bh = tt1:DEFAULT-BUFFER-HANDLE. CREATE QUERY q. q:SET-BUFFERS (bh). q:QUERY-PREPARE("for each " + tt1:name). q:QUERY-OPEN. Разработка ABL приложений с использованием OpenEdgeORACLE DataServer

  31. СПАСИБО! ВОПРОСЫ? http://www.bis.ru e-mail:info@bis.ru МОСКОВСКИЙ ОФИС: +7 (495) 780 3773 СЕВЕРО-ЗАПАДНЫЙ ОФИС: +7 (812) 320 4908 ПЕНЗЕНСКИЙ ОФИС: +7 (841) 252 0491 Концепция построения ЦАБС QBIS

More Related