Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / WebSphere ESB. Outbound JDBC adapter & Stored procedure / 4 сообщений из 4, страница 1 из 1
01.04.2009, 13:02
    #35905514
Andrew.V.S.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere ESB. Outbound JDBC adapter & Stored procedure
Добрый день!
Подскажите, плз, как правильно делать такую вещь:

Есть
WebSphere ESB, Outbound JDBC adapter, Stored procedure
Шина через адаптер обращается к ХП - и все хорошо.
Но вот в хранимую процедуру нужно передать еще один параметр и получить на одно поле больше в резалтсете.
Какие действия нужно для этого проделать?
Достаточно ли поменять структуру бизнес объектов, или нужно сделать еще что-то?

Когда я попытался просто добавить поле в бизнес-объект, возвращаемый процедурой, получил ошибку "В объекте EJB возникла динамическая непредвиденная ситуация". Т.е. что-то я сделал не так. Но в классах, реализующих биндинг, указываются только схемы бизнес-объектов вызова и возврата хранимой процедуры, без привязки к полям и т.п.

Что я делаю не так?
Где почитать, как делать правильно?

Спасибо
...
Рейтинг: 0 / 0
02.04.2009, 09:35
    #35907311
GavrilovD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere ESB. Outbound JDBC adapter & Stored procedure
Andrew.V.S.Добрый день!
Подскажите, плз, как правильно делать такую вещь:

Есть
WebSphere ESB, Outbound JDBC adapter, Stored procedure
Шина через адаптер обращается к ХП - и все хорошо.
Но вот в хранимую процедуру нужно передать еще один параметр и получить на одно поле больше в резалтсете.
Какие действия нужно для этого проделать?
Достаточно ли поменять структуру бизнес объектов, или нужно сделать еще что-то?

Когда я попытался просто добавить поле в бизнес-объект, возвращаемый процедурой, получил ошибку "В объекте EJB возникла динамическая непредвиденная ситуация". Т.е. что-то я сделал не так. Но в классах, реализующих биндинг, указываются только схемы бизнес-объектов вызова и возврата хранимой процедуры, без привязки к полям и т.п.

Что я делаю не так?
Где почитать, как делать правильно?

Спасибо
Для начала, как это работает в принципе:

Если вы добавляете в уже существующий EJB (а я предполагаю, что используется EJB 2.1) некое новое поле, оно соотвественно должно быть объявлено (как минимум) в ejb-jar.xml, и должно быть замаплено на конкретную таблицу и конкретное поле в этой таблице в базе данных... у WAS, как и у всех иных серверов приложений других производителей существует так называемы вендор-специфик дескритор, вот в нем и должен присутствовать такой биндинг.

Может быть так же биндинг по умолчанию, в этом случае, контейнер строит имя поля таблицы по имени метода... У каждого производителя - свой подход подобных наименований и биндинга по умолчанию.

При работе в WebSphere Integrator (Rational Applicaiton Developer), когда вы создаете, модифицируете некие EJB компоненты - необходимые файлы дескрипторов генерятся и меняются автоматически. Если исполтьзуется схема развертывнаия "from top to down" (схема БД генерится контейнером), то тут подводных камней точно не должно быть (когда подымаете вверх - иногда бывает). Надо попробовать удалить все стабы для ваших EJB компонентов (не удалите по ошибке сами EJB) и сделать "редиплой", все, скорее всего, заработает...
...
Рейтинг: 0 / 0
03.04.2009, 13:24
    #35910591
Andrew.V.S.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere ESB. Outbound JDBC adapter & Stored procedure
Отчитываюсь о результатах.
Как показал WinDiff, редактор бизнес-объектов не добавляет некоторых атрибутов для нового поля. А именно строк:

<xsd:annotation xml:space="preserve">
<xsd:appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata">
<jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata">
<jdbcasi:SPParameterType/>
</jdbcasi:JDBCAttributeTypeMetadata>
</xsd:appinfo>
</xsd:annotation>

если открыть .xsd как текст и добавить поле вручную копипастом из уже имеющегося - все работает как надо.

И еще: редактор бизнес-объектов записывает уже имеющиеся тэги немного иначе. Меняет местами атрибуты, иначе закрывает пустые тэги. Не знаю, влияет ли это на корректность работы элемента Экспорт. По идее - не должно бы. Но с этим экспериментировать уже не досуг :)

Удачи!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.08.2010, 17:45
    #36786674
Степка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere ESB. Outbound JDBC adapter & Stored procedure
Andrew.V.S.Отчитываюсь о результатах.
Как показал WinDiff, редактор бизнес-объектов не добавляет некоторых атрибутов для нового поля. А именно строк:

<xsd:annotation xml:space="preserve">
<xsd:appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata">
<jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata">
<jdbcasi:SPParameterType/>
</jdbcasi:JDBCAttributeTypeMetadata>
</xsd:appinfo>
</xsd:annotation>

если открыть .xsd как текст и добавить поле вручную копипастом из уже имеющегося - все работает как надо.

И еще: редактор бизнес-объектов записывает уже имеющиеся тэги немного иначе. Меняет местами атрибуты, иначе закрывает пустые тэги. Не знаю, влияет ли это на корректность работы элемента Экспорт. По идее - не должно бы. Но с этим экспериментировать уже не досуг :)

Удачи!Может, кому-нибудь пригодится. Тоже столкнулся с подобной проблемой, но в Inbound адаптере. Редактор бизнес-объектов все-таки генерирует эти строки. Просто для этого нужно выделить мышкой добавленное поле, открыть его в properties view, перейти на вкладку Application Info, там нажать Add и выбрать нужные вам свойства. Но в моем случае этого оказалось мало: после редеплоя потребовалась перезагрузка сервера WebSphere :( Без этого новое поле, хоть ты тресни, не читалось из таблицы.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / WebSphere ESB. Outbound JDBC adapter & Stored procedure / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]