|   |   | 
| 
 | Сервер приложений и 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) Тьфу на тебя. Столько времени голову морочил. Речь то была о процессах сервера приложений.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |