Ошибка (cannot start thread)

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

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

Ответить
pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Ошибка (cannot start thread)

Сообщение pincher1519 » 23 окт 2012, 18:01

Произвожу множественный запрос к базам данных (один и тот же запрос во всех базах данных, которые нашлись в папке).
Примерно после 134 базы данных (более 4400 баз в папках) происходит ошибка Internal Firebird Consistency Check (cannon start thread).
Упростил свою программу до одной функции, использую ее в консольном приложении, проблема все еще проявляется.
Суть программы:
Получаю список файлов.
Перебираю файлы по порядку в списке.
Для каждого файла создаю строку подключения.
Открываю коннект.
Формирую команду.
Произвожу выполнение команды в датаридер.
Перебираю записи в датаридер.
Закрываю ридер.
Закрываю коннект.
Перехожу к следующему файлу.

ну чтобы не быть голословным, приложу несколько картинок: собственно сама ошибка, диспетчер задач, и фрагмент исходного кода.

Изображение
Изображение
Изображение

Как я ранее написал, примерно после 134 обработки файла, выдается вышесказанная ошибка при попытке открыть подключение к файлу.
Использую провайдер под Firebird .net http://sourceforge.net/projects/firebir ... z/download
Использую под VS2008 Express.

Где может вкрасться проблема?

UPD Обновил пост. Может у кого появятся идеи? Пробовал вставлять dispose и sleep после закрытия подключения - проблема все равно осталась...
Последний раз редактировалось pincher1519 25 окт 2012, 11:28, всего редактировалось 1 раз.

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

Re: Ошибка (cannot start thread)

Сообщение hvlad » 23 окт 2012, 21:33

.net на самом деле не закрывает коннекты, а помещает их в пул.
Сервер обжирается памятью выше 2GB и всё на этом заканчивается.

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 25 окт 2012, 11:30

hvlad писал(а):.net на самом деле не закрывает коннекты, а помещает их в пул.
Сервер обжирается памятью выше 2GB и всё на этом заканчивается.
Обновил пост. Подключение происходит не к серверу, а напрямую к базе, минуя сервер. из картинок видно, что приложение в памяти не распухло во время работы и количество потоков вполне приемлемое. Проблема в чем-то другом...

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

Re: Ошибка (cannot start thread)

Сообщение kdv » 26 окт 2012, 00:43

"минуя сервер" к базе никто не подключается, это вы ерунду говорите. Кроме того, у вас там ниже в диспетчере задач есть fbguard, а значит есть и fbserver.exe или fb_inet_server.exe. Также, "распухание" или нет вашего приложения ни о чем не говорит. Смотрите на exe процессов Firebird, в т.ч. и в таблицы mon$.

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 26 окт 2012, 09:15

kdv писал(а):"минуя сервер" к базе никто не подключается, это вы ерунду говорите. Кроме того, у вас там ниже в диспетчере задач есть fbguard, а значит есть и fbserver.exe или fb_inet_server.exe. Также, "распухание" или нет вашего приложения ни о чем не говорит. Смотрите на exe процессов Firebird, в т.ч. и в таблицы mon$.
Я ерунду не говорю, сервер фаерберда свой, и он чисто физически не может работать с базами, работает только с шифрованными/криптованными файлами. Запущен он для других нужд, и находится ли он в памяти или нет - никакой разницы на указанную проблему не оказывает.

Для подключения к базе - используется в качестве имени путь к имени файла, вида: <Drive>:\<Path>\<FileName>
Для подключения к базе через фаерберд сервер используется строка в качестве имени файла: <ServerName>:<Drive>:\<Path>\<FileName>

Почитайте документацию о работе с фаербердсервером. Да и по исходному моему коду видно, что сервер я нигде не заполняю в строке подключения.

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

Re: Ошибка (cannot start thread)

Сообщение kdv » 26 окт 2012, 16:20

сервер фаерберда свой, и он чисто физически не может работать с базами, работает только с шифрованными/криптованными файлами.
давайте начнем с того, что ваше приложение не может работать с базой ФБ без сервера ФБ (или без embedded, что также является сервером).
Далее, если вы сами модифицировали код ФБ, для работы с "шифрованными-криптованными" файлами, значит, вы сами отвечаете за этот код, и ошибки в нем никто кроме вас исправлять не будет.
Почитайте документацию о работе с фаербердсервером
вы мне советуете документацию читать? :-) Наоборот, я вам посоветую почитать документацию и сайт ibase.ru.
Ок, вы подсоединяетесь "локально", без имени сервера, но все равно сервер так и работает. Если у вас embedded, то это тоже сервер, но в DLL.

В общем, советую немного повысить уровень знаний, а затем возвращайтесь. В противном случае, если будете тут буянить - забаню.

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

Re: Ошибка (cannot start thread)

Сообщение kdv » 26 окт 2012, 20:28

поговорил сегодня с автором драйвера .Net, он подтвердил вероятность сценария, описанного hvlad. Сказал, что возможно, некорректно (или не полностью) закрываются коннекты (нужно вызывать Dispose для коннекта, тогда будет ок).
И, если используется embedded, то проблема тоже в возможно большом количестве незакрытых коннектов.

Также я не вижу, какая версия Firebird используется (сервер или embedded), и какая версия драйвера .net (сегодня аннонсирована версия 3.0).

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 29 окт 2012, 10:02

kdv писал(а):поговорил сегодня с автором драйвера .Net, он подтвердил вероятность сценария, описанного hvlad. Сказал, что возможно, некорректно (или не полностью) закрываются коннекты (нужно вызывать Dispose для коннекта, тогда будет ок).
И, если используется embedded, то проблема тоже в возможно большом количестве незакрытых коннектов.
Ну вообще я же использую using(), соответственно в конце блока автоматически вызывается метод object.Dispose(). Но, все же проверил, сделал dispose() всех объектов в конце каждого блока using() руками, также reader поместил в блок using() и вызвал в конце тоже руками dispose(). Проблема так же и осталась.

В эксепшене вываливаюсь с callstack:

Код: Выделить всё

FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
FirebirdSql.Data.FirebirdClient.ConnectionPool.Create()
FirebirdSql.Data.FirebirdClient.CheckOut()
FirebirdSql.Data.FirebirdClient.FbConnection.Open()
В общем беда... что делать, ума не приложу.
kdv писал(а):Также я не вижу, какая версия Firebird используется (сервер или embedded), и какая версия драйвера .net (сегодня аннонсирована версия 3.0).
версия у меня была 2.7.7 для .net 3.5, как я писал в первом посте, брал отсюда: http://sourceforge.net/projects/firebir ... z/download

Проверю 3.0, может там это не проявляется... Взял отсюда: http://sourceforge.net/projects/firebir ... z/download
Последний раз редактировалось pincher1519 29 окт 2012, 11:55, всего редактировалось 1 раз.

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 29 окт 2012, 10:21

kdv писал(а):
сервер фаерберда свой, и он чисто физически не может работать с базами, работает только с шифрованными/криптованными файлами.
давайте начнем с того, что ваше приложение не может работать с базой ФБ без сервера ФБ (или без embedded, что также является сервером).
Далее, если вы сами модифицировали код ФБ, для работы с "шифрованными-криптованными" файлами, значит, вы сами отвечаете за этот код, и ошибки в нем никто кроме вас исправлять не будет.
Сервер никакой дополнительно не используется. Если и есть виртуальный сервер, то он в том файле провайдера, который я использую. Никаких дополнительных ДЛЛ программа не использует, ни каких GDS32.dll, ни fbembed, ни fbclient. Вполне вероятно, что, как вы говорите, в драйвере provider'а уже внутри содержится сервер, в такие тонкости я для использования его не залезал.
kdv писал(а):
Почитайте документацию о работе с фаербердсервером
вы мне советуете документацию читать? :-) Наоборот, я вам посоветую почитать документацию и сайт ibase.ru.
Да, почитаю ibase.ru, может что умного для себя открою. Спасибо.
kdv писал(а):Ок, вы подсоединяетесь "локально", без имени сервера, но все равно сервер так и работает. Если у вас embedded, то это тоже сервер, но в DLL.

В общем, советую немного повысить уровень знаний, а затем возвращайтесь. В противном случае, если будете тут буянить - забаню.
Ну вот, сразу угрозы =) я ж сюда за советом пришел, а не буянить. То, что вы у меня увидели фаерберд гуард в процессах, и запущенный сервер, это еще не значит что они у меня используются. Могу в принципе провести трассировку приложения, и поглядеть к каким файлам она обращается за один цикл работы, а также посмотреть какие модули приложения были загружены в память - но уверяю, там ничего такого нет. Проблема где-то кроется в провайдере, который я использую... Ладно, поглядим что версия 3.0 принесла...

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 29 окт 2012, 11:07

В общем 3.0 также дурит.
Немного упростил код программы, оставив только открытие и закрытие коннекта, ну и проверил со sleep. Дал время закрытие коннектов системе, вдруг где-то там тормоза... в итоге ничего не изменилось.
Изображение

также решил все же выложить информацию о загруженных модулях во время работы программы, может вас это на что-то натолкнет? мне данная информация кажется обыденной и ничего особенного я в ней не вижу:
-------------------------------------------------------------------

Код: Выделить всё

Модуль:                ConsoleApplication1.vshost.exe
Полный путь:           ################################################\ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe
Версия файла:          9.0.30729.1
Описание:              vshost.exe
PID:                   2356
Parent PID:            3188  (vcsexpress.exe)
Приоритет:             8
Нитей:                 16

Запущен:               10:27:53
Выполняется:           00:00:33

Командная строка:
"############################\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe" 

Текущий каталог:       ############################\ConsoleApplication1\ConsoleApplication1\bin\Debug\

Переменные окружения:

=::=::\
=C:=################\Microsoft Visual Studio 9.0\Common7\IDE
=D:=############################\ConsoleApplication1
ALLUSERSPROFILE=##############
APPDATA=######################\Roaming
CommonProgramFiles=################\Common Files
COMPUTERNAME=#####
ComSpec=##########\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=##
HOMEPATH=\
HOMESHARE=###################
LOCALAPPDATA=##############\AppData\Local
LOGONSERVER=#######
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=##########\system32;##########;##########\System32\Wbem;##########\System32\WindowsPowerShell\v1.0\;################\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;################\Microsoft SQL Server\100\Tools\Binn\;################\Microsoft SQL Server\100\DTS\Binn\;################\Microsoft SQL Server\90\Tools\binn\;################\Microsoft SQL Server\80\Tools\Binn\#################\MySQL\MySQL Server 5.5\bin; ################\PHP-5.3.6; ################\PHP-5.3.6\ext;#######\bin;################\TortoiseSVN\bin;################\MySQL\Connector ODBC 5.1;################\Microsoft SQL Server\110\Tools\Binn\;######;#######;################\7-Zip;################\Microsoft Visual Studio 9.0\VC\bin; ################\Microsoft Visual Studio 9.0\Common7\IDE;################\Windows Installer XML v3.6\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=170a
ProgramData=##############
ProgramFiles=################
PSModulePath=##########\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=###############
SESSIONNAME=Console
SystemDrive=##
SystemRoot=##########
TEMP=##\Temp
TMP=##\Temp
USERDNSDOMAIN=#########
USERDOMAIN=########
USERNAME=#######
USERPROFILE=##############
VisualStudioDir=##############\Documents\Visual Studio 2008
VS110COMNTOOLS=################\Microsoft Visual Studio 11.0\Common7\Tools\
WecVersionForRosebud.C74=2
windir=##########
WIX=#################Windows Installer XML v3.6\

Объектов GDI:          18
Объектов USER:         17

Процессорное время:      00:00:02.964       0%
Привилегированное время: 00:00:01.341       0%
Пользовательское время:  00:00:01.622       0%
Хэндлов:                        569
Байт в страничном файле:   33550336
Байт в стр. файле, пик:    33583104
Рабочее множество:         36106240
Рабочее множество, пик:    36126720
Байт в невыгруж. пуле:        81892
Байт в выгружаемом пуле:     307844
Private Bytes:             33550336
Ошибок страницы:               9347      0/сек
Вирт. память, байт:       195776512
Вирт. память, пик:        197947392
IO - всего байт:             236394      0/сек
Прочитано байт:              236394      0/сек
Записано байт:                    0      0/сек
Байт при проч. опер.:       6041750      0/сек
IO - всего операций:           4525      0/сек
Число операций чтения:         4525      0/сек
Число операций записи:            0      0/сек
Число прочих операций:        73833      0/сек

Окно:                  file:///############################/ConsoleApplication1/ConsoleApplication1/bin/Debug/ConsoleApplication1.EXE
HWND:                  00741446
Стиль окна:            14EF0000  WS_VISIBLE WS_CLIPSIBLINGS WS_BORDER WS_DLGFRAME WS_VSCROLL WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX
Расшир. стиль:         00040310  WS_EX_CONTROLPARENT WS_EX_STATICEDGE WS_EX_APPWINDOW WS_EX_LAYERED WS_EX_LAYOUTRTL

Модули:
  База      Размер  Путь, версия, описание
  01000000    8000 ############################\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe	9.0.30729.1 vshost.exe
  77B40000  13C000 ##########\SYSTEM32\ntdll.dll	6.1.7600.16385 (win7_rtm.090713-1255) Системная библиотека NT
  71650000   4A000 ##########\SYSTEM32\MSCOREE.DLL	4.0.40305.0 (Main.040305-0000) Microsoft .NET Runtime Execution Engine
  779B0000   D4000 ##########\system32\KERNEL32.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека клиента Windows NT BASE API
  75E20000   4A000 ##########\system32\KERNELBASE.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека клиента Windows NT BASE API
  774F0000   A0000 ##########\system32\ADVAPI32.dll	6.1.7600.16385 (win7_rtm.090713-1255) Расширенная библиотека API Windows 32
  766E0000   AC000 ##########\system32\msvcrt.dll	7.0.7600.16385 (win7_rtm.090713-1255) Windows NT CRT DLL
  77C80000   19000 ##########\SYSTEM32\sechost.dll	6.1.7600.16385 (win7_rtm.090713-1255) Host for SCM/SDDL/LSA Lookup APIs
  77A90000   A1000 ##########\system32\RPCRT4.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека удаленного вызова процедур
  71550000   7A000 ##########\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll	4.0.30319.17929 built by: FX45RTMREL Microsoft .NET Runtime Execution Engine
  765B0000   57000 ##########\system32\SHLWAPI.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека небольших программ оболочки
  77CC0000   4E000 ##########\system32\GDI32.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) GDI Client DLL
  76610000   C9000 ##########\system32\USER32.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Многопользовательская библиотека клиента USER API Windows
  77CA0000    A000 ##########\system32\LPK.dll		6.1.7600.16385 (win7_rtm.090713-1255) Language Pack
  77810000   9D000 ##########\system32\USP10.dll	1.0626.7601.17514 (win7sp1_rtm.101119-1850) Uniscribe Unicode script processor
  763A0000   1F000 ##########\system32\IMM32.DLL	6.1.7601.17514 (win7sp1_rtm.101119-1850) Multi-User Windows IMM32 API Client DLL
  773E0000   CC000 ##########\system32\MSCTF.dll	6.1.7600.16385 (win7_rtm.090713-1255) Серверная библиотека MSCTF
  66CD0000  5AB000 ##########\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll	2.0.50727.5420 (Win7SP1.050727-5400) Microsoft .NET Runtime Common Language Runtime - WorkStation
  732C0000   9B000 ##########\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCR80.dll	8.00.50727.6195 MicrosoftR C Runtime Library
  76790000  C4A000 ##########\system32\shell32.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Общая библиотека оболочки Windows
  763C0000  15C000 ##########\system32\ole32.dll	6.1.7600.16385 (win7_rtm.090713-1255) Microsoft OLE для  Windows
  75C90000    B000 ##########\system32\profapi.dll	6.1.7600.16385 (win7_rtm.090713-1255) User Profile Basic API
  65AA0000  AF8000 ##########\assembly\NativeImages_v2.0.50727_32\mscorlib\62a0b3e4b40ec0e8c5cfaa0c8848e64a\mscorlib.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) Microsoft Common Language Runtime Class Library
  64020000   13000 ##########\Microsoft.NET\Framework\v2.0.50727\mscorsec.dll	2.0.50727.4927 (NetFXspW7.050727-4900) Microsoft .NET Security module
  75DA0000   2D000 ##########\system32\WINTRUST.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Microsoft Trust Verification APIs
  75E70000  11D000 ##########\system32\CRYPT32.dll	6.1.7600.16385 (win7_rtm.090713-1255) API32 криптографии
  75D00000    C000 ##########\system32\MSASN1.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) ASN.1 Runtime APIs
  73360000   84000 ##########\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.dll	6.10 (win7_rtm.090713-1255) Библиотека элементов управления взаимодействия с пользователем
  75710000   16000 ##########\system32\CRYPTSP.dll	6.1.7600.16385 (win7_rtm.090713-1255) Cryptographic Service Provider API
  754B0000   3B000 ##########\system32\rsaenh.dll	6.1.7600.16385 (win7_rtm.090713-1255) Microsoft Enhanced Cryptographic Provider
  75C10000    C000 ##########\system32\CRYPTBASE.dll	6.1.7600.16385 (win7_rtm.090713-1255) Base cryptographic API DLL
  76370000   2A000 ##########\system32\imagehlp.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Windows NT Image Helper
  75840000   38000 ##########\system32\ncrypt.dll	6.1.7600.16385 (win7_rtm.090713-1255) Криптографическая библиотека (Windows)
  75820000   17000 ##########\system32\bcrypt.dll	6.1.7600.16385 (win7_rtm.090713-1255) Windows Cryptographic Primitives Library
  753F0000   3D000 ##########\system32\bcryptprimitives.dll	6.1.7600.16385 (win7_rtm.090713-1255) Windows Cryptographic Primitives Library
  752E0000   17000 ##########\system32\USERENV.dll	6.1.7600.16385 (win7_rtm.090713-1255) Userenv
  752C0000   16000 ##########\system32\GPAPI.dll	6.1.7600.16385 (win7_rtm.090713-1255) Клиентские функции API групповой политики
  70E10000   1C000 ##########\system32\cryptnet.dll	6.1.7600.16385 (win7_rtm.090713-1255) Crypto Network Related API
  77D20000   45000 ##########\system32\WLDAP32.dll	6.1.7600.16385 (win7_rtm.090713-1255) Win32 LDAP API DLL
  6C440000    6000 ##########\system32\SensApi.dll	6.1.7600.16385 (win7_rtm.090713-1255) SENS Connectivity API DLL
  73140000   58000 ##########\system32\WINHTTP.dll	6.1.7600.16385 (win7_rtm.090713-1255) Службы HTTP Windows
  730F0000   4F000 ##########\system32\webio.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) API протоколов передачи по Веб
  774B0000   35000 ##########\system32\WS2_32.dll	6.1.7600.16385 (win7_rtm.090713-1255) 32-разрядная библиотека Windows Socket 2.0
  77CB0000    6000 ##########\system32\NSI.dll		6.1.7600.16385 (win7_rtm.090713-1255) NSI User-mode interface DLL
  75B70000   1B000 ##########\system32\SspiCli.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Security Support Provider Interface
  753B0000    8000 ##########\system32\credssp.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Credential Delegation Security Package
  756D0000   3C000 ##########\system32\mswsock.dll	6.1.7600.16385 (win7_rtm.090713-1255) Расширение поставщика службы API Microsoft Windows Sockets 2.0
  62230000    6000 ##########\System32\wshqos.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека DLL помощника службы QoS Winsock2
  75210000    5000 ##########\system32\wshtcpip.DLL	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека DLL помощника службы Winsock2 (TL/IPv4)
  756C0000    6000 ##########\system32\wship6.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека DLL помощника Winsock2 (TL/IPv6)
  73950000   1C000 ##########\system32\IPHLPAPI.DLL	6.1.7600.16385 (win7_rtm.090713-1255) IP Helper API
  73940000    7000 ##########\system32\WINNSI.DLL	6.1.7600.16385 (win7_rtm.090713-1255) Network Store Information RPC interface
  73810000    D000 ##########\system32\dhcpcsvc6.DLL	6.1.7600.16385 (win7_rtm.090713-1255) Клиент DHCPv6
  737F0000   12000 ##########\system32\dhcpcsvc.DLL	6.1.7600.16385 (win7_rtm.090713-1255) Служба DHCP-клиента
  75DD0000   27000 ##########\system32\CFGMGR32.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Configuration Manager DLL
  75590000   44000 ##########\system32\DNSAPI.dll	6.1.7600.16385 (win7_rtm.090713-1255) Динамическая библиотека API DNS-клиента
  73550000    6000 ##########\system32\rasadhlp.dll	6.1.7600.16385 (win7_rtm.090713-1255) Remote Access AutoDial Helper
  70DD0000   10000 ##########\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\9.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll	9.0.30729.1 Microsoft.VisualStudio.HostingProcess.Utilities.dll
  6C4D0000   5B000 ##########\Microsoft.NET\Framework\v2.0.50727\mscorjit.dll	2.0.50727.5420 (Win7SP1.050727-5400) Microsoft .NET Runtime Just-In-Time Compiler
  76130000   83000 ##########\system32\CLBCatQ.DLL	2001.12.8530.16385 (win7_rtm.090713-1255) COM+ Configuration Catalog
  76520000   8F000 ##########\system32\OLEAUT32.dll	6.1.7601.17567
  75C80000    E000 ##########\system32\RpcRtRemote.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Remote RPC Extension
  634A0000  79C000 ##########\assembly\NativeImages_v2.0.50727_32\System\9e0a3b9b9f457233a335d7fba8f95419\System.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) .NET Framework
  668C0000  188000 ##########\assembly\NativeImages_v2.0.50727_32\System.Drawing\dbfe8642a8ed7b2b103ad28e0c96418a\System.Drawing.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) .NET Framework
  628C0000  BDE000 ##########\assembly\NativeImages_v2.0.50727_32\System.Windows.Forms\3afcd5168c7a6cb02eab99d7fd71e102\System.Windows.Forms.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) .NET Framework
  70DE0000    A000 ##########\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\9.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll	9.0.30729.1 Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll
  75180000    9000 ##########\system32\VERSION.dll	6.1.7600.16385 (win7_rtm.090713-1255) Version Checking and File Installation Libraries
  70DB0000    8000 ##########\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\9.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll	9.0.21022.8 Microsoft.VisualStudio.Debugger.Runtime.dll
  70DC0000    8000 ################\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\x86\Microsoft.VisualStudio.Debugger.Runtime.Impl.dll	9.0.21022.8 built by: RTM Managed Debugger In-process Helper DLL
  72D30000   A3000 ##########\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll	9.00.30729.6161 MicrosoftR C Runtime Library
  6FF80000   64000 ##########\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_ru_b77a5c561934e089\mscorlib.resources.dll	2.0.50727.4927 (NetFXspW7.050727-4900) Библиотека классов среды выполнения Microsoft Common Language Runtime
  75C20000   5F000 ##########\system32\SXS.DLL		6.1.7600.16385 (win7_rtm.090713-1255) Fusion 2.5
  76360000    5000 ##########\system32\psapi.dll	6.1.7600.16385 (win7_rtm.090713-1255) Process Status Helper
  682D0000  235000 ##########\assembly\NativeImages_v2.0.50727_32\System.Core\fbc05b5b05dc6366b02b8e2f77d080f1\System.Core.ni.dll	3.5.30729.5420 built by: Win7SP1 .NET Framework
  6F040000   66000 ##########\assembly\NativeImages_v2.0.50727_32\System.Xml.Linq\70aac9dff3bdde548962557151c1ff49\System.Xml.Linq.ni.dll	3.5.30729.5420 built by: Win7SP1 .NET Framework
  6F1A0000   25000 ##########\assembly\NativeImages_v2.0.50727_32\System.Data.DataSet#\63153843b0717b40be6a061c3efb96b5\System.Data.DataSetExtensions.ni.dll	3.5.30729.5420 built by: Win7SP1 .NET Framework
  5F740000  659000 ##########\assembly\NativeImages_v2.0.50727_32\System.Data\1affaec700297e878ddf64f0930d4799\System.Data.ni.dll	2.0.50727.5459 (Win7SP1GDR.050727-5400) .NET Framework
  64E70000  2D8000 ##########\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll	2.0.50727.5459 (Win7SP1GDR.050727-5400) .NET Framework
  62380000  536000 ##########\assembly\NativeImages_v2.0.50727_32\System.Xml\461d3b6b3f43e6fbe6c897d5936e17e4\System.Xml.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) .NET Framework
  74BA0000   40000 ##########\system32\uxtheme.dll	6.1.7600.16385 (win7_rtm.090713-1255) Библиотека тем UxTheme (Microsoft)
  10000000   12000 ################\RocketDock\RocketDock.dll
  6C540000    D000 ########\RBTray\RBHook.dll
  748F0000   13000 ##########\system32\dwmapi.dll	6.1.7600.16385 (win7_rtm.090713-1255) Интерфейс API диспетчера окон рабочего стола (Майкрософт)
  6D340000   B0000 ############################\ConsoleApplication1\ConsoleApplication1\bin\Debug\FirebirdSql.Data.FirebirdClient.dll	3.0.0.0 FirebirdClient - ADO.NET Data Provider
  6DDF0000   9C000 ##########\assembly\NativeImages_v2.0.50727_32\System.Transactions\ad18f93fc713db2c4b29b25116c13bd8\System.Transactions.ni.dll	2.0.50727.4927 (NetFXspW7.050727-4900) .NET Framework
  67AA0000   43000 ##########\assembly\GAC_32\System.Transactions\2.0.0.0__b77a5c561934e089\System.Transactions.dll	2.0.50727.4927 (NetFXspW7.050727-4900) .NET Framework
  667C0000   F1000 ##########\assembly\NativeImages_v2.0.50727_32\System.Configuration\bc09ad2d49d8535371845cd7532f9271\System.Configuration.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) System.Configuration.dll
  73830000   38000 ##########\System32\fwpuclnt.dll	6.1.7600.16385 (win7_rtm.090713-1255) API пользовательского режима FWP/IPsec
  74160000   10000 ##########\system32\NLAapi.dll	6.1.7601.17514 (win7sp1_rtm.101119-1850) Network Location Awareness 2
  72FF0000   10000 ##########\system32\napinsp.dll	6.1.7600.16385 (win7_rtm.090713-1255) Поставщик оболочки совместимости для имен электронной почты
  72FB0000   12000 ##########\system32\pnrpnsp.dll	6.1.7600.16385 (win7_rtm.090713-1255) Поставщик пространства имен PNRP
  73000000    8000 ##########\System32\winrnr.dll	6.1.7600.16385 (win7_rtm.090713-1255) LDAP RnR Provider DLL
  59B20000  B4D000 ##########\assembly\NativeImages_v2.0.50727_32\System.Web\74729a1896076855e0f6e6d64eb31ad3\System.Web.ni.dll	2.0.50727.5459 (Win7SP1GDR.050727-5400) System.Web.dll
  6B190000   9D000 ##########\assembly\NativeImages_v2.0.50727_32\System.EnterpriseSe#\887ef2648686aad19feff405eddbffd2\System.EnterpriseServices.ni.dll	2.0.50727.5420 (Win7SP1.050727-5400) Microsoft .NET Services Support Infrastructure
видим, что загружается только нам интересный:
6D340000 B0000 ############################\ConsoleApplication1\ConsoleApplication1\bin\Debug\FirebirdSql.Data.FirebirdClient.dll 3.0.0.0 FirebirdClient - ADO.NET Data Provider
более ничего другого не используется от фаерберда, на сколько я могу видеть.

UPD
Поставил себе сервер firebird как службу, пропустил подключение к базам через него, проблема также осталась.
Firebird SQL Server, версия файла: WI-T2.1.0.17755.

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

Re: Ошибка (cannot start thread)

Сообщение kdv » 29 окт 2012, 18:32

Сервер никакой дополнительно не используется. Если и есть виртуальный сервер, то он в том файле провайдера, который я использую. Никаких дополнительных ДЛЛ программа не использует, ни каких GDS32.dll, ни fbembed, ни fbclient. Вполне вероятно, что, как вы говорите, в драйвере provider'а уже внутри содержится сервер, в такие тонкости я для использования его не залезал.
ад и израиль. вы если работаете с ФБ, могли бы хоть faq почитать? Как так можно, работать "непонятно с чем"? Да, .Net драйвер использует прямой протокол работы С СЕРВЕРОМ. И, никакая клиентская библиотека, без embedded, не может работать с файлом БД Firebird. Firebird - это клиент-сервер, это не файл сервер (типа dbf).
Никаких "вероятно" тут нет. Если ваше приложение работает с базой, то есть 2 варианта - либо она использует библиотеку Firebird embedded, либо вы работаете с сервером.
Ваша строка коннекта <Drive>:\<Path>\<FileName> подходит под оба случая, аминь.

Насчет картинки с кодом - я, конечно, могу автору драйвера .Net переслать картинку, но лучше если это будет кусок кода текстом, все же.
FirebirdClient.dll
какой размер этого файла? если около 500кб то это ТОЛЬКО КЛИЕНТ, и сервер ФБ у вас все же запущен и работает с этой базой. Если более 500кб (под 3мб), то это embedded. В проводнике (explorer) посмотрите в свойствах файла версию этой dll, и сообщите.
"Версия продукта" должно быть не ниже 2.5.1.26279.

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 30 окт 2012, 10:49

kdv писал(а):
Сервер никакой дополнительно не используется. Если и есть виртуальный сервер, то он в том файле провайдера, который я использую. Никаких дополнительных ДЛЛ программа не использует, ни каких GDS32.dll, ни fbembed, ни fbclient. Вполне вероятно, что, как вы говорите, в драйвере provider'а уже внутри содержится сервер, в такие тонкости я для использования его не залезал.
ад и израиль. вы если работаете с ФБ, могли бы хоть faq почитать? Как так можно, работать "непонятно с чем"?
Как-как... пока работало - не трогал. В мои основные задачи не входит написание программного кода. Пока работал с файлами не более чем с 1-2, проблем не возникало... как потребовалось пакетное внесение изменений данных базах данных - вот и натолкнулся на проблему.
Да, .Net драйвер использует прямой протокол работы С СЕРВЕРОМ. И, никакая клиентская библиотека, без embedded, не может работать с файлом БД Firebird. Firebird - это клиент-сервер, это не файл сервер (типа dbf).
Никаких "вероятно" тут нет. Если ваше приложение работает с базой, то есть 2 варианта - либо она использует библиотеку Firebird embedded, либо вы работаете с сервером.
Ваша строка коннекта <Drive>:\<Path>\<FileName> подходит под оба случая, аминь.
Вы меня убедили. Запустил на чистой машине (на ней никогда не было установлено фаербердсервера) свою тестовую программулину, действительно, если в качестве сервера ничего не указывать - то она начинает ломиться к localhost...
Насчет картинки с кодом - я, конечно, могу автору драйвера .Net переслать картинку, но лучше если это будет кусок кода текстом, все же.
FirebirdClient.dll
какой размер этого файла?
я же ссылку прикладывал =)
если около 500кб то это ТОЛЬКО КЛИЕНТ, и сервер ФБ у вас все же запущен и работает с этой базой. Если более 500кб (под 3мб), то это embedded. В проводнике (explorer) посмотрите в свойствах файла версию этой dll, и сообщите.
Дотнет проекты обычно маленькие, потому ориентироваться на размер их я побаиваюсь. Клиент 600к+ размер.
"Версия продукта" должно быть не ниже 2.5.1.26279.
проверял на 2.1, правда старом (сейчас на сайте видел, что появился от 2012 года релиз). Проверял на 2.5 - такая же проблема. Сейчас проверю на свежих 2.1 и 2.5 с официального сайта солью, если проблема повторится, приложу код который вы видите на картинке. Собственно там виден полностью код =) я просто открываю и закрываю коннекты - этого достаточно, чтобы проявилась проблема... На всякий случай уточню, ОС проверялись WinXP SP3 x86, Win7 SP 1 x86, Win7 SP 1 x64. На всех проблема проявляется.

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

Re: Ошибка (cannot start thread)

Сообщение hvlad » 30 окт 2012, 13:15

Ты обработай 100 файлов (чтобы сервер наелся, но ещё не до упора), а потом, например в IBE, выполни 'Настройки сервера\протокол' из его меню 'Службы'
Он покажет кол-во коннектов и подключенных БД, как-то так
Database Info
---------------------------------------------------------------------------
Number of connections: 1
Number of databases: 1
Databases: ...

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

Re: Ошибка (cannot start thread)

Сообщение hvlad » 30 окт 2012, 13:16

kdv писал(а):
FirebirdClient.dll
какой размер этого файла?
Не сбивай его :)
FirebirdClient.dll - это .net provider и он сам себе клиент

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 30 окт 2012, 14:00

hvlad писал(а):Ты обработай 100 файлов (чтобы сервер наелся, но ещё не до упора), а потом, например в IBE, выполни 'Настройки сервера\протокол' из его меню 'Службы'
Он покажет кол-во коннектов и подключенных БД, как-то так
Database Info
---------------------------------------------------------------------------
Number of connections: 1
Number of databases: 1
Databases: ...
Аллилуя, на сервере с именем моей машины все они родимые висят... все 100 баз, хотя коннекты закрываются программно. При пошаговой проверке у FBConnection.State присваивается значение Closed после FBConnection.Close();
Перенастраивать сервер фаерберда - это конечно не лучший вариант проблемы (я думаю, если там таймауты пообрезать, то может все и заработает)... Как бы сделать так, чтобы все же коннект рвался после Close()?

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

Re: Ошибка (cannot start thread)

Сообщение hvlad » 30 окт 2012, 14:31

Научиться в .net реально прибивать объекты, а не отдавать это на откуп пулу\сборщику мусора

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 30 окт 2012, 15:05

hvlad писал(а):Научиться в .net реально прибивать объекты, а не отдавать это на откуп пулу\сборщику мусора
Ну на сколько я могу судить, управлениями подключениями к серверу должен заниматься провайдер, т.к. из своего кода я вызываю метод закрытия... Непонятно почему разработчик провайдера поместил обрубание коннектов с сервером в деструктор объекта.

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

pincher1519
Сообщения: 15
Зарегистрирован: 10 сен 2012, 11:51

Re: Ошибка (cannot start thread)

Сообщение pincher1519 » 13 ноя 2012, 12:34

Все оказалось банальным. Надо было сразу скачать исходный код провайдера и поглядеть пошагово, что там происходит.
В общем все коннекты в провайдере держались в пулле, потому и коннекты не рубились. Для моих нужд я просто пулл коннектов отключил и все стало сказочно и работоспособно.

Спасибо, что уделили мне время =) хотя могли бы подсказать мне, что у меня в строке подключения параметр пула не используется, а у вас он включен по умолчанию.

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

Re: Ошибка (cannot start thread)

Сообщение hvlad » 13 ноя 2012, 14:06

pincher1519 писал(а):В общем все коннекты в провайдере держались в пулле, потому и коннекты не рубились.
Об этом говорилось в первом же ответе
pincher1519 писал(а):могли бы подсказать мне, что у меня в строке подключения параметр пула не используется, а у вас он включен по умолчанию.
Я вообще не работаю с .net (как и многие другие отвечающие на этом форуме), так что у нас ничего не включено ни по умолчанию, ни как-либо ещё :lol:

PS В слове "пул" одна буква "л"

Ответить