|
Сервер приложений и MSSQL на одном физическом сервере | ☑ | ||
---|---|---|---|---|
0
fisher
29.03.12
✎
07:54
|
Как заставить сервер приложений работать с MSSQL через Shared Memory, а не через TCP/IP?
|
|||
1
Живой Ископаемый
29.03.12
✎
07:55
|
я могу ошибаться, но по-моему никак... но почитаю реплик.
|
|||
2
fisher
29.03.12
✎
07:56
|
Без ножа режешь...
|
|||
3
Живой Ископаемый
29.03.12
✎
07:59
|
ну, тыж понял почему - да? отключаешь в МС СКЛ ТСП/ИП и получаешь ошибку сервера 1С из модуля в названии которого есть про ТСП.
|
|||
4
fisher
29.03.12
✎
08:00
|
Вроде как по дефолту автоматом должен хватать shared memory, это ж вроде не от него зависит... В клиентских настройках (cliconfg) галка разрешения использования этого протокола стоит...
В 7.7 работало. В 8.1 вроде тоже. А тут спохватился на 8.2 недавно - а оно по TCP ломится... А у меня сейчас как раз проблема оптимизации в полный рост... |
|||
5
КМ155
29.03.12
✎
08:00
|
(2) дорежу, ADODB тебе не нативный клиент сиквела
|
|||
6
Живой Ископаемый
29.03.12
✎
08:08
|
м... В общем не понятно, вроде только рекомендации:
==== Распределение SQL-сервера и сервера "1С:Предприятия" по компьютерам SQL-сервер и сервер "1С:Предприятия 8" могут быть установлены как на одном компьютере, так и на разных компьютерах, в зависимости от предполагаемой загрузки (см. руководство: "1С:Предприятие 8. Клиент-сервер. Особенности установки и использования"). Сервер "1С:Предприятия 8" взаимодействует с SQL-сервером через специальный компонент доступа к данным - Microsoft OLE DB Provider for SQL Server, входящий в состав Microsoft Data Access (MDAC), который, в свою очередь, взаимодействует с SQL-сервером либо непосредственно, если SQL-сервер установлен на том же компьютере, что и сервер "1С:Предприятия", либо через некоторый протокол передачи данных, если SQL-сервер и сервер "1С:Предприятия" установлены на разных компьютерах. Выбор протокола передачи данных между сервером "1С:Предприятия" и SQL-сервером Если сервер "1С:Предприятия" и SQL-сервер установлены на разных компьютерах, то передача данных осуществляется посредством сетевого протокола. Установки сетевых протоколов на SQL-сервере и у компонентов доступа к данным должны быть согласованы между собой. Для установки сетевых протоколов на SQL-сервере можно воспользоваться утилитой SQL Server Network Utility. Ее загрузочный модуль обычно находится в файле "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\svrnetcn.exe". Эта утилита отображает диалог, в котором на закладке General представлен список включенных и выключенных протоколов. Для надежной работы "1С:Предприятия 8" рекомендуется включить протокол TCP/IP (первой строкой) и Named Pipes (второй строкой) и выключить все остальные протоколы. Компьютер, на котором установлен сервер "1С:Предприятия", является по отношению к SQL-серверу клиентом, и для определения его сетевых протоколов воспользуйтесь утилитой SQL Server Client Network Utility. Ее загрузочный модуль обычно находится в файле "C:\WINNT\system32\cliconfg.exe". Она отображает диалог, в котором на закладке General представлен список включенных и выключенных протоколов. Рекомендуется использовать протокол TCP/IP, поскольку это исключает дополнительные проблемы с настройкой системы безопасности Windows и обеспечивает наибольшую производительность системы. Остальные протоколы лучше выключить. Обратите внимание на закладку Alias. Упоминание на ней имени используемого "1С:Предприятием" SQL-сервера может изменить выбранный сетевой протокол и привести к неожиданным эффектам. |
|||
7
fisher
29.03.12
✎
08:17
|
Можем попробовать зайти от обратного.
Предлагаю собрать статистику. Посмотреть используемый сервером приложений протокол для доступа к MSSQL можно в системном представлении dm_exec_connections базы master в колонке net_transport. Имя приложения для соединения можно увидеть в dm_exec_sessions |
|||
8
fisher
29.03.12
✎
08:19
|
Вдруг у кого-то таки через Shared Memory работает...
|
|||
9
dk
29.03.12
✎
08:35
|
может со строкой подключения покопаться
например в 7-ке для подключения к SQL на нестандартный порт можно было прописать имя_сервера tcp 5659 или как-то так, т.е. указать протокол и порт может и для Shared Memory есть своя строка коннекта |
|||
10
fisher
29.03.12
✎
10:30
|
Ыыыы. А локально взлетело.
На рабочем компе поднят MS SQL 2000 с сервером приложений. Отрубил все протоколы (при этом честно был предупрежден, что по сети к нему хрен кто теперь достучится), рестартанул его и после этого сервер приложений его спокойно зацепил и работает без проблем. Значит, дело не в 1С... |
|||
11
fisher
29.03.12
✎
10:33
|
На рабочем компе XP стоит и сиквел 2000 девелопер едишн.
Сервак 2008 R2 энтерпрайз, сиквел 2008 R2 SP1 Какие будут мысли? |
|||
12
МихаилМ
29.03.12
✎
10:49
|
(0)
напишите патч |
|||
13
fisher
29.03.12
✎
10:51
|
(12) См. (10)
В другой конфигурации взлетело без патчей. |
|||
14
fisher
29.03.12
✎
10:52
|
(12) А вообще совет напомнил анекдот про сову-стратега :)
|
|||
15
krbIso
29.03.12
✎
11:03
|
не понял в чем проблема то
нормально пашет через shared memory |
|||
16
fisher
29.03.12
✎
11:09
|
(15) Во! А у меня нет...
Вот еще нарыл чего: http://www.1service.com.ua/clients/articles/administration_ua/serv2_ua.php Здравая мысль там такая - на серваке убить все протоколы, на в настройках клиента TCP оставить. Так я еще не пробовал. Завтра с утра попробую на продакшн-сервере. |
|||
17
fisher
29.03.12
✎
11:12
|
А вот вообще профильная ссылка от гуру: http://gilev.blogspot.com/2011/01/ms-sql-server-1-1.html
Завтра опробую. |
|||
18
krbIso
29.03.12
✎
12:10
|
(16) ну логично если в configuration manager протоколы не настраивали, у Гилева да все описано как сделать
|
|||
19
fisher
29.03.12
✎
12:36
|
(18) В смысле, не настраивал? Всегда раньше локально подхватывало shared memory автоматом, если было разрешено его использование клиенту. А на сервере он всегда включен по дефолту. Первый раз вижу необходимость отключать на сервере все протоколы кроме shared memory, чтобы он все-таки подхватился.
|
|||
20
эцп
29.03.12
✎
15:28
|
||||
21
fisher
29.03.12
✎
15:31
|
(20) Не. Это я читал. Там по итогу в другом проблема была у чувака.
|
|||
22
rs_trade
29.03.12
✎
15:31
|
стоит все по дефолту. пашет на шаред мемори. 2008эр2
|
|||
23
fisher
29.03.12
✎
15:33
|
(22) Вот по-идее так и должно. А у мя почему-то не хочет :(
Бум пробовать принуждать :) Благо сервак только под 1С выделен. |
|||
24
fisher
30.03.12
✎
07:55
|
Это какой-то пипец...
После отключения всех протоколов, кроме Shared Memory, сервер приложения умудрился подключиться ... по отключенному Named Pipes! Сиквел перезапускался ессно и не раз. Короче, бред какой-то... Ну, будем посмотреть... Вдруг локально Named Pipes работает быстрее TCP/IP... |
|||
25
fisher
30.03.12
✎
08:20
|
(22) Если смотреть как в (7), у тебя тоже Shared Memory показывает?
|
|||
26
fisher
30.03.12
✎
08:37
|
Вычитал в MSDN, что локально Named Pipe работает быстрее TCP/IP
"Local named pipes runs in kernel mode and is extremely fast." А в медленных сетях TCP/IP может быть значительно эффективнее (в быстрых сетях - сопоставимо). |
|||
27
fisher
30.03.12
✎
08:37
|
||||
28
fisher
30.03.12
✎
10:37
|
Но вопрос по Shared Memory остается открытым...
|
|||
29
rs_trade
30.03.12
✎
23:59
|
(25) так и смотрел
|
|||
30
rs_trade
31.03.12
✎
00:09
|
а я че то не понял. тебе какой скуль к shared memory принудить надо? 2000 или 2008?
|
|||
31
shachneff
31.03.12
✎
01:52
|
Все работает. В настройках и клиента и сервера отключаем все протоколы кроме Shared memory. В консоли кластера в свойствах базы вместо IP SQL Server пишем точку.
|
|||
32
fisher
31.03.12
✎
13:26
|
(30) 2008
|
|||
33
fisher
31.03.12
✎
13:31
|
(31) В консоли кластера чего? Сервера приложений 1С? Нету там никаких "IP SQL Server". Там вообще протокол нигде не выбирается.
|
|||
34
fisher
31.03.12
✎
13:35
|
Пока так и крутится на Named Pipes...
|
|||
35
vogenut
31.03.12
✎
13:38
|
Через Shared Memory работает только SQL Server 2000, остальные через TCP/IP. Курите BOL
|
|||
36
fisher
31.03.12
✎
15:05
|
(35) О как. Т.е. остальные протоколы Билли чисто для смеха прикрутил. Здается мне, что вы курили не BOL.
|
|||
37
fisher
31.03.12
✎
15:11
|
(35) А еще ты походу обозвал rs_trade'a гнусным лжецом.
|
|||
38
vogenut
31.03.12
✎
15:26
|
(36)(37) Почитай, чисто для смеха: http://msdn.microsoft.com/en-us/library/ms187892(v=sql.105).aspx, http://support.microsoft.com/kb/918478
|
|||
39
fisher
31.03.12
✎
15:45
|
(38) Оооо! Дай я тебя расцелую! Уж не знаю, где ты там вычитал подтверждения своему бреду, но там черным по белому изложена моя проблема:
"Clients that use MDAC 2.8 or earlier cannot use shared memory protocol. If these clients try this, they are automatically switched to the named pipes protocol." Именно это у меня и происходит. Просто надо MDAC обновить. Спасибо, дорогой товарищЪ! |
|||
40
vogenut
31.03.12
✎
15:50
|
(39)
> Спасибо, дорогой товарищЪ! Всегда пожалуйста )) > где ты там вычитал подтверждения своему бреду Не знаю, что ты подразумеваешь под моим бредом, но я тебе говорил именно про MDAC и SQL Server выше 2000 > Просто надо MDAC обновить. Ню-ню, теперь осталось найти такой MDAC ))) |
|||
41
КМ155
31.03.12
✎
15:58
|
(39) зажигательная статья:
http://social.technet.microsoft.com/Forums/ru-RU/sqlru/thread/53a19cef-2242-4f54-9b80-683e98f23eb3/ |
|||
42
fisher
31.03.12
✎
16:01
|
(40) Чорд. Перечитал внимательно. Краснею, беру свои слова назад и приношу извинения. Получается, даже локально надо ставить TCP/IP и не париться? Или какие выводы по итогу?
ЗЫ. Остается непонятным, как работает Shared Memory у (22) |
|||
43
КМ155
31.03.12
✎
16:01
|
(41) упс, уже была
|
|||
44
fisher
31.03.12
✎
16:05
|
(40) У мя щаз переключается на Named Pipes точь в точь, как в статье описано. Но никаких ощутимых задержек по сравнению с TCP/IP не наблюдаю. Там же написано, что Nimed Pipes локально шуршит быстрее. Может, имеет смысл его и оставить?
|
|||
45
vogenut
31.03.12
✎
16:07
|
(42) Ставь локально TCP/IP и не парься. Все равно tcp через loopback локально работает, это гораздо шустрее чем обычно. Shared Memory просто ускоряет пропускную способность. В (22) может быть указана ОС а не версия сиквела. Может на ней свежий MDAC стоит или он на ней SQL Server 2000 гоняет.
|
|||
46
vogenut
31.03.12
✎
16:08
|
(44) Не знаю насчет named pipes, не пробовал.
|
|||
47
fisher
31.03.12
✎
16:17
|
Оставлю пока как есть, пожалуй... Судя по MSDN, это может давать задержку при установке соединения, а для сервера приложений 1С это несущественно. Зато в рамках установленного соединения работа гипотетически быстрее (хотя субъективно разницы никакой, т.е. она если и есть, то жалкие проценты).
Думаю, тема исчерпана и ветку можно закрывать. Vogenut'у респект и извинения. |
|||
48
rs_trade
02.04.12
✎
08:30
|
(35) что тогда показывает dm_exec_connections в колонке net_transport?
|
|||
49
vogenut
02.04.12
✎
09:19
|
(48) Тип соединения с сервером. Тока там есть как соединения платформы так и соединения Management Studio из которой наверняка этот запрос и делается ))
|
|||
50
rs_trade
02.04.12
✎
10:39
|
(49) ну да. шаред мемори только для служебных процессов показывает. с id от 51 до 55.
|
|||
51
fisher
02.04.12
✎
10:40
|
(50) Тьфу на тебя. Столько времени голову морочил. Речь то была о процессах сервера приложений.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |