Посібник з WebSphere Application Server - Post Topic - 6
Щоб додати або оновити властивості, виконайте такі дії.
1. Відкрийте джерело даних, клацнувши на його ім'я у списку ресурсів.
2. Натисніть Custom Properties (Настроювання властивостей) у таблиці Additional Properties (Додаткові властивості), щоб вказати або оновити властивості джерела даних, які можуть знадобитися. З'явиться список наявних властивостей, що базується на типі джерела даних.
3. Натисніть New (Створити), щоб додати властивість або клацніть
на ім'я властивості, щоб змінити його.
На рис. 6.12 показані кілька перших властивостей, що настроюються, налаштованих для джерела даних, підключеного до бази даних DB2.
4. Після завершення натисніть OK.

Мал. 6.12. Настроювані властивості джерела даних
Конфігурування параметрів роботи з пулами з'єднань
Посилання на параметри роботи з пулом з'єднань можна знайти в розділі Additional Properties (Додаткові властивості) вікна конфігурування джерела даних. рис. 6.8.

Мал. 6.13. Параметри роботи з пулом з'єднань для джерел даних
• Connection Timeout (Час очікування з'єднання).
Вказується інтервал (в секундах), після якого відбувається переривання (таймаут) запиту на з'єднання та генерується виняток ConnectionWait TimeoutException. Така ситуація може виникнути, якщо пул досяг максимуму (Max Connections), і всі з'єднання задіяні іншими програмами протягом періоду очікування.
Наприклад, якщо параметр Connection Timeout дорівнює 300, і досягнуто максимальної кількості з'єднань, то менеджер пула чекає 300 секунд появи доступного фізичного з'єднання. Якщо за цечас доступних з'єднань не з'явився, менеджер пулу генерує виняток ConnectionWaitTimeoutException.
Порада. Якщо для параметра Connection Timeout вказано значення 0, то менеджер пула чекатиме стільки, скільки потрібно, щоб з'єднання було виділено.
• Max Connections (Максимальна кількість з'єднань).
Вказується максимальна кількість фізичних сполук, яка може бути створена в цьому пулі.
Це фізичні з'єднання із серверною базою даних. Коли це число досягнуто, нові фізичні з'єднання не створюються, і відправник запиту буде чекати, поки фізичне з'єднання, яке в даний момент використовується, буде повернуто в пул, або доти, доки не буде згенеровано виключення ConnectionWaitTimeoutException.
Наприклад, якщо для Max Connections встановлено значення 5, і використовується п'ять фізичних з'єднань, то менеджер пула чекатиме на звільнення з'єднання стільки часу, скільки вказано в параметрі Connection Timeout. Якщо після закінчення цього часу вільних з'єднань не з'явилося, менеджер пула генерує для застосування виняток ConnectionWaitTimeoutException.
• Min Connections (Мінімальна кількість з'єднань).
Вказується мінімальна кількість фізичних сполук, що підтримуються. Доки це число не досягнуто, потік, що обслуговує пул, не видаляє фізичні з'єднання. Однак і не робиться спроб довести кількість з'єднань до цього числа.
Наприклад, якщо Min Connections має значення 3 і створено одне фізичне з'єднання, це з'єднання не буде видалено потоком Unused Timeout. Крім того, потік не буде створювати автоматично ще два з'єднання, щоб довести їх кількість до значення Min Connections.
• Reap Time (Час опитування).
Вказується інтервал (у секундах) між запусками потоку, який обслуговує пул. Наприклад, якщо для Reap Time встановлено значення 60, то потік, що обслуговує пул, запускатиметься кожні 60 секунд. Інтервал Reap Time впливає на точність дотримання параметрів Unused Timeout (Час очікування з'єднань) Aged Timeout (Час очікування застарілих з'єднань). Чим менший заданий інтервал, тим вища точність. При запуску потоку, що обслуговує пул, він знищує всі з'єднання, що не діють довше, ніж зазначено в параметрі Unused Timeout, доки не доведе число з'єднань до значення, вказаного в параметрі Min Connections. Потік, який обслуговує пул, також видаляє всі з'єднання, що залишаються активними довше, ніж зазначено в параметрі Aged Timeout.
Порада. Якщо потік, що обслуговує пул, увімкнений, задавайте в параметрі Reap Time значення менше, ніж Unused Timeout та Aged Timeout.
Інтервал Reap Time також впливає на продуктивність. Найменші інтервали призводять до того, що потік, що обслуговує пул, запускається частіше, і це знижує продуктивність.
• Unused Timeout (Час очікування з'єднань).
Вкажіть інтервал (в секундах), після якого бездіяльне з'єднання видалятиметься.
Порада. Задавайте для Unused Timeout значення більше значення параметра Reap
Timeout, щоб забезпечити оптимальну продуктивність. Невикористані фізичні з'єднання видаляються лише в тому випадку, якщо поточна кількість з'єднань, що не використовуються, перевищує значення Min Connections.
Наприклад, якщо значення параметра Unused Timeout дорівнює 120, і потік, що обслуговує пул, включений (значення Reap Time не дорівнює 0), то будь-яке фізичне з'єднання, що залишається невикористанимпротягом двох хвилин видаляється. Зверніть увагу, що на точність цього періоду очікування впливає значення Reap Time. За додатковою інформацією звертайтесь до пункту, присвяченого Reap Time.
• Aged Timeout (Час очікування застарілих з'єднань).
Вкажіть інтервал (у секундах), після якого фізичне з'єднання буде видалятися, незалежно від того, як воно використовується.
Якщо встановити для цього параметра значення 0, то фізичні з'єднання залишатимуться в пулі невизначено довго. Наприклад, якщо для Aged Timeout встановлено значення 1200, а Reap Time не дорівнює 0, то фізичне з'єднання, що існує 1200 секунд (20 хвилин) буде видалено з пулу. Зверніть увагу, що на точність цього періоду очікування впливає значення Reap Time. За додатковою інформацією звертайтесь до пункту, присвяченого Reap Time.
Порада. Для оптимізації продуктивності встановлюйте значення Aged Timeout більше, ніж Reap Time.

Мал. 6.14. Додаткові властивості пулу сполук
• Purge Policy (Політика очищення).
Вкажіть, яким чином здійснюється очищення з'єднань, якщо виявляється зависле або фатальна помилка з'єднання.
Допускаються значення EntirePool та FailingConnectionOnly. Якщо вибрати значення EntirePool (Весь пул), то при виявленні завислих з'єднань будуть видалені всі з'єднання пулу. Якщо вибрати значення FailingConnectionOnly (Тільки несправне з'єднання), пул спробує видалити тільки з'єднання, що зависло. Інші з'єднання залишаться у пулі. Таким чином, можна відстрочити порушення сполук, що використовуються на момент виникнення помилки. Однак такі з'єднання в пул не повернуться.
Якщо клацнути на посилання Advanced connection pool properties (Додатковівластивості пулу сполук), ви зможете змінювати властивості, показані на рис. 6.14.
Ці властивості вимагають глибших знань того, як працює пул з'єднань та як функціонує ваша система. Докладніше про ці параметри див. у розділі Connection pool advanced settings (Додаткові властивості пулу з'єднань) Центру інформації.
Властивості джерела даних WebSphere Application Server
Ви можете встановити властивості, які стосуються параметрів з'єднання WebSphere Application Server, а не параметрів з'єднання з базою даних, вибравши посилання WebSphere Application Server data source properties (Властивості джерела даних WebSphere Application Server) у розділі Additional Properties (Додаткові властивості) сторінки конфігурації джерела даних. Звертайтеся до рис. 6.11. Натиснувши це посилання, ви побачите вікно, показане на рис. 6.15.
• Statement Cache Size (Розмір кешу інструкції).
Вкажіть кількість підготовлених інструкцій, що кешуються для одного з'єднання. Підготовлена інструкція - це попередньо скомпільована інструкція SQL, що зберігається в об'єкті-підготовленій інструкції. Цей об'єкт використовується для багаторазового виконання цієї інструкції SQL. Джерело даних WebSphere Application Server оптимізує обробку підготовлених інструкцій.
Як правило, чим більше інструкцій містить вашу програму, тим більше повинен бути розмір кеша. Наприклад, якщо програма містить п'ять інструкцій SQL, задайте розмір кеша інструкцій рівним 5, щоб у кожного з'єднання було п'ять інструкцій.
• Enable multithreaded access detection (Увімкнути визначення багатопоточного доступу).
Якщо увімкнути цю опцію, сервер додатків визначатиме наявність доступу з використанням кількох потоків.
•Enable database reauthentication (Включити повторну аутентифікацію у базі даних).
Пошукові запити в пулі з'єднань не включають ім'я користувача та пароль. Якщо увімкнути цю опцію, з'єднання як і раніше витягуватиметься з пулу, але ви повинні будете розширити клас DataStoreHelper і створити реалізацію методу doConnectionSetupPerTransaction(), в якому відбувається повторна автентифікація.
Повторна автентифікація для з'єднань дозволяє покращити продуктивність шляхом зниження витрат на відкриття та закриття з'єднань, особливо для додатків, які завжди вимагають з'єднання під іншим ім'ям користувача та паролем.

Мал. 6.15. Властивості джерела даних WebSphere
• Manage cached handles (Керувати збереженими в кеш дескрипторами).
Коли ви викликаєте для доступу до бази даних метод getConnection(), він повертає дескриптор з'єднання. Цей дескриптор є не фізичною сполукою, а поданням фізичної сполуки. Фізичним з'єднанням управляє менеджер з'єднань. Кешований дескриптор - це дескриптор з'єднання, який зберігається програмою при виході за рамки транзакції та методу.
Цей параметр вказує, чи контейнер повинен відстежувати збережені в кеш дескриптори. Це може створювати додаткове навантаження, і цей параметр слід включати лише у спеціальних ситуаціях. За додатковою інформацією щодо кешування дескрипторів звертайтеся до теми «Connection Handles» (Дескриптори з'єднань) Центру інформації.
• Transaction context logging (Журналювання контексту транзакції).
У програмній моделі J2EE зазначається, що з'єднання завжди повинні мати контекст транзакції. Однак деякі програми не мають свого контексту. Данаопція вказує, що контейнер повинен заносити відсутність контексту транзакції журнал операцій при отриманні з'єднання.
• Pretest existing pooled connections (Попереднє тестування існуючих у пулі з'єднань).
Якщо встановити цей прапорець, сервер програм намагатиметься підключитися до джерела даних, перш ніж спробувати надсилати або приймати дані від цього джерела. Якщо вибрати цю властивість, ви зможете вказати з яким інтервалом (у секундах) сервер програм намагатиметься встановити з'єднання і скільки спроб він зробить. Для тестування з'єднання базу даних посилається попередньо складена тестова SQL-рядок.