powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как задавать параметры DRDA?
2 сообщений из 2, страница 1 из 1
Как задавать параметры DRDA?
    #38229276
BlackTomcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, господа!

Подскажите, пожалуйста такую вещь.

Есть две подсистемы на z/OS, DB2 9.1
На одной подсистеме работает ХП на SQLJ, которая вызывает ХП с другой подсистемы через трехзвенное имя. Проблема в том, что если вызываемая процедура делает COMMIT, то вызывающая процедура слетает с -751-м кодом. В описании данной ошибки так и написано, что COMMIT в удаленной процедуре делать нельзя, если только "The requester system must indicate that commits are allowed by sending a DRDA RDBCMTOK=TRUE indication when the stored procedure is called."

Вот эти вот последние слова "when the stored procedure is called" дает основание предполагать, что этот флаг как-то можно указать при вызове удаленной процедуры. Но я нигде не сумел найти примера КАК это сделать. Как в хранимой процедуре на SQLJ указать, что при вызове
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
TestContext ctx = new TestContext("jdbc:default:connection");
ExecutionContext exCtx = ctx.getExecutionContext();
...
#sql [ctx, exCtx]
{
   call SUBSYSTEM.QUALIFIER.XPNAME(...)
};
....


указать этот флаг?

С уважением,
Black Tomcat
...
Рейтинг: 0 / 0
Как задавать параметры DRDA?
    #38229339
BlackTomcat,

Есть патчи (PTF) на похожие симптомы/проблемы.
Навскидку нашел такие.
PK99468: SQLCODE919 FROM DSNXERT WHEN CALLING STORED PROCEDURE DSNUTILU
II14647: SQLCODE -751 OR -919 ON STORED PROCEDURE EMBEDDED COMMIT OR ROLLBACK RELATIVE TO REMOTE JCC XA RELATED APPLICATION

Напрямую управлять RDBCMTOK нельзя, т.к. за обмен по DRDA-протоколу отвечает СУБД и/или JDBC-драйвер.
В такой архитектуре за промежуточное соединение между подсистемами отвечает сама СУБД.
Честно, не помню, позволено ли вообще в такой схеме удаленной процедуре самой выполнять commit.
Проще всего это проверить, написав тестовую хранимую на native-sql, которая вызовет ту же самую хранимую в удаленной системе.
При этом вызов этой тестовой хранимой выполнить или локально в подсистеме, где эта хранимая создана, или с клиента db2 из командной строки (db2cmd), чтобы временно исключить влияние JDBC-драйвера/драйверов.
Если это отработает нормально, то ставить обновления на JDBC-драйвер в комплекте DB2 for z/OS V9.1, т.к. SQLJ-хранимая работает через него. И обновлять JDBC-драйвер в приложении, которое вызывает хранимую на SQLJ, если там конечно через JDBC вызов идет.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как задавать параметры DRDA?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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