Подключение к FB через TCP/IP (inet, inet4, inet6)
Привет всем.
Сегодня, созерцая время выполнения тестов новой сборки (21500) c Firebird 2.5 немного опух — через fbclient.dll тесты отрабатывали в 5 раз быстрее чем через встроенный клиент. Подключение к серверу осуществляется через TCP/IP: localhost:d:\database\ibp_test_fb25_d3.gdb.
------------------------------------------- [SUMMARY INFORMATION] [TESTS] EXECUTED : 17407 SUCCEEDED : 17406 FAILED : 0 WITH WARNINGS : 1 [ 1 warning(s) ] - - - - - - - - - - - - - - - - - - - - - - TEST TIMES] REAL : 4759506647 [00:07:55.9506647] USER : 1640038513 [00:02:44.0038513] KERNEL : 299209918 [00:00:29.9209918] TOTAL : 1939248431 [00:03:13.9248431]
Результаты для встроенного клиента:
------------------------------------------- [SUMMARY INFORMATION] [TESTS] EXECUTED : 17407 SUCCEEDED : 17406 FAILED : 0 WITH WARNINGS : 1 [ 1 warning(s) ] - - - - - - - - - - - - - - - - - - - - - - [TEST TIMES] REAL : 25232635350 [00:42:03.2635350] USER : 1359080712 [00:02:15.9080712] KERNEL : 267229713 [00:00:26.7229713] TOTAL : 1626310425 [00:02:42.6310425]
Ну, думаю, приплыли. Раньше же такого не было.
После разбора полета обнаружилось, что встроенный клиент сначала пытается подключаться к серверу (FB2.5) через TCP/IPv6, а потом через TCP/IPv4. Из-за IPv6 задержка была такой, что спотыкание процесса выполнения тестов было видно невооруженным взглядом.
Я на эти попытки подключения через IPv6 уже обращал внимания, но не придавал им особого значения. Ну не смог подключиться, ничего страшного. А оказалось «чего».
После явного указания подключения через IPv4 (inet4://localhost/d:\database\ibp_test_fb25_d3.gdb) все нормализовалось.
Результаты перезапуска (на новой тестовой базе данных)
------------------------------------------- [SUMMARY INFORMATION] [TESTS] EXECUTED : 17407 SUCCEEDED : 17405 FAILED : 0 WITH WARNINGS : 2 [ 2 warning(s) ] - - - - - - - - - - - - - - - - - - - - - - [TEST TIMES] REAL : 3720155706 [00:06:12.0155706] USER : 2020212950 [00:03:22.0212950] KERNEL : 382202450 [00:00:38.2202450] TOTAL : 2402415400 [00:04:00.2415400]
------------------------------------------- [SUMMARY INFORMATION] [TESTS] EXECUTED : 17407 SUCCEEDED : 17405 FAILED : 0 WITH WARNINGS : 2 [ 4 warning(s) ] - - - - - - - - - - - - - - - - - - - - - - [TEST TIMES] REAL : 3601447761 [00:06:00.1447761] USER : 1941588446 [00:03:14.1588446] KERNEL : 357242290 [00:00:35.7242290] TOTAL : 2298830736 [00:03:49.8830736]
Так что, теперь надо будет себя приучать явно указывать версию TCP/IP в строке подключения. Во избежание.