вторник, 10 ноября 2009 г.

Disabling or Enabling SQL Server Agent Jobs

Групповая работа с задачами SQL Server Agent:

Disable All SQL Server Agent Jobs

USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE Enabled = 1;
GO

Enable All SQL Server Agent Jobs

USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 1
WHERE Enabled = 0;
GO

Disable Jobs By Job Name

USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE [Name] LIKE 'Admin%';
GO

Источник: http://www.mssqltips.com/tip.asp?tip=1400

четверг, 2 июля 2009 г.

WinHttpDownloadFileToMemory failed with hr=0x80190194

Такую ошибку выявляет приложение ClientDiag.exe при работе с WSUS-клиентом.

По данным с Microsoft.com это означает, что отсутствует папка SelfUpdate на сервере WSUS. Но что означает надпись о том, что версия сервера SUS 1.0 (при наличии WSUS 3.0)?
Нигде я не нашел упоминания о том, что некоторые версии клиента WSUS плохо воспринимают FQDN-написание имени сервера WSUS в групповых политиках (при том, что ресолвится все совершенно нормально). При написании FQDN-имени сервера клиент начинает лезть на себя самого. Достаточно поменять имя с FQDN на обычное NetBios и все работает.

среда, 17 июня 2009 г.

Missing performance counter (s) - счетчики производительности пропали

Когда такая беда происходит, то есть пара вариантов:
1. Если пропали ВСЕ счетчики, то восстановить их можно командой lodctr /r
2. Если отсутствуют некоторые (у меня это произошло почему-то со счетчиком Network Interface в Windows 2000 Server), то можно скачать отсюда программу и включить их обратно.

Источник: http://help.wugnet.com/windows2/missing-Network-Interface-Perfmon-ftopict518584.html

пятница, 12 июня 2009 г.

SQL-функция AVG вызывает переполнение (Arithmetic overflow error)

Такая неприятная вещь бывает даже в случае, когда надо посчитать среднее от довольно маленькой величины (например tinyint), но в большом массиве. Компания Майкрософт по этой ссылке говорит примерно следующее:
"...Мы расследовали эту проблему и даже придумали, как решить ее, но из-за нехватки ресурсов и времени мы не успеваем вставить решение в SQL 2008, так что ждите следующей версии..." - Разгильдяи, одним словом. Workaround по данной ссылке не описан.
Однако, другие умные люди нашли этот воркэраунд: предположим, что инструкция типа
SELECT AVG(bytessent)
вызывает ошибку Arithmetic overflow error. Перепишем ее как
SELECT AVG(CAST(bytessent AS bigint))
и все получится.

Источники:
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=241543
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=75175

среда, 27 мая 2009 г.

Написание службы в VB.NET Express

VB.NET Express по умолчанию не имеет шаблона для написания собственного сервиса. Однако, все поправимо - отсюда http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4511&lngWId=10
или отсюда
http://sites.google.com/site/mellerbeck/Home/Windows_Se1973412152006.zip?attredirects=0
можно скачать шаблоны и установить их в My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual Basic. Теперь, после перезапуска VBExpress, появится шаблон для сервиса (Windows Service).

вторник, 12 мая 2009 г.

Потерялся значок в SendTo "Адресат"

Если такая беда произошла, то можно создать (для XP) в Documents And Settings\%UserName%\SendTo новый ярлычок с направлением
"C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE" /c IPM.Note.sendto /a

Источник: http://www.forums.maximumpcguides.com/vista/topic.php?id=13

понедельник, 20 апреля 2009 г.

OLE/DB provider returned Timeout expired with Linked Server

Для того, чтобы удаленный запрос через Linked Server выполнялся дольше 10 минут без появления ошибок, время ожидания можно переконфигурировать:

sp_configure 'remote login timeout', 30
go
reconfigure with override
go

sp_configure 'remote query timeout', 0
go
reconfigure with override
go


Источник: http://support.microsoft.com/kb/314530

среда, 8 апреля 2009 г.

CRL-функции в MS SQL (на примере DNS-ресолвера)

На примере функции, преобразующей URL в IP и обратно, напишу краткую инструкцию по прописыванию собственных CRL-функций в MS SQL (которые рекомендуется использовать если а) имеют место быть очень мощные математические вычисления или б) если по другому очень трудно (как с DNS-запросами).

вторник, 10 марта 2009 г.

Представители в Outlook

Симптомы этой проблемы были просто волшебными:
Пользователь (П1) приглашает другого пользователя (П2) на собрание. Приглашение отправляется, одновременно приходит отчет о том, что третий пользователь (П3) (не существующий в нашей организации Exchange) не существует, а потому и не может принять письмо. Согласно mail-tracking, в момент отправки приглашения от П1 отправляется 2(!) письма - одно П2, другое - П3. Кроме, как в процессе приглашения на собрания, эта проблема не проявляется.
Решение оказалось простым - у П2 во вкладке "Представители" Outlook был записан ныне удаленный из организации пользователь.



Эта настройка - MAPI-разрешение Send On Behalf. Поскольку в Exchange весьма забавно устроены приглашения и календари (шиворот-навыворот, кому интересно, включите полный логгинг и поглядите, что происходит при приглашениях (кто к кому получает разрешения и доступы)), это и вызывало такие эффекты

вторник, 24 февраля 2009 г.

Составные скрипты для SQL через OLE DB

Создаю запрос к MS SQL через OLE DB. Обчитался учебника по подготовке к MCITP:DBA и чувствую себя могучим. Отправляю сиквелу скрипт типа:

if (select count(*) from tb_softlist where softname='windows' and softversion='xp' and vendor='microsoft')=0
begin;
insert into tb_softlist(softname,softversion,vendor) values('windows','xp','microsoft');
select scope_identity() as SoftID;
end;
else
select SoftID from tb_softlist where softname='windows' and softversion='xp' and vendor='microsoft';

При этом условие вроде выполняется правильно, выделенные жирным части скрипта отрабатываются, а невыделенные - нет. Ломал голову.
Оказалось, все просто:

Access/JET does not support scripts (more than one statement at a time). SQL
Server does.
You'll need to execute another (separate) query to get the @@Identity.

Вот так. Сиквел поддерживает выполнение составных скриптов, а Access/JET - нет. Хоть выполнение условий поддерживает, и то хорошо.

Источник: http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.adonet/2004-07/1599.html

понедельник, 12 января 2009 г.

Terminal Services Gateway Server Certificates

Замечательная штука в Windows 2008 - Terminal Services Gateway Server. Позволяет подключаться к организации извне по порту 443, не заморачиваясь виртуальными частными сетями и прочее. Но нигде не описана (я, по крайней мере, не нашел) такая особенность - клиент RDP 6.0 не поддерживает, в отличие от RDP 6.1, Wildcard certificates т.е. сертификаты типа (*.mydomain.com). Он не дает подключиться к серверу и кричит, что сертификат неверный. Если же ему поставить сертификат типа ts.mydomain.com, все замечательно. В клиенте 6.1 прокатывают оба варианта. Для совместимости, лучше все таки Wildcard не использовать (тем более, что даже в изначальной поставке Windows Vista стоит клиент 6.0)