powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Распределенный вызов spl через динамический запрос выдает Memory allocation failed
9 сообщений из 9, страница 1 из 1
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38661652
_torero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Используем IDS 11.50 FC8.

1) На одном сервере создаем таблицу и SPL для доступа к ней:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create database dbsrv1;
database dbsrv1;
grant dba to public;

create table test (i integer, val varchar(10));
insert into test values (1, 'aaa');
insert into test values (2, 'bbb');
insert into test values (3, 'ccc');

---------
create procedure get_val (_i integer)

   returning varchar(10) as val
   define _val varchar(10);
   let _val = '';

   select val into _val from test where i = _i;

    return _val;

end procedure;



2) На другом сервере (другой хост! и соответственно другой инстанс) создаем SPL, в которой через динамический запрос делаем распределенный вызов spl из первого сервера:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
create database dbsrv2;
database dbsrv2;
grant dba to public;
------
------
create procedure get_test ()

returning varchar(10) as val

DEFINE _db     varchar(100);
DEFINE _val      varchar(100);
DEFINE dsql        varchar(250);

  Let _db   = "dbsrv1@ol_tsr";


  ---------------------------------------
  Let dsql = " execute procedure "||trim(_db)||":get_val(2)";


  PREPARE stmt_id FROM dsql;
  DECLARE cust_cur cursor FOR stmt_id;
  OPEN cust_cur ;

  FETCH cust_cur INTO _val;

  CLOSE cust_cur;
  FREE cust_cur ;
  FREE stmt_id ;

  ---------------------------------------
  return _val;

end procedure;                   




3) Теперь на втором же сервере запускаем на выполнение оберточную SPL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
drop procedure call_test;
create procedure call_test()

   define _val varchar(10);
   define _ix integer;

for _ix = 1 to 1000000 
   execute procedure get_test() into _val;
end for;

end procedure;

execute procedure call_test();



В результате выполнения начинает выделяться shared memory на первом сервере. Затем съедается память windows первого сервера. (приложенный файл spl_1.gif).
Потом клиент на втором сервере, запустивший call_test() отваливается с ошибкой "Memory allocation failed during query processing" (приложенный файл spl_2.gif).

Лечится командой onmode -F на первом сервере (приложенный файл spl_3.gif).


Почему так происходит? Что можно изменить?
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38661653
_torero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
второй файл spl_2.gif
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38661655
_torero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
третий файл spl_3.gif
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38661739
_torero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел эту ситуацию в фикс-листе
http://www-01.ibm.com/support/docview.wss?uid=swg27022346

под номером IC85176

но внутрь не пускает
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38662007
IC85176: MEMORY LEAK ON REMOTE INSTANCE PREPARING A CURSOR AND CALLING A STORED PROCEDURE INSIDE A LOOP

APAR status OPEN

Error description

If a prepare statement and a call to a remote stored procedure
are ran into a loop, a memory leak will be experienced in the
UDR pool.


_toreroно внутрь не пускает
Пароль забыли или религия не позволяет зарегистрироваться на ibm.com ?
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38662154
_torero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев Павел,
нашел тот fix уже после создания темы.

Поэтому эту ветку можно было бы закрыть и открыть новую "Как скачать fix", но разрешите пока тут продолжу.

Регистрация есть, но даже с ней не получается.
Во 1-х, при входе вышло сообщение о лимитациях для некоторых стран.
Во 2-х, выбирая, например, продукт Information Managment - IBM Data Server Client Packages кнопка Continue не активная.
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38663065
Скачать fix просто - иметь честно купленый Информикс и действующую поддержку (продляется ежегодно).

Но что бы даже описания багов не почитать..... Или что-то не так или IBM перемудрили.
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38665587
VRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев ПавелСкачать fix просто - иметь честно купленый Информикс и действующую поддержку (продляется ежегодно).


Для версий Informix Developer Edition или Informix Innovator-C Edition тоже требуется действующая поддержка?
...
Рейтинг: 0 / 0
Распределенный вызов spl через динамический запрос выдает Memory allocation failed
    #38665743
эээээ не задумывался ибо не надо было такие особенности знать

почитайте ibm.com - там всё есть

(только временами зарыто в недрах не по детски :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Распределенный вызов spl через динамический запрос выдает Memory allocation failed
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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