Ошибка I/O error for file "C:\WINDOWS\TEMP\fb_sort_xxxx

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Ошибка I/O error for file "C:\WINDOWS\TEMP\fb_sort_xxxx

Сообщение kmi » 30 авг 2007, 12:42

Друзья, очень нужна помощь!
Использую в программе связь с базой Firebird 1.5 через ODBC-драйвер от Phoenix.
Программа работает некоторое достаточно продолжительное время, но затем возникает ошибка типа
"I/O error for file "C:\WINDOWS\TEMP\fb_sort_xxxxxx". Error while trying to open file. Недопустимые данные."
И после этого программа перестает получать данные из базы.
Такая же программа (одна и та же сборка) на другом компьютере, работающая параллельно, никаких ошибок не выдает, хотя работает с теми же данными.
Отчего может быть такая напасть и как с ней бороться?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 30 авг 2007, 12:52

Место на диске кончилось.
Или старая файловая система не позволяет раздуть размер.

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 30 авг 2007, 12:56

WildSery писал(а):Место на диске кончилось.
Или старая файловая система не позволяет раздуть размер.
А с правами пользователя это может быть связано?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 30 авг 2007, 13:15

В каталог C:\WINDOWS\TEMP\ ? Наверное. Я с виндусом редко.
FB у тебя как сервис или как приложение запускается? И от какого юзера, само собой.

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 30 авг 2007, 14:08

Вход идет с правами администратора. Свободное место на диске - 30 Гб. NTFS. FB работает на выделенном сервере как сервис. Подключение к нему идет по локалке посредством TCP/IP.

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 30 авг 2007, 14:30

А может помочь параметр TempDirectories на сервере?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 30 авг 2007, 15:10

kmi писал(а):А может помочь параметр TempDirectories на сервере?
Вряд ли.
Программа эта самая, чего за запрос такой отправляет на сервер, что сортировочный файл создаётся, не смотрел?
Отправляет ли такой запрос тот, другой комп, и создаётся ли файл сортировки в этом случае? С теми же параметрами запрос?

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 30 авг 2007, 15:13

Запросы Select. Все машины отправляют запросы одинаковые. Соответственно, файлы сортировки создаются в любом случае.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 30 авг 2007, 15:37

kmi писал(а):Вход идет с правами администратора.
Тебя не это спрашивают. Тебя спрашивают под каким аккаунтом запущен сервер FB.

Собственно, при кривой БД и запросе сожрать 30ГБ под сортировку - нет ничего невозможного.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка I/O error for file "C:\WINDOWS\TEMP\fb_sort_

Сообщение hvlad » 30 авг 2007, 15:52

kmi писал(а):Программа работает некоторое достаточно продолжительное время, но затем возникает ошибка типа
"I/O error for file "C:\WINDOWS\TEMP\fb_sort_xxxxxx". Error while trying to open file. Недопустимые данные."
Не знаю такой ошибки. Нужен точный текст

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Re: Ошибка I/O error for file "C:\WINDOWS\TEMP\fb_sort_

Сообщение kmi » 30 авг 2007, 16:25

hvlad писал(а):Не знаю такой ошибки. Нужен точный текст
Это точный текст. Вместо xxxxxx указывается некоторая последовательность символов, делающая имя файла уникальной.

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 30 авг 2007, 16:28

Доступ к базе под SYSDBA

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 30 авг 2007, 18:26

kmi писал(а):Доступ к базе под SYSDBA
диск на проблемной машине живой? или это только кажется?
что ты в конфиге в параметре TempDirectories указал?

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 30 авг 2007, 18:31

Диск живой. Иначе бы вообще все умерло.
Конфигу пока не менял. Т.е. используется значение по умолчанию. Отсюда и Windows\Temp

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: Ошибка I/O error for file "C:\WINDOWS\TEMP\fb_sort_

Сообщение WildSery » 30 авг 2007, 18:52

kmi писал(а):Это точный текст. Вместо xxxxxx указывается некоторая последовательность символов, делающая имя файла уникальной.
Скопируй строку из файла firebird.log, где эта ошибка написана.

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 31 авг 2007, 19:35

В лог-файле ошибка отсутствует. Фиксируются только данные о разрывах и восстановлении подключения.

Установка параметра TempDirectories = e:\temp; f:\temp в файле конфигурации привела к тому, что ошибка с файлом сортировки исчезла, но возникла другая проблема. Некоторое количество клиентов подключается замечательно. Но затем подключения начинают отвергаться. Даже попытка подключения к расшаренной папке на сервере приводит к ошибке "Превышено максимальное количество подключений". В результате из 40 клиентов работает только 15. Впрочем, эти 15 работают корректно.

Если я комментирую параметр TempDirectories в файле конфигурации - все клиенты подключаются, но вновь возникают проблемы с сортировкой.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 02 сен 2007, 09:52

kmi писал(а): ..........Но затем подключения начинают отвергаться. Даже попытка подключения к расшаренной папке на сервере приводит.......
А шара здесь каким боком и вообще нафиг?

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 03 сен 2007, 23:02

Шара тут привалилась хитро. Инженеры, ставившие систему, создали и расшарили папку, в которую слили дистрибутив, затем установили сервер Firebird, поместили базу и в конечном итоге загнали туда новую temp-папку...

kmi
Сообщения: 30
Зарегистрирован: 29 июн 2007, 13:23

Сообщение kmi » 18 сен 2007, 13:33

Проблема решилась. Дело в правах пользователей в локалке. Сеть была организована так, что большинство машин были в одной подсети в домене, а остальные, включая сервер, - в другой подсети и в домен не входили.
При входе со второй подсети проблем не наблюдалось. А вот при входе из домена на сервер, не включенный в домен, начинались траблы. Установка Firebird в C:\Program files приводила к появлению на сервере фантастического сообщения об отсутствии файла aliases.conf, хотя он явно присутствовал. Сообщение появлялось при любой попытке подключения к серверу из домена.
Решений может быть два. Первое - ввод сервера в домен. А второе - конфигурирование Firebird таким образом, чтобы все файлы, с которыми он работает, находились вне системных папок. В частности, сам Firebird следует ставить в отдельный каталог и прописывать в firebird.conf путь к отдельному каталогу временных файлов.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 сен 2007, 17:43

коннектиться надо по tcp, а не по netbeui.
строку коннекта приведи?

Ответить