Гость
Форумы / Informix [игнор отключен] [закрыт для гостей] / ISAM error: non-exclusive access / 8 сообщений из 8, страница 1 из 1
06.05.2005, 12:06
    #33052346
sitar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
informix 7.31.UD6

пытаюсь создать индекс к часто используемой табличке.

begin work;
lock table docum_kopf in exclusive mode;
create index vix311_10x on docum_kopf (ext_id);
commit work;
-------
ответ:
-------
Started transaction.
Table locked.
212: Cannot add index.
106: ISAM error: non-exclusive access.
Error in line 1
Near character position 97
Data committed.
-------

что-то непойму в чем проблемма %)
...
Рейтинг: 0 / 0
06.05.2005, 12:40
    #33052453
Valentyn Pidburtnyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
sitarinformix 7.31.UD6

пытаюсь создать индекс к часто используемой табличке.

begin work;
lock table docum_kopf in exclusive mode;
create index vix311_10x on docum_kopf (ext_id);
commit work;


Как же может create index отработать, если таблица заблокирована на момент его выполнения??

Просто запускай:
create index vix311_10x on docum_kopf (ext_id);

Экслюзивную блокировку на таблицу create index поставит самостоятельно :)
...
Рейтинг: 0 / 0
06.05.2005, 13:03
    #33052523
sitar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
Valentyn Pidburtnyi
Как же может create index отработать, если таблица заблокирована на момент его выполнения??
Просто запускай:
create index vix311_10x on docum_kopf (ext_id);
Экслюзивную блокировку на таблицу create index поставит самостоятельно :)

ну блокирую ее ведь я блокирую %)
просто так нехочет выполнятся говорит: ISAM error: non-exclusive access.

почему залочить нарпямую дает, а сам create index этого сделать не может ?
...
Рейтинг: 0 / 0
10.05.2005, 12:01
    #33055565
Valentyn Pidburtnyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
sitar
ну блокирую ее ведь я блокирую %)
просто так нехочет выполнятся говорит: ISAM error: non-exclusive access.

почему залочить нарпямую дает, а сам create index этого сделать не может ?

Хмм. Че-то я не то ответил в первый раз...:( Если явно открывать транзакцию и явно проставлять блокировку - должно работать, ты прав.

А может просто таблица заблокирована уже кем-то?
Если lock table in exclusive mode запустить, отрабатывает нормально?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.10.2010, 12:02
    #36894303
ga
ga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
Такая же проблема. Не могу построить индекс.
CREATE INDEX "ifxguest".master_acc ON "informix".accounts(fiaccmaster)

Получаю:
Could not open database table (informix.accounts).
-106 ISAM error: non-exclusive access.

Если кто решил, расскажите как
...
Рейтинг: 0 / 0
12.10.2010, 12:57
    #36894484
Leonid Vorontsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
1. Найти partnum "открытой" таблицы:
select hex( partnum ) from systables where tabname = 'accounts' -- получится например 0x011001c5

2. Найти сессию, которая держит таблицу "открытой":
2.1. Отфильтровать onstat по найденному partnum:
onstat -g opn | find "0x011001c5"
во второй колонке найдём thread control block интересующих нас сессий (например 12ee0bc8).
2.2. Отфильтровать onstat по найденному rstcb:
onstat -u | find "12ee0bc8"

Формат всех этих hex от версии к версии может отличаться (большие/маленькие буквы наличие/отсутствие префикса 0x). Я понимаю, не очень-то удобно, но другого способа я не знаю.
...
Рейтинг: 0 / 0
12.10.2010, 14:24
    #36894764
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
gaЕсли кто решил, расскажите как
1. Работы по изменению структуры БД необходимо проводить без активных пользователей в системе
2. Поиск пользователей, заблокировавших (использующих) конкретную таблицу может быть разным в зависимости от версии IDS и причины
3. Если это стандартные блокировки - см. ниже пару примеров запросов (поиском можно найти еще множество подобных) как найти блокировки и их владельца для конкретной таблицы
4. В редких случаях причиной служат не стандартные блокировки - используйте "ручной" способ от Леонида.

Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
--------------------------------------------------
-- Who has locks on a table?
--  (whole instance, all db)
-- 
-- V.Shulzhenko DBA_Tools (by Scott Kolaya (CDI))
--------------------------------------------------
set isolation to dirty read;
select  dbsname[ 1 , 18 ]
        ,username[ 1 , 8 ]
        ,owner  sid_owner
        ,type
        ,case when rowidlk= 0  then 'all' when rowidlk= 256  then 'page' else 'row' end   locked
--        ,hex(rowidlk) 
from syslocks l, syssessions s
     ,outer flags_text f
where l.owner = s.sid
      and f.tabname='syslcktab' and f.flags=rowidlk
      and l.tabname matches
'table_name'    -- select table name
order by  1 
;

--------------------------------------------------------------------
-- Who has locks on a tables (include fragmented tables)
--    selected db only
--    NOT USING sysmaster:SYSTABNAMES
-- 
-- найти сессию, которая имеет блокировки на таблице (без использования systabnames)
-- 
--   для решения проблемы утечки памяти при работе с огромной systabnames (десятки тысяч)
--   из-за Bug 115066 - SYSTEM WITH LARGE NUMBER OF TABLES CAN CONSUME LARGE AMOUNTS OF MEMORY IN THE RSAM POOL
-- 
-- V.Shulzhenko DBA_Tools (by Taн (SQL.RU 2006-10))
--------------------------------------------------------------------
set isolation to dirty read;
select  
        t.tabname[ 1 , 18 ]
        ,e.txt[ 1 , 4 ]     lock_type
        ,username[ 1 , 8 ]
        ,sid            sid_owner
from sysmaster:sysrstcb a, sysmaster:syslcktab c, sysmaster:flags_text e, systables t
where   c.owner = a.txp 
        and e.tabname = 'syslcktab' and e.flags = c.type
        and ( c.partnum = hex(t.partnum) 
              or
              c.partnum in (select hex(partn) from sysfragments f,systables t 
                       where t.tabid=f.tabid and fragtype = 'T')
            )
        and t.tabname matches 
--'table-name or *'
order by  1 , 2 , 3 , 4 
...
Рейтинг: 0 / 0
13.10.2010, 09:35
    #36896242
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ISAM error: non-exclusive access
sitarinformix 7.31.UD6

пытаюсь создать индекс к часто используемой табличке.

begin work;
lock table docum_kopf in exclusive mode;
create index vix311_10x on docum_kopf (ext_id);
commit work;
-------
ответ:
-------
Started transaction.
Table locked.
212: Cannot add index.
106: ISAM error: non-exclusive access.
Error in line 1
Near character position 97
Data committed.
-------

что-то непойму в чем проблемма %)

/topic/751477&hl=lock#8644003
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / ISAM error: non-exclusive access / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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