16 diciembre, 2010

Windows Azure Platform Training Kit

El Windows Azure Platform Training Kit incluye contenido técnico como ejercicios de laboratorio, presentaciones y demos, diseñados para ayudar al aprendizaje de la plataforma Windows Azure (Windows Azure, SQL Azure y Windows Azure AppFabric).

Esta actualización de Diciembre 2010 agrega material para las mejoras del Windows Azure November 2010 y las Windows Azure Tools for Microsoft Visual Studio 1.3.

Se puede obtener en un archivo de 210 MB del sitio de descargas de Microsoft.

09 diciembre, 2010

Mapa de vistas de sistema de SQL Server 2008 R2

Están disponibles para descargar, en varios formatos, el mapa de las vistas de sistema del SQL Server 2008 R2. Este mapa muestra las principales vistas de sistema y las relaciones existentes entre ellas.

Pueden descargarse en formatos .XPS o .PDF directamente en esta página del sitio de descargas de Microsoft.

25 noviembre, 2010

Estándares de codificación de programas .NET

El MVP Anoop Madhusudanan (@amazedsaint) ha publicado en su blog una muy buena lista de documentos con estilos de codificación de programas C#. Muy recomendado para todos los desarrolladores, incluso los más experimentados, ya que siempre viene bien para refrescar ideas.

Uno de mis favoritos es el "Microsoft All-In-One Framework Coding Guideline" que puede descargarse de Codeplex.

Ir a "Top 7 Coding Standards & Guideline Documents For C#/.NET Developers".

18 noviembre, 2010

Evento MS TechEd Europa - videos online

Via el twitter de Ezequiel Glinsky de MSFT (@eglisnky): Todos los videos del evento Microsoft TechEd Europa se pueden ver online en:

http://www.msteched.com/

Los eventos preferidos son:

- The Case of the Unexplained, 2010: Troubleshooting with Mark Russinovich
- Useful Hacker Techniques: Which Part of Hackers' Knowledge Will Help You in
- Open Data for the Open Web
- Windows Sysinternals Primer: Process Explorer, Process Monitor, and More
- Zen of Architecture

Todos los videos pueden verse en diveros formatos, se pueden downloadear y están las slides powerpoint disponibles también.

10 noviembre, 2010

SQL Server 2008 R2 Parallel Data Warehouse

Microsoft anunció la disponibilidad general de SQL Server 2008 R2 Parallel Data Warehouse (antes Proyecto "Madison"), su primer dispositivo de gama alta para data warehousing. Soporta escalabilidad masiva a cientos de terabytes, 500 TB para datos de usuario en hasta 40 nodos de cómputo, 10x throughput de datos y 100x rendimiento de consultas, y servidores de dos sockets que usan procesadores de 6 núcleos Intel Westmere.

Más información.

21 octubre, 2010

Libro gratis: Introducing Microsoft SQL Server 2008 R2

Escrito por Ross Mistry y Stacia Misner, son 236 páginas con el siguiente contenido:

PART I DATABASE ADMINISTRATION
CHAPTER 1 SQL Server 2008 R2 Editions and Enhancements 3
CHAPTER 2 Multi-Server Administration 21
CHAPTER 3 Data-Tier Applications 41
CHAPTER 4 High Availability and Virtualization Enhancements 63
CHAPTER 5 Consolidation and Monitoring 85

PART II BUSINESS INTELLIGENCE DEVELOPMENT
CHAPTER 6 Scalable Data Warehousing 109
CHAPTER 7 Master Data Services 125
CHAPTER 8 Complex Event Processing with StreamInsight 145
CHAPTER 9 Reporting Services Enhancements 165
CHAPTER 10 Self-Service Analysis with PowerPivot 189

Se puede descargar de este link de Microsoft.

30 septiembre, 2010

SQL Server 2008 SP2 - disponible para download

En el blog del equipo de desarrollo de SQL Server hoy se anunció que está disponible el Service Pack 2 (SP2) de SQL Server 2008.

Para descargar el SQL Server 2008 SP2 ir a los links correspondientes:

SQL Server 2008 SP2: http://go.microsoft.com/fwlink/?LinkId=196550
SQL Server 2008 SP2 Express: http://go.microsoft.com/fwlink/?LinkId=196551
SQL Server 2008 SP2 Feature Packs: http://go.microsoft.com/fwlink/?LinkId=202815

Los detalles del anuncio están en este artículo.

22 septiembre, 2010

Houston, tenemos un SQL Azure Web/RIA Management Studio

En el blog en MSDN de César de la Torre, arquitecto de software de Microsoft, se muestra la interfaz de una herramienta liviana para administrar bases de datos de SQL Azure: el proyecto Houston. La herramienta es para uso web y está basada en Silverlight, lo que permite administrar a un SQL Azure desde un browser que tenga instalado Silverlight (no requiere instalación local de la aplicación).

La herramienta es versión CTP 1 y se puede obtener en https://www.sqlazurelabs.com

SQL Azure vs. SQL Server

Windows Azure es una plataforma de servicios en la nube (cloud computing) escalable de internet, proporcionada por los datacenters de Microsoft. Proporciona un sistema operativo y un sistema de servicios para desarrolladores que se pueden utilizar individualmente o juntos. SQL Azure es la versión de SQL Server para la plataforma Azure.

Este artículo (en inglés) compara SQL Azure con SQL Server en términos de administración lógica versus la administración física, el aprovisionamiento, el soporte de Transact-SQL, almacenamiento de datos, SSIS, junto con otras características y capacidades.

Descargar el documento de este link.

15 septiembre, 2010

Video de Internet Explorer 9 Beta

Para ver un video-demo del nuevo Internet Explorer 9 Beta hacer clic en el siguiente vínculo (se abrirá el Windows media Player).

Clic acá para ver la demo.

13 septiembre, 2010

Microsoft SQL Server 2008 R2 Best Practices Analyzer

Microsoft ha publicado una versión nueva del whitepaper del SQL Server 2008 R2 Best Practices Analyzer (BPA), la herramienta que analiza y recomienda buenas prácticas en bases de datos. Esta es una herramienta indispensable para cualquier administrador y/o desarrollador de SQL Server.

En este link se puede obtener el documento que explica la instalación y uso del BPA.

La herramienta BPA se puede descargar de este otro link.

31 agosto, 2010

Solid Quality Journal - Agosto 2010

Recibo y copio este mensaje del amigo Jesús Gil, de SolidQ:

La revista editada por Solid Quality Journal y auspiciada por Solid Quality Mentors
Ya se encuentra disponible en su edición de agosto y pueden descargarla de forma gratuita dando clic aquí. /* Es un documento PDF de descarga directa */

03 agosto, 2010

Videos de la maratón de SQL Server 2008 R2

Copio este anuncio de Atilla Arruda (MSFT) publicado en los foros MSDN de SQL Server.

StreamInsight: Una nueva forma de trabajar con notificaciones
http://www.mslatam.com/latam/mediacenter/default.aspx?v=53B7AB91-5B29-422C-8CC2-B7DA6263E1CE

Implementando MDM Usando SQL Server 2008 R2 Master Data Services
http://www.mslatam.com/latam/mediacenter/default.aspx?v=41EAE035-9FCF-49FD-B9E8-535BD957EA03

Data Tier Applications
http://www.mslatam.com/latam/mediacenter/default.aspx?v=E03199B9-15A3-4CEF-92D5-137D03C7DFA7

Novedades en SQL Server 2008 R2
http://www.mslatam.com/latam/mediacenter/default.aspx?v=99504308-4E45-49D2-B3A6-C8401004EEA4
http://edge.technet.com/Media/Maratn-de-SQL-Novedades-en-SQL-Server-2008-R2/

Creando bases de datos Geoespaciales de alto rendimiento
http://www.mslatam.com/latam/mediacenter/default.aspx?v=04917C9C-5563-4C41-98A8-7B6CC027D657

Minería de Datos con Excel 2010 y SQL Server 2008 R2
http://edge.technet.com/Media/Maratn-de-SQL-Minera-de-Datos-con-Excel-2010-y-SQL-Server-2008-R2/

Datawarehouses y cubos con SQL Server 2008 R2 Analysis Services
http://edge.technet.com/Media/Maratn-de-SQL-Bodegas-de-Datos-y-cubos-con-SQL-Server-2008-R2-Analysis-Services/

Reportes autoservicio con SQL Server 2008 R2 Reporting Services
http://edge.technet.com/Media/Maraton-de-SQL-Reportes-autoservicio-con-SQL-Server-2008-R2-Reporting-Services/

Lo que usted aún no sabe sobre FILESTREAM
http://www.mslatam.com/latam/mediacenter/default.aspx?v=CB0E640E-D234-47C4-A24C-43CAF0B8DEDA

Introducción a PowerPivot
http://edge.technet.com/Media/Maratn-de-SQL-Introduccin-a-PowerPivot/

Administración multiservidor con SQL Server 2008 R2
http://edge.technet.com/Media/Mratn-de-SQL-Administracin-multiservidor-con-SQL-Server-2008-R2/

Produciendo Dashboards con PerformancePoint Services
http://edge.technet.com/Media/Maratn-de-SQL-Produciendo-Dashboards-con-PerformancePoint-Services/

24 Webcasts: SQL Server 2008 y Windows Server 2008
http://www.microsoft.com/latam/technet/video/24webcasts.aspx


Más informaciones en: http://twitter.com/WebcastLATAM

02 agosto, 2010

Seguir este blog en Twitter

¡Estamos en Twitter! A partir de hoy este blog de SQL Server en español publica sus entradas en Twitter: @ascii164blog

La página en Twitter es http://twitter.com/ascii164blog

19 julio, 2010

SolidQ Journal


Los excelentes profesionales de SolidQ han editado una revista de primer nivel: SolidQ Journal. Si hay alguien que sí sabe mucho de SQL Server, son los amigos de SolidQ. Los autores de los artículos son Fernando G. Guerrero, Mark Tabladillo, Stephen Cohen, Brian Moran, Andrew J. Kelly, Gianluca Hotz, Craig Utley, Greg Low, Ken Spencer, Herbert Albert, etc.


El sitio de la revista SolidQ Journal está en este link y el primer número en formato PDF puede descargarse de este otro link.


14 julio, 2010

Outlook Social Connector

Este plug-in de Microsoft para Outlook de Office 2003, 2007 y 2010 permite conectarse a Facebook y otras redes sociales. Una vez conectado, si uno de nuestros contactos publica algo en Facebook, lo veremos desde nuestro Outlook.

Los usuarios de Outlook 2003 y 2007 deben descargar la última versión de Outlook Social Connector desde el centro de descargas de Microsoft.

Los usuarios de Outlook 2010 deben conseguir la actualización de Outlook Social Connector desde el centro de descargas de Microsoft.

03 junio, 2010

Microsoft Desktop Player

El Microsoft Desktop Player es una herramienta para acceder y ver recursos de entrenamiento. Para acceder al sitio beta público ir a:

http://www.microsoft.com/click/desktopplayer/

Allí encontrarán una aplicación Silverlight donde podrán explorar recursos por tema y perfil del interesado (profesional de TI o desarrollador). También se puede descargar la aplicación cliente para ejecutarla desde el escritorio de Windows.

05 mayo, 2010

Microsoft Enterprise Library 5.0

El grupo de Patterns & Practices de Microsoft ha publicado la versión 5 de la biblioteca EntLib. La Microsoft Enterprise Library es una colección de bloques de aplicación. Estos bloques han sido diseñados para que los programadores puedan usarlos al momento de construír sus aplicaciones.

La EntLib se entrega con una documentación extensa y todo el código fuente, que puede ser modificado a gusto por los programadores en sus propios proyectos. Esta versión 5 puede usarse con Microsoft .NET Framework 3.5 conService Pack 1 o Microsoft .NET Framework 4.0.


Los detalles y las descargas están en el sitio de P&P de Microsoft.

15 abril, 2010

Libro gratis: Introducing Microsoft SQL Server 2008 R2

A través de este post de Miguel Egea en el blog PortalSql supe de este nuevo libro (en inglés) gratuito de Microsoft Press: "Introducing Microsoft SQL Server 2008 R2", escrito por Ross Mistry y Stacia Misner. Consta de 216 páginas en 10 capítulos:

PART I Database Administration
1 SQL Server 2008 R2 Editions and Enhancements
2 Multi-Server Administration
3 Data-Tier Applications
4 High Availability and Virtualization Enhancements
5 Consolidation and Monitoring

PART II Business Intelligence Development
6 Scalable Data Warehousing
7 Master Data Services
8 Complex Event Processing with StreamInsight
9 Reporting Services Enhancements
10 Self-Service Analysis with PowerPivot


El libro puede descargarse en formato XPS o en formato PDF en esta página de Microsoft Press.

05 abril, 2010

Kit de entrenamiento de SQL Server 2008 R2 para desarrolladores (Marzo 2010 Update 2)

Microsoft ha puesto la descarga gratuita del SQL Server 2008 R2 Update for Developers Training Kit. Este conjunto de materiales de entrenamiento para la próxima versión R2 de SQL Server 2008 incluye:

  • 15 presentaciones
  • 24 demos
  • 13 laboratorios paso-a-paso
  • 35 videos
  • etc.

El material está en inglés y consiste en un archivo ejecutable de 175 MB que, una vez descargado del sitio de Microsoft, debe instalarse. No incluye al SQL Server 2008 R2.

Ir a la página de descarga del SQL Server 2008 R2 Update for Developers Training Kit.

17 marzo, 2010

Fin de soporte a algunas versiones de Windows

El soporte a algunas versiones de Windows llegarán a su fin en los próximos meses de 2010. Veamos cada una:

  • Windows 2000 Professional y Windows 2000 Server: 13 de Julio de 2010.
  • Windows XP + Service Pack 2: 13 de Julio de 2010. Acción inmediata: Instalar Service Pack 3.
  • Windows Vista sin Service Pack: 13 de Abril de 2010. Acción inmediata: Instalar Service Pack 2.

Más información:

http://blogs.technet.com/lifecycle/archive/2010/02/24/end-of-support-for-windows-xp-sp2-and-windows-vista-with-no-service-packs-installed.aspx

Service Pack 3 for Windows XP:
http://www.microsoft.com/downloads/details.aspx?FamilyID=68C48DAD-BC34-40BE-8D85-6BB4F56F5110&displaylang=en

Service Pack 2 for Windows Vista: http://www.microsoft.com/windows/windows-vista/default.aspx

04 marzo, 2010

Diagnóstico de problemas de conexión a SQL Server 2005/2008, Parte 3

/*
Este post muestra cómo diagnosticar problemas de conexión a SQL Server usando cliente MDAC, según sea el mensaje de error obtenido. El post original en inglés fué realizado por Ming Lu y publicado en http://blogs.msdn.com/sql_protocols/archive/2005/10/29/486861.aspx

He realizado la traducción a español y algunas aclaraciones mínimas para dar mayor claridad.
*/

En este artículo mostraremos cómo diagnosticar problemas de conexión a SQL Server 2005/2008, usando el cliente MDAC y según sea el mensaje de error recibido. Este artículo es la continuación de:

Diagnóstico de problemas de conexión a SQL Server 2005/2008, Parte 2
http://ascii164.blogspot.com/2010/02/diagnostico-de-problemas-de-conexion.html

En la Parte 1 se mostró cómo diagnosticar problemas generales de conexión, especialmente desde el punto de vista de red.

Luego en la Parte 2 vimos los errores producidos usando el cliente SNAC. En esta parte vamos a tratar con los errores usando el cliente MDAC.

Cuando descubrimos que las conexiones a SQL Server 2005/2008 fallan a través de un cliente MDAC, primero hay que estar seguro que el servidor SQL está accesible y que la instancia está iniciada; segundo, identificar qué protocolos están habilitados en el servidor; finalmente revisar los casos de estudio que se muestran.

Lo primero que nos preguntaremos es ¿Cómo sabemos si la aplicación usa el cliente MDAC o el cliente SNAC?

Si sabemos el string de conexión de la aplicación, podemos saber el cliente usado según lo que se haya especificado en las etiquetas Driver y Provider:

MDAC ODBC

DRIVER= {SQL Server}; SERVER=xx; Trusted_connection=yes; Connect Timeout=30

MDAC OLEDB

Provider= SQLOLEDB; Data Source=xx; Integrated Security=SSPI;Connect Timeout=30

SNAC ODBC

DRIVER= {SQL Native Client}; SERVER=xx; Trusted_connection=yes; Connect Timeout=30

SNAC OLEDB

Provider=SQLNCLI; Data Source=xx; Integrated Security=SSPI; Connect Timeout=30

Cuando no conocemos el string de conexión de la aplicación, debemos observar el texto del mensaje de error.

Ejecutar:

osql /Sxxx /E (donde “xxx” es un servidor desconocido)

El resultado obtenido cuando el cliente es MDAC es el siguiente:

[DBNETLIB]SQL Server does not exist or access denied.

[DBNETLIB]ConnectionOpen (Connect()).

-o-

[DBNETLIB]Specified SQL server not found.

El resultado obtenido cuando el cliente es SNAC es:

Named Pipes Provider: Could not open a connection to SQL Server [53]

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.

Para identificar la versión de MDAC que hay instalada en la máquina cliente, visitar estos documentos en el sitio de Soporte de Microsoft:

http://support.microsoft.com/default.aspx?scid=kb;en-us;231943

http://support.microsoft.com/default.aspx?scid=kb;en-us;301202

MDAC no brinda mensajes de error tan claros como los de SNAC, lo cual dificulta en cierta medida el diagnósitco de problemas de conexión. Veamos cada mensaje y algunas recomendaciones para diagnosticar el problema en base a los protocolos configurados en SQL Server.

Mensaje 1:

[DBNETLIB]SQL Server does not exist or access denied.

Mensaje 2:

[DBNETLIB]Specified SQL server not found.

Mensaje 3:

[DBNETLIB][ConnectionOpen (PreLoginHandshake()).]General network error. Check your network documentation.

Diagnóstico:

Primero hay que saber cuáles son los protocolos configurados en el servidor, y asegurarse que el servicio SQL y el servicio SQL Browser están iniciados. Hay dos formas posibles de revisar eso:

1. Ir al SSCM( SQL Server Configuration Manager ), click en “protocols for ”, y ver allí el estado de cada protocolo soportado en el servidor.

2. Revisar el archivo de errores de SQL Server.

2.1. Está habilitado el protocolo Shared Memory (SM) cuando dice:

Server local connection provider is ready to accept connection on [\\.\pipe\SQLLocal\MSSQLSERVER] o [ \\.\pipe\SQLLocal\instancia;]

2.2. Está habilitado el protocolo Named Pipes (NP) cuando dice:

Server local connection provider is ready to accept connection on [ \\.\pipe\MSSQL$instancia\sql\query ] o [ \\.\pipe\sql\query ]

Notar que pueden aparecer esos textos aún cuando solamente esté habilitado SM. Para estar seguro de que el servidor remoto tiene habilitado NP, probar la conexión vía el NP:

osql /S\\maquina\pipe\sql\query /E

-o-

osql /S\\maquina\pipe\MSSQL$instancia\sql\query /E

Solamente cuando la conexión es exitosa significa que el servidor está escuchando en NP.

2.3. Está habilitado TCP/IP cuando dice:

Server is listening on ['any' ipv4; numeropuerto;]

[ direccionIP; ipv4; numeropuerto;].

El primer mensaje es cuando se ha habilitado en el servidor la opción “ListenonAllIPs”, y la segunda es cuando el servidor está escuchando en una dirección IP individual. Para verificar más, revisar si SQL Server está escuchando en el puerto exacto, usando el comando NETSTAT:

netstat -ano ! findstr numeropuerto

Las siguientes recomendaciones para diagnosticar se basan en cuál protocolo está habilitado. Ante un error de conexión, primero identificar cuál es el protocolo configurado en el servidor SQL.

NOTA 1: Todos los casos aplican tanto a una instancia sin nombre como a una instancia nombrada. Si se trata específicamente de una instancia nombrada, se indicará en forma explícita.

NOTA 2: Normalmente hay 3 partes en los campos “Server” o “DataSource” del string de conexión: [prefijo]servidor\[instancia], los valores de servidor; pueden ser algunos de los siguientes:

  1. “.”
  2. “(local)”
  3. “localhost”
  4. nombremaquina
  5. “127.0.0.1”
  6. FQDN(Server Fully Qualified Domain Name)
  7. direccionIP

ESTUDIO DE CASOS BASADOS EN MDAC

Los casos siguientes cubren los casos de clientes MDAC 2.8/2.81/2.82 conectándose a SQL Server 2005/2008 instalado en Windows 2000/2003/XP.

Veamos cada caso según estén habilitados o no, los protocolos Shared Memory (SM), TCP/IP y Named Pipes (NP).

CASO 1: Solamente está habilitado SM

Diagnósticos:

1.1. Se especificó el prefijo “tcp:” en el string de conexión, pero TCP/IP no está habilitado. Para solucionar esto, quitar el prefijo o habilitar TCP/IP.

1.2. Se especificó el prefijo “np:” en el string de conexión, además se especificó como servidor “localhost”, un FQDN, “127.0.0.1” o la dirección IP. Para solucionar esto, o bien habilitar NP o especificar como servidor “nombremáquina”.

1.3. Se especificó como servidor “localhost”, un FQDN, “127.0.0.1” o la dirección IP. Para solucionar esto especificar como servidor “nombremáquina”.

1.4. Se especificó el prefijo “lpc:” en el string de conexión, además se especificó como servidor “localhost”, un FQDN, “127.0.0.1” o la dirección IP. Para solucionar esto, especificar como servidor “nombremáquina”.

1.5. Se usa el proveedor OLEDB, luego se conecta a la instancia por omisión usando “.” o “(local)”. Para solucionar esto, especificar como servidor “nombremáquina”.

CASO 2: SM y TCP/IP habilitados, NP no habilitado

Diagnósticos:

2.1. Se especificó el prefijo “np:” en el string de conexión, además se especificó como servidor “localhost”, un FQDN, “127.0.0.1” o la dirección IP. Para solucionar esto, o bien habilitar NP o especificar como servidor “nombremáquina”.

2.2. Se especificó el prefijo “lpc:” en el string de conexión, además se especificó como servidor “localhost”, un FQDN, “127.0.0.1” o la dirección IP. Para solucionar esto, especificar como servidor “nombremáquina”.

CASO 3: SM y NP habilitados, TCP/IP no habilitado

Diagnósticos:

3.1. Se especificó el prefijo “tcp:” en el string de conexión, pero TCP/IP no está habilitado. Para solucionar esto, quitar el prefijo o habilitar TCP/IP.

3.2. Se usa el proveedor OLEDB, luego se conecta a la instancia por omisión usando “.” o “(local)”. Para solucionar esto, especificar como servidor “nombremáquina”.

CASO 4: Solamente NP habilitado

Diagnósticos:

4.1. Se especificó el prefijo “tcp:” en el string de conexión, pero TCP/IP no está habilitado. Para solucionar esto, quitar el prefijo o habilitar TCP/IP.

4.2. Se usa el proveedor OLEDB, luego se conecta a la instancia por omisión usando “.” o “(local)”. Para solucionar esto, especificar como servidor “nombremáquina”.

CASO 5: Solamente TCP/IP habilitado

Diagnósticos:

5.1. Se especificó el prefijo “np:” en el string de conexión, y NP no está habilitado. Para solucionar esto, eliminar el prefijo o habilitar NP.

CASO 6: Solamente SM está habilitado

CASO 7: Todos los protocolos están habilitados

En los Casos 6 y 7 todas las conexiones deberán ser exitosas, exceptuando algunos casos especiales que mencionaremos a continuación.

Caso especial 1: localhost

Windows 2000 y Windows XP no reconocen “localhost” como un nombre representativo de máquina en NP. En otras palabras, no se puede conectar a una instancia por omisión a través del pipe explícito file:///pipe/sql/query

Por ejemplo, el string de conexión es algo como:

"Data Source = file:///pipe/sql/query; Integrated Security = SSPI"

-o-

osql /S\\localhost\pipe\sql\query /E

Caso especial 2: Conexión a instancia local nombrada

Si no se puede identificar la causa de una conexión fallida cuando se usa MDAC para conectarse a una instancia local con nombre, hay otras dos razones posibles:

2.1. La aplicación ejecuta bajo una cuenta que no tiene permisos en la Registry de Windows donde el cliente MDAC lee. Dicha entrada es:

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\instancia\MSSQLServer

2.2. El servicio SQL Browser no está iniciado o habilitado. Intentar:

net start sqlbrowser

Caso especial 3: Conexión remota

Cuando la conexión a un servidor remoto falla y se observa algunos de los mensajes de error de más arriba, primero hay que revisar si en el servidor remoto están habilitados NP o TCP/IP, y si el servicio SQL Browser está habilitado e iniciado.

Caso especial 4: Servidor especificado en blanco

Si se usa el driver ODBC y se deja en blanco el nombre del servidor al conectarse a una instancia local, la conexión puede fallar. Para solucionarlo, especificar el nombre del servidor cada vez que se haga una conexión. El error usualmente es:

[Microsoft][ODBC SQL Server Driver]Neither DSN nor SERVER keyword supplied

Caso especial 5: "." o "(local)"

Si se usa MDAC OLEDB, no se puede conectar a una instancia local por omisión, usando “.” o “(local)” cuando TCP/IP está inhabilitado. Para solucionar esto, usar el nombre de máquina al especificar el servidor en el string de conexión.

02 marzo, 2010

Una buena lista de herramientas gratuitas

En el blog de Mladen Prajdić (de Eslovenia, pero afortunadamente el blog está en inglés) encontré esta lista muy completa de herramientas gratuitas para usar con SQL Server:

Free SQL Server tools that might make your life a little easier
http://weblogs.sqlteam.com/mladenp/archive/2007/11/20/Free-SQL-Server-tools-that-might-make-your-life-a.aspx

23 febrero, 2010

Diagnóstico de problemas de conexión a SQL Server 2005/2008, Parte 2

/*
Este post muestra cómo diagnosticar problemas de conexión a SQL Server usando cliente SNAC, según sea el mensaje de error obtenido. El post original en inglés fué realizado por Ming Lu y publicado en http://blogs.msdn.com/sql_protocols/archive/2005/10/22/483684.aspx

He realizado la traducción a español y algunas aclaraciones mínimas para dar mayor claridad.
*/

En este artículo mostraremos cómo diagnosticar problemas de conexión a SQL Server 2005/2008, usando el cliente SNAC (SQL Server Native Client) y según sea el mensaje de error recibido. Este artículo es la continuación de:

Diagnóstico de problemas de conexión a SQL Server 2005/2008, Parte 1
http://ascii164.blogspot.com/2009/10/diagnostico-de-problemas-de-conexion.html

En la Parte 1 se mostró como diagnosticar problemas generales de conexión, especialmente desde el punto de vista de red.

En esta parte, vamos a considerar los mensajes de error en inglés (brindados por un SQL Server en dicho idioma) y según sea la biblioteca cliente que se esté usando para conectarse. Antes de comenzar, es muy importante entender qué biblioteca cliente se está usando para conectarse al SQL Server. Tenemos entonces:

- SNAC (SQL Server Native Client): Es una API que es usada tanto por ODBC como OLEDB. Esta tecnología de acceso a datos apareció con SQL Server 2005.

- MDAC ( Microsoft Data Access Component): Contiene los componentes de acceso a datos fundamentales, como son el proveedor OLEDB y ODBC.

- SqlClient: Acceso a datos desde un objeto de base de datos CLR usando el proveedor de .NET (.NET Framework Data Provider for SQL Server).

Empezaremos viendo el caso de SNAC y en próximos artículos veremos los otros.


1. FALLAS DE CONEXION USANDO SNAC

Si la aplicación usa ODBC para conectarse, ejecutar osql.exe para simular el string de conexión de la aplicación y diagnosticar rápidamente. Si la aplicación usa OLEDB, usar sqlcmd.exe

Tanto osql.exe como sqlcmd.exe están en la carpeta %SYSTEMDRIVE%\%ProgramFiles%\Microsoft Sql Server\90\tools\binn.

osql(sqlcmd) /S servidor /E
osql(sqlcmd) /S servidor\instancia /E

Los mensajes posibles de error a analizar son:

1.1. MENSAJE 1: No se pudo abrir conexión (estado 53)

[SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [53].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0x35, Level 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [53].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

El servidor SQL no puede ser accedido o no existe. Intente usar: PING nombreservidor ó PING ipservidor. Si los pings tienen un timeout u otra falla, es posible que el nombre del servidor no está siendo bien resuelto por el DNS o hay algún problema de red o de ruteo a resolver. Obviamente, hay un problema de red si el ping falla cuando se especifica simplemente la dirección IP del servidor.

1.2. MENSAJE 2: No se pudo abrir conexión (estado 2)

[SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [2].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0x2, Level 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [2].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

Este error significa que el servicio SQL no está iniciado, o que el servidor no fue encontrado, o que no se puede hacer una conexión namedpipe usando el nombre especificado por el cliente. Para verificar esto, hacer lo siguiente:

1. Abrir una línea de comandos.

2. Revisar si la instancia SQL está presente, ejecutando:

sc query mssqlserver
-o-
sc query mssql$nombreinstancia


3. Abrir el SQL Server Configuration Manager y revisar el estado del servicio SQL. Si no ha iniciado, hacerlo. Si falla al iniciarlo, revisar el log de eventos de Windows o el log de errores de SQL para ver cuál ha sido el problema.

4. Si el servicio SQL está iniciado OK y están habilitados los protocolos Shared Memory/Named Pipe, intentar una conexión a la instancia local por omisión:

osql /Snp:\\.\pipe\sql\query
-o-
osql /Snp:\\.\pipe\mssql$nombreinstancia\sql\query


5. Si sigue el mismo error, asegurarse (una vez más) que el servidor está iniciado y escuchando en el namedpipe (si se ha habilitado NP). Para esto revisar el log de errores de SQL Server buscando las palabras:

Server named pipe provider is ready to accept connection on [ \\.\pipe\sql\query ] or [\\.\pipe\mssql$instancia\sql\query]

Observar que "sql\query" es el NP por omisión, por lo que se necesita saber exactamente en cuál NP está escuchando el servidor, si se cambió el valor por omisión.

6. Revisar el string de conexión. Ver si explícitamente se especificó en el string de conexión un NP y si coincide con el que el servidor tiene definido para escuchar. En el cliente usar el SQL Server Configuration Manager, click en las propiedades de Named Pipe del cliente, revisar si el NP coincide con el que usa el servidor SQL.

1.3. MENSAJE 3: No se pudo abrir conexión (estado 233)

[SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [233].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0xE9, Level 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [233].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

Para resolver esto, la primera manera consiste en reemplazar el nombre del servidor por el nombre de máquina, o ".", o "(local)", o "nombremaquina" y la conexión deberá funcionar si el servidor está escuhando a través de Shared Memory. La segunda manera consiste en habilitar Named Pipe en el servidor (usar el Configuration Manager y reiniciar el servicio).

1.4. MENSAJE 4: No hay proceso

[SQL Native Client]Named Pipes Provider: No process is on the other end of the pipe.
[SQL Native Client]Communication link failure
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0xE9, Level 16, State 1
Named Pipes Provider: No process is on the other end of the pipe.
Error: Microsoft SQL Native Client : Communication link failure.
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..

Diagnóstico:

Si el error se produce al hacer una conexión local, especificar en el string de conexión el nombre del servidor usando 127.0.0.1 o la dirección IP y usar Named Pipe. Para resolver el problema, o bien usar Named Pipe o bien usar el nombre de máquina en el string de conexión al identificar el servidor.

Si el error se produce al hacer una conexión remota a otro servidor, posiblemente el servidor no está escuchando en Named Pipe. Para resolver el problema, habilitar NP en el servidor remoto y reiniciar el servicio remoto.

1.5. MENSAJE 5: Protocolo no soportado

[SQL Native Client]SQL Network Interfaces: Server doesn't support requested protocol [xFFFFFFFF].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0xFFFFFFFF, Level 16, State 1
SQL Network Interfaces: Server doesn't support requested protocol [xFFFFFFFF].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

Si el error se produce al hacer una conexión local, posiblemente se especificó en el string de conexión el prefijo de protocolo "np:" intentando conectar a una instancia con nombre y NP no está habilitado. Si el error se produce al hacer una conexión remota a otro servidor, el servidor remoto tiene NP no habilitado.

Para resolver el problema habilitar NP en la instancia (local o remota) a la que se desea conectar.
1.6. MENSAJE 6: Error al localizar el servidor

[SQL Native Client]SQL Network Interfaces: Error Locating Server/Instance Specified [0xFFFFFFFF].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remot the connections.
-o-
HResult 0xFFFFFFFF, Level 16, State 1
SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

Se intentó conectar a una instancia especificando explícitamente los prefijos de protocolo “tcp:” o “np:” en el string de conexión, pero el servicio SQLBrowser no está iniciado. Para resolver esto, iniciar el servicio SqlBrowser en el servidor al que se desea conectar.

Usar el comando de línea NET START, con permisos de Administrator:

net start sqlbrowser

También se puede usar el SQL Server Configuration Manager, seleccionar el servicio sqlBrowser, click en Propiedades, Advanced, Active. Verificar que el servicio está iniciado y también activo.

1.7. MENSAJE 7: Error 2 del proveedor Shared Memory

[SQL Native Client]Shared Memory Provider: Could not open a connection to SQLServer [2].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0x2, Level 16, State 1
Shared Memory Provider: Could not open a connection to SQL Server [2].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

Posiblemente en el string de conexión se especificó "." "(local)" "localhost", se está usando protocolo Shared Memory y el servidor no está escuchando en Shared Memory. Para resolver este error habilitar el protocolo Shared Memory en el servidor y reniciar el servicio SQL.

1.8. MENSAJE 8: Error 87 del proveedor Shared Memory

[SQL Native Client]SQL Network Interfaces: Cannot open a Shared Memory connection to a remote SQL server [87].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0x57, Level 16, State 1
SQL Network Interfaces: Cannot open a Shared Memory connection to a remote SQL server [87].
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

La razón de este error es similar a la del Mensaje 6.

1.9. MENSAJE 9: Específico a TCP

[SQL Native Client]TCP Provider: No connection could be made because the target machine actively refused it.
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
-o-
HResult 0x274D, Level 16, State 1
TCP Provider: No connection could be made because the target machine actively refused it.
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

La razón es que el servidor SQL no está escuchando sobre TCP. Posiblemente el protocolo TCP no está habilitado para el servicio SQL.

1.10. MENSAJE 10: No completa el proceso de login

[SQL Native Client]Unable to complete login process due to delay in opening server connection.

Diagnóstico:

Revisar en el string de conexión si hay espacios en blanco después del nombre de instancia, por ejemplo:

osql /S"nombremaquina\nombreinstancia " /E

De ser eso, simplemente quitar los espacios en blanco: "nombremaquina\nombreinstancia".

Otra posibilidad es que se esté intentando una conexión remota indicando el nombre de un servidor y WINS está inhabilitado en la máquina cliente. Para resolver esto, habilitar en la máquina cliente la opción “File and Printer Sharing” y usar explícitamente el protocolo NP. Otra posibilidad es aumentar el timeout de conexión a unos 30 segundos.

1.11. MENSAJE 11: Relativo al firewall

HResult 0x274C, Level 16, State 1
An error has occurred while establishing a connection to the server. When connectiong to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.(provider:TCP Provider, errror:0-A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
-o-
Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
Error: Microsoft SQL Native Client : Login timeout expired.

Diagnóstico:

Este error ocurre cuando la conexión es bloqueada por algún firewall. Para resolver el problema hacer lo siguiente:

1. Habilitar el servicio SqlBrowser (ver Mensaje 4). Además agregar a sqlbrowser.exe como excepción en el firewall.

2. Agregar el puerto tcp (normalmente es el 1433) como excepción en el firewall. Por ejemplo: Name-1433:TCP, Value-1433:TCP:*:Enabled:Tcp 1433.

/* Los detalles acerca de cómo configurar un firewall escapan al alcance de este artículo. */


1.12. MENSAJE 12: No se puede generar contexto SSPI

Este mensaje de error suele darse al conectarse a SQL Server, con mecanismo de autenticación integrada a Windows y delegando la seguridad usando Kerberos. El mensaje en inglés, según el cliente usado es:

[SNAC] “[SQL Native Client]SQL Network Interfaces: The Local Security Authority cannot be contacted.[SQL Native Client]Cannot generate SSPI context”
[MDAC] “Cannot generate SSPI context”;
[.Net1.0/2.0]” Failed System.Data.SqlClient.SqlException: Cannot generate SSPI context”

Este error, su diagnóstico y formas de solucionarlo puede leerse en:

Cómo solucionar el mensaje de error "No se puede generar contexto SSPI"
http://support.microsoft.com/?id=811889

How to troubleshoot the "Cannot generate SSPI context" error message
http://support.microsoft.com/kb/811889/en-us





11 febrero, 2010

Libro gratis de Expression Web 3.0

Patricia Geary, Microsoft MVP, ha publicado un libro gratis titulado "Expression Web 3.0 - 2nd. Edition". El libro puede descargarse del sitio Expression Web Tutorials. Está escrito en inglés y en un archivo formato PDF. Expression Web es un software para el diseño de sitios web que forma parte de Microsoft Expression Studio.

El sitio oficial de Microsoft Expression en español está en este link.

Para descargar el libro "Expression Web 3.0 - 2nd. Edition" visitar este otro link.

10 febrero, 2010

Sysinternals Live

Desde 1996, Sysinternals (proyecto de Mark Russinovich y Bryce Cogswell) ha ofrecido decenas de herramientas gratuitas especializadas para monitoreo, administración y mantenimiento de los sistemas Windows. Diez años después Microsoft adquirió el emprendimiento para continuarlo en un sitio Microsoft de Sysinternals.

Sysinternals Live es el siguiente nivel: Es posible ahora ejecutar las herramientas directamente desde un sitio web sin necesidad de descargarla o instalarla en la máquina local. Es suficiente con escribir en el browser:

http://live.sysinternals.com

o también

\\live.sysinternals.com\tools

Para ver todas las herramientas ir a http://live.sysinternals.com

01 febrero, 2010

Sesiones online para conocer lo nuevo en .NET 4

Esto está en inglés pero bien vale la pena. Son 8 horas de duración para conocer las novedades en Visual Studio 2010 (Beta 2) y el .NET Framework 4.0 en sesiones que cubren los temas más importantes. Para ver cada sesión simplemente hay que apuntar al browser a:

New Features in .NET Framework 4 and Visual Studio 2010, Beta 2
http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=144

Allí elegir la sesión favorita, que se visualizará mediante Silverlight (tip: Visualizar en modo de pantalla completa para ver bien los detalles).

20 enero, 2010

Kit de entrenamiento Visual Studio 2010 & .NET Framework 4 - Edición Enero 2010

Microsoft puso en el sitio de descargas el kit de entrenamiento de Visual Studio 2010 & .NET Framework 4, la edición Enero 2010 del producto.

Este kit contiene presentaciones, ejercicios de laboratorio y demos para aprender a usar Visual Studio 2010. Está especialmente recomendado para aprender acerca de los temas: C# 4.0, Visual Basic 10, F#, extensiones paralelas, Windows Communication Foundation, Windows Workflow, Windows Presentation Foundation, ASP.NET 4, Windows 7, Entity Framework, ADO.NET Data Services, Managed Extensibility Framework y Visual Studio Team System.

Esta versión del kit trabaja con Visual Studio 2010 Beta 2 y .NET Framework 4 Beta 2.

Para descargar el kit de entrenamiento de Visual Studio 2010 & .NET Framework 4 visitar este link. Para descargar VS 2010 Beta 2 ir a este otro link.

02 enero, 2010

Microsoft MVP Award 2010

Empiezo el 2010 con la muy linda noticia de que fui premiado por Microsoft como Most Valuable Professional (MVP) en SQL Server. Muchas gracias por este premio, es un orgullo personal.

Mi perfil público de MVP:
https://mvp.support.microsoft.com/profile/Gustavo.Larriera