, штатный инженер-программист, IBM UK Ltd 21.02.2008 В первой части серии из трех статей Java-разработчик Дэвид Карри знакомит с некоторыми приемами оптимизации Java™ 2 Enterprise Edition (J2EE) Connector Architecture (JCA) 1.5, которые ускорят работу имеющихся или новых исходящих адаптеров ресурсов. Он также рассматривает некоторые дополнения, которые позволят адаптерам ресурсов начать свою собственную новую жизнь. Данная серия очень важна для тех, кто хочет улучшить производительность (или добавить новую функциональность) существующих адаптеров ресурсов или думает над написанием нового JCA 1.5-совместимого адаптера ресурсов. Также она должна быть интересна тем, кто пишет приложения, использующие адаптеры ресурсов, и хочет знать немного больше о том, что происходит за кулисами. JCA 1.5, самая новая версия J2EE Connector Architecture, имеет много существенных улучшений и важных дополнений. В данной статье, первой в серии из трех статей, посвященной этим изменениям, я познакомлю вас с некоторыми приемами оптимизации, которые ускорят работу приложений, использующих исходящие адаптеры ресурсов, особенно тех, которые используют транзакции. Затем я рассмотрю расширения в соглашении по управлению циклом жизни, которые должны предохранить приложения от разрыва соединений и позволить адаптерам ресурсов начать собственную жизнь. Она подготовит вас к работе со второй частью данной серии, в которой рассматриваются новые соглашения по управлению работой и поступлению транзакций, а также с третьей частью, в которой исследуется давно ожидаемое соглашение по поступлению транзакций, больше известное как поддержка управляемых сообщениями компонентов (Message-Driven Bean, MDB). Предполагается наличие у вас достаточного понимания соглашения по управлению JCA-соединением. Все принципы оригинальной спецификации 1.0 все еще применимы, поэтому, если вы являетесь новичком в JCA, я рекомендую сначала поработать с вводным учебным руководством Вили Фаррелла (см. раздел " "). Новая версия спецификации JCA не может сделать соединение между приложением и серверной системой быстрее, но JCA 1.5 представила два набора интерфейсов, которые могут ускорить приложения, использующие соединения. Первый набор снимает ограничения в управлении серверами приложений описателями (handles) соединений предыдущих версий JCA. Как известно многим из вас, J2EE поддерживает две модели использования соединений, которые я буду называть get-use-close (получить-использовать-закрыть) и cached-handle (кэшированный описатель). Более подробное описание этих моделей поможет понять улучшения производительности, которые предложила JCA 1.5 в этой области. В модели get-use-close приложение всегда получает новое соединение при его необходимости, использует и закрывает его, как показано в листинге 1 (для простоты я не включал в листинги примеров логику обработки исключительных ситуаций). Модель get-use-close может выглядеть неэффективной, но организация пулов соединений, реализуемы