Этот раздел описывает процесс настройки службы Посредника запросов объектов (ORB) Java.
Для просмотра этой страницы административной консоли выберите Серверы > Типы серверов > серверы приложений WebSphere > имя-сервера > Службы контейнера> Служба ORB.
Существует несколько параметров для управления работой Посредника запросов объектов (ORB). С помощью этих параметров можно улучшить производительность приложений, содержащих объекты EJB. Значения этих параметров можно менять для сервера по умолчанию или любого сервера приложений, настроенного в административном домене.
Задает время ожидания в секундах сообщения-запроса.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.RequestTimeout.
| Тип данных | int |
| Единицы измерения | Секунды |
| Значение по умолчанию | 180 |
| Диапазон | 0 - максимальное целое число, допустимое в Java |
Задает количество попыток отправки запроса ORB, если сервер не отвечает. Повторение попыток иногда помогает при кратковременных сетевых неполадках. Это поле игнорируется на платформе z/OS.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.requestRetriesCount.
| Тип данных | int |
| Значение по умолчанию | 1 |
| Диапазон | От 1 до 10 |
Задает интервал в миллисекундах между попытками запроса. Это поле игнорируется на платформе z/OS.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.requestRetriesDelay.
| Тип данных | int |
| Единицы измерения | Миллисекунды |
| Значение по умолчанию | 0 |
| Диапазон | От 0 до 60000 |
Задает максимальное число записей, которое может находится в кэше соединения ORB, перед тем как ORB начнет удалять из него неактивные соединения. Это поле игнорируется на платформе z/OS.
Возможно, количество активных соединений в кэше временно превысит это пороговое значение. При необходимости ORB будет продолжать добавлять соединения по мере доступности ресурсов.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.MaxOpenConnections.
| Тип данных | Целое число |
| Единицы измерения | Соединения |
| Значение по умолчанию | 240 |
| Диапазон | 10 - максимальное целое число, допустимое в Java |
Задает минимальное количество записей в кэше соединения ORB. Это поле игнорируется на платформе z/OS.
ORB не будет удалять неактивные соединения, если число записей ниже этого значения.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.MinOpenConnections.
| Тип данных | Целое число |
| Единицы измерения | Соединения |
| Значение по умолчанию | 100 |
| Диапазон | Любое целое число, которое хотя бы на 5 меньше, чем значение, указанное для свойства Максимальный размер кэша соединения. |
Включает трассировку сообщений протокола ORB General Inter-ORB Protocol (GIOP).
Этот параметр влияет на два системных свойства: com.ibm.CORBA.Debug и com.ibm.CORBA.CommTrace. Если вы устанавливаете эти свойства с помощью командной строки, они оба должны иметь значение true, чтобы трассировка сообщений GIOP была включена.
| Тип данных | Булевское значение |
| Значение по умолчанию | Не включен (false) |
Задает время ожидания в секундах сообщения LocateRequest. Это поле игнорируется на платформе z/OS.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.LocateRequestTimeout.
| Тип данных | int |
| Единицы измерения | Секунды |
| Значение по умолчанию | 180 |
| Диапазон | от 0 до 300 |
Задает способ использования клиентским ORB туннелирования HTTP. Это поле игнорируется на платформе z/OS.
При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.ForceTunnel.
| Тип данных | Строка |
| Значение по умолчанию | NEVER |
| Диапазон | Возможны значения: ALWAYS, NEVER или WHENREQUIRED. |
Задает Web-адрес сервлета, используемого для поддержки туннелирования HTTP. Это поле игнорируется на платформе z/OS.
Этот Web-адрес должен иметь следующий формат:
http://w3.mycorp.com:81/servlet/com.ibm.CORBA.services.IIOPTunnelServlet
Для аплетов: http://applethost:port/servlet/com.ibm.CORBA.services.IIOPTunnelServlet.
Это поле обязательно, если установлено туннелирование HTTP. При использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.TunnelAgentURL.
Задает способ передачи параметров ORB. Если эта опция включена, ORB передает параметры по ссылке, а не по значению, что позволяет избежать дублирования объекта. Если эта опция выключена, то передается копия параметра, а не сам объект параметра. Это может быть неэффективно, поскольку ORB сначала должен сделать копию каждого объекта параметра.
Эту опцию можно использовать, только если клиент специализированных объектов JavaBeans (EJB) и объект EJB находятся в одном загрузчике классов. Это требование означает, что клиент EJB и сам EJB должны быть развернуты в одном файле EAR.
Если клиент и сервер специализированных объектов JavaBeans (EJB) установлены в одном экземпляре продукта, и они используют удаленные интерфейсы, то включение опции передачи по ссылке может улучшить производительность до 50%. Опция передачи по ссылке влияет на быстродействие, только при передаче в качестве параметров сложных типов объектов. Поэтому, типы int и float всегда копируются, независимо от модели вызова.
Предотвращение неполадок: Пользуйтесь этим свойством осторожно, потому что
может возникнуть непредвиденный результат. Если ссылка на объект
изменяется, то сам объект инициатора также изменяется, потому что это тот
же самый объект. gotchaПри использовании сценариев командной строки полное имя этого системного свойства - com.ibm.CORBA.iiop.noLocalCopies.
| Тип данных | Булевское значение |
| Значение по умолчанию | Не включен (false) |
Использование этой опции для объектов EJB с удаленными интерфейсами нарушает Спецификацию Enterprise JavaBeans (EJB) версии 2.0 (см. раздел 5.4). Ссылки на объекты, передаваемые методам объектов JavaBeans (EJB), не копируются и могут быть повреждены.
Iterator iterator = collection.iterator();
MyPrimaryKey pk = new MyPrimaryKey();
while (iterator.hasNext()) {
pk.id = (String) iterator.next();
MyEJB myEJB = myEJBHome.findByPrimaryKey(pk);
}
В этом примере, ссылка на один и тот же объект MyPrimaryKey передается в продукт каждый раз с другим значением ИД. Выполнение этого исходного кода со включенной передачей по ссылке вызовет неполадку в сервере приложений, потому что разные объекты EJB ссылаются на один и тот же объект MyPrimaryKey. Для того чтобы избежать этого, установите системное свойство com.ibm.websphere.ejbcontainer.allowPrimaryKeyMutation в true, если включена опция передачи по ссылке. Если опция передачи по ссылке имеет значение true, то контейнер объекта EJB создает локальную копию объекта PrimaryKey. Однако, в результате этого немного снижается выигрыш в быстродействии от установки опции передачи по ссылке.
Как правило, любой исходный код приложения, передающий методу объекта EJB ссылку на объект в качестве параметра, должен быть тщательно изучен, для того чтобы определить, не приведет ли это к нарушению целостности данных или другим проблемам.
После проверки исходного кода можно включить опцию передачи по ссылке, установив значение системного свойства com.ibm.CORBA.iiop.noLocalCopies равным true. Можно также включить опцию передачи по ссылке в административной консоли. Для этого, выберите Серверы > Типы серверов > Серверы приложений > имя-сервера > Службы контейнера > Служба ORB , а затем Передача по ссылке.
Ссылки, помеченные как (в сети), требуют подключения к Internet.