powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / 452 loc_open
10 сообщений из 10, страница 1 из 1
452 loc_open
    #38136872
Фотография Дядя Жора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При dbexport базы получаю такую вот нехорошую ошибку.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create table "informix".waitquery
  (
    query_num integer,
    batch_num integer not null ,
    group_num smallint,
    fdaydate date,
    fclass_num integer not null ,
    printdata text,
    primary key (query_num)
  );
revoke all on "informix".waitquery from "public";

*** Error fetching data row.

452 - 'loc_open()' failed.

1 - Not owner

C:\Informix>



Посоветуйте куда копать, т.к. прочитав описание ошибки в документации ничего не понял.
-452
'loc_open()' failed.

The loc_open() function provided in the locator structure for a BYTE or TEXT value in this statement was called and returned a negative return code. When the value is located using user-supplied functions (loc_loctype contains LOCUSER), this function is part of the program, and you have to diagnose its problems yourself. When the value is located in a file (loc_loctype contains LOCFILE or, in a 4GL program, the variable has been located in a file), this error indicates that the system-supplied loc_open() function was not able to open the file. Possibly the file does not exist, you do not have read permission for the file, or too many files are open.
...
Рейтинг: 0 / 0
452 loc_open
    #38137016
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Жора,

ключевой вопрос тут "1 - Not owner".
452 - ето уже наведеннная ошибка, связанная с тем, что сервер не может открьіть файл.

У пользователя, под которьім идет вьігрузка, не хватает прав на каталог, в которьій она идет.
...
Рейтинг: 0 / 0
452 loc_open
    #38137233
Фотография Дядя Жора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaugavaДядя Жора,

ключевой вопрос тут "1 - Not owner".
452 - ето уже наведеннная ошибка, связанная с тем, что сервер не может открьіть файл.

У пользователя, под которьім идет вьігрузка, не хватает прав на каталог, в которьій она идет.

Маловероятно. Во-первых эта процедура уже работает много лет регулярно. Во-вторых пользователь входит в группу "Администраторы" и в третьих обламывается на одной таблице, а до этого около сотни таблиц без проблем экспортируются в этот каталог.
...
Рейтинг: 0 / 0
452 loc_open
    #38137262
DrGonzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Жора,

Скорее всего проблема с правами на директорию, где dbexport пытается создать временные файлы:

IBMSimple large objects (Version 9.21 or later versions)

When the dbimport, dbexport, and DB-Access utilities process simple-large-object data, they create temporary files for that data in a temporary directory.
Before you export or import data from tables that contain simple large objects, you must have one of the following items:

A \tmp directory on your currently active drive
The DBTEMP environment variable set to point to a directory that is available for temporary storage of the simple large objects

Windows Only
Windows sets the TMP and TEMP environment variables in the command prompt sessions, by default. However, if the TMP, TEMP, and DBTEMP environment variables are not set, dbimport places the temporary files for the simple large objects in the \tmp directory.

Attention: If a table has a CLOB or BLOB in a column, you cannot use dbexport to export the table to a tape. If a table has a user-defined type in a column, using dbexport to export the table to a tape might yield unpredictable results, depending on the export function of the user-defined type. Exported CLOB sizes are stored in hex format in the unload file.

http://publib.boulder.ibm.com/infocenter/idshelp/v115/topic/com.ibm.mig.doc/ids_mig_131.htm
...
Рейтинг: 0 / 0
452 loc_open
    #38137648
Фотография Дядя Жора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrGonzoДядя Жора,

Скорее всего проблема с правами на директорию, где dbexport пытается создать временные файлы


Хорошо. Как тогда объяснить такую ситуацию?

Код: sql
1.
dbexport baza -o e:\temp



Успешно экспортируется несколько сотен таблиц. На таблице waitquery вылетает с указанной выше ошибкой. Если предварительно почистить табличку
Код: sql
1.
delete from waitquery



то ошибка уходит и экспорт проходит без ошибок. Есественно, что содержимое этой таблички экспортируется в файл нулевого размера. Но все остальные сотни таблиц на несколько десятков гектар ложатся рядом без проблем.
Интересно поле
printdata text,
Если обычным запросом посмотреть, то в нём бинарные данные. Может в связи с этим экспорт вываливается, что встречает какую-то "больную" для него последовательность?
Интересно ещё, что выгрузка такого плана
Код: sql
1.
2.
unload to 'e:\temp\wq.txt'
select * from waitquery


проходит без проблем. Правда внутри всё те же бинарные данные.
...
Рейтинг: 0 / 0
452 loc_open
    #38137779
DrGonzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Жора,

Может вы не внимательно прочитали статью в цитате. Речь идет не о правах на директорию, в которую вы базу выгружаете, а о правах на директорию, в которой dbexport создает временные файлы при выгрузке блобов ( наверняка, те таблицы, которые успешно выгружаются, полей с блобами не содержат; это также объясняет ситуацию, когда вы пытаетесь выгрузить пустую таблицу - блобов нет, файлы создавать нет нужды).

Проверьте куда указывает переменная окружения TMP, TEMP или DBTEMP. Установите, куда надо и тд
...
Рейтинг: 0 / 0
452 loc_open
    #38137964
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - проверить права на чанк с блобспейсом.
...
Рейтинг: 0 / 0
452 loc_open
    #38138392
Фотография Дядя Жора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrGonzoДядя Жора,

Может вы не внимательно прочитали статью в цитате. Речь идет не о правах на директорию, в которую вы базу выгружаете, а о правах на директорию, в которой dbexport создает временные файлы при выгрузке блобов ( наверняка, те таблицы, которые успешно выгружаются, полей с блобами не содержат; это также объясняет ситуацию, когда вы пытаетесь выгрузить пустую таблицу - блобов нет, файлы создавать нет нужды).

Проверьте куда указывает переменная окружения TMP, TEMP или DBTEMP. Установите, куда надо и тд

Послушайте, ну о каких правах может идти речь если пользователь informix под которым всё работает и в т.ч. dbexport входит в виндовую группу "Администраторы" и "Informix-Admin"?
Ситуация разрешилась самым загадочным образом. Я тупо перегрузил винду и проблема ушла и отловить её снова не удаётся никак. Экспортю тестовую базу и потому данные те же на 100%.
...
Рейтинг: 0 / 0
452 loc_open
    #38138401
Фотография Дядя Жора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaugavaКак вариант - проверить права на чанк с блобспейсом.

Блобовского дбспейса нету вообще. Да и самого блоба в табличке нету как можете сами поглядеть в первом сообщении.
...
Рейтинг: 0 / 0
452 loc_open
    #38139232
DrGonzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя ЖораДа и самого блоба в табличке нету как можете сами поглядеть в первом сообщении.

Блоб-то в табличке как раз есть:

printdata text,

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


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