Esecuele Sin Fronteras

SQL Server, Reporting Services y Biztalk Server
  • Esecuele Sin Fronteras

    SQL Jobs pare el buen funcionamiento de BizTalk Server

    • 1 Comments

    Esta semana seguimos con el mantenimiento de base datos de BizTalk. En en post anterior hemos cubiero la configuracion que debe tener nuestro servidor de SQL y ahora trataremos por encima los SQL Jobs creados por el producto.

    Una vez instalado el producto encontrareis que se han creado números jobs.  BizTalk necesita que estos jobs se ejecuten y se ejecuten bien ya que todos ellos se encargan de mantener limpias las base de datos de BizTalk. 

    De todos los jobs creados veremos  que el job MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb se lanza una vez y no termina nunca. No os alarméis, es normal. Este Job llama al procedimiento almacenado “bts_ManageMessageRefCountLog” que implementa un bucle infinito.  Esto es así porque el planificador de SQL no permite planificar jobs que se ejecuten con una periodicidad menor que 1 segundo.  Este job controla que mensajes de la msgbox se pueden eliminar porque ya han sido procesados con éxito.  Aunque nunca termine, el Job esta planificado para que se ejecute cada segundo para asegurarnos que en caso de que este pare por algún motivo se ejecute otra vez lo antes posible.

    De todos los jobs creados , los que más nos interesan son “Backup BizTalk Server” para realizar los back-up de todas las bases de datos de BizTalk. Este job lo podremos y debemos modificar para configurar donde queremos que se guarden los ficheros  de backup. 

    Y el otro Job a tener en cuenta es “DTA Purge and Archive” este Job elimina de la base de datos BizTalkDTADB la información de tracking que ya no utilizamos  y nos da la opción de poder hacer una copia en disco  de los datos que vamos a eliminar.  Con esta tarea mantendremos la base de datos de tracking en unos tamaños aceptables, manteniendo de esta forma el rendimiento de la solución de BizTalk.

    Del resto de Jobs os recomendamos que se dejen tal cual se han creado, ya que con la configuración por defecto nos aseguramos un buen comportamiento de las base de datos de BizTalk

    Información más detallada de los Jobs creados por BizTalk Server lo podéis encontrar en http://msdn.microsoft.com/en-us/library/aa561960.aspx

     Salu2

    Enrique Palomino| BizTalk Escalation Engineer

  • Esecuele Sin Fronteras

    Mantenimiento de Base de datos de BizTalk Server

    • 0 Comments

    Hola a todos.

    Seguramente que algunos de vosotros os habéis encontrado con cinco bases de datos que no sabemos muy bien para qué sirven y que han venido impuestas por el equipo de desarrollo o arquitectura porque han decidido utilizar un producto llamado BizTalk Server. (BizTalk DTADB, BizTalkMsgBoxDB, BizTalkMngmtDB, BizTalkRuleEngineDB, SSO DB)

    Como buenos DBA las añadiremos en nuestros planes de mantenimiento y de back-up que tenemos definidos para el resto de base datos. Todo marcha bien, tengo mis bases de datos controlados, los planes de mantenimiento se ejecutan periódicamente sin error pero he notado la aparición de dead locks y bloqueos que nunca son liberados en las bases de datos de BizTalk, en concreto en la base de datos BizTalkMsgBoxDB. ¿Qué ha pasado? ¿Qué está ocurriendo?

    La explicación es sencilla. BizTalk, debido al alto acoplamiento que tiene con SQL Server, requiere que todos sus servicios estén parados mientras se realizan sus propias tareas de mantenimiento  y además requiere una configuración del servidor de base de datos que puede interferir con el resto de aplicaciones instaladas.

    Para actualizar los índices de las bases de datos de BizTalk de manera óptima debemos de ejecutar el procedimiento almacenado que se crea durante la instalación del producto,  bts_RebuildIndexes. Tenemos que asegurarnos que este procedimiento se ejecuta con todos los servicios de BizTalk parados.

    Además de este procedimiento para regenerar los índices de la MessageBox, los parámetros que demos de tener en cuenta para un funcionamiento óptimo de BizTalk y que puede interferir con la configuración que tenemos para el resto de base de datos son los siguientes:

    ·        Tendremos que deshabilitar la creación y actualización de estadísticas de manera automática en la base de datos BizTalkMsgBoxDB. Los procedimientos almacenados de BizTalk están optimizados con las estadísticas creadas por defecto.  Para deshabilitar estas opciones ejecuta los siguientes comandos:

    exec sp_dboption 'BizTalkMsgBoxDB', 'auto create statistics', 'off'

    exec sp_dboption 'BizTalkMsgBoxDB', 'auto update statistics', 'off'

     

     

    ·        El servidor de SQL que esta albergando la base de datos BizTalkMsgBoxDB tiene que tener el parámetro “Maximo Nivel de Parelelismo” fijado al valor 1.

    exec sp_configure 'max degree of parallelism', '1'

    reconfigure with override

     

    Si queréis más información sobre el mantenimiento de la bases de datos de BizTalk os recomiendo el siguiente articulo. How to maintain and troubleshoot BizTalk Server databases

    Salu2

    Enrique Palomino|BizTalk Escalation Engineer 

     

  • Esecuele Sin Fronteras

    Error Number: 1635 (Unable to install Windows Installer MSP file)

    • 2 Comments

     

    Cuando un componente de SQL Server 2005 se actualiza, se crean unos archivos “Windows installer patch” en cache, ocultos en la carpeta C:\Windows\Installer. Cuando un parche posterior se instala, el instalador busca el registro para encontrar el nivel de versión actual y a continuación busca los archivos creados (.msp). Cuando estos archivos no se encuentran o están corruptos, el instalador no puede instalar ninguna versión posterior. Además, no se puede desinstalar la versión actual. Volver a ejecutar el instalador de la versión actual no recrea los archivos.

     

    Por ejemplo, cuando se produce este problema durante la instalación de los Database Services, el error en el Summary.txt  será reflejado de la siguiente manera:

    Product                   : SQL Server Database Services 2005 (MSSQLSERVER)

    Product Version (Previous): 3200

    Product Version (Final)   :

    Status                    : Failure

    Log File                  : D:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB949095_sqlrun_sql.msp.log

    Error Number              : 1635

    Error Description         : Unable to install Windows Installer MSP file

     

     

    Workaround:

     

    Abre el hotfix log del instalador de los Database Services (SQL9_Hotfix_KB949095_sqlrun_sql.msp.log):

    MSI (s) (C8:5C) [15:32:29:468]: Couldn't find local patch 'D:\WINDOWS\Installer\42f480ea.msp'. Looking for it at its source.

    MSI (s) (C8:5C) [15:32:29:468]: Resolving Patch source.

    MSI (s) (C8:5C) [15:32:29:468]: User policy value 'SearchOrder' is 'nmu'

    MSI (s) (C8:5C) [15:32:29:468]: User policy value 'DisableMedia' is 0

    MSI (s) (C8:5C) [15:32:29:468]: Machine policy value 'AllowLockdownMedia' is 0

    MSI (s) (C8:5C) [15:32:29:468]: SOURCEMGMT: Media enabled only if package is safe.

    MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Looking for sourcelist for product {4A35EF4A-D868-4B15-A84D-3E8925AA9558}

    MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Adding {4A35EF4A-D868-4B15-A84D-3E8925AA9558}; to potential sourcelist list (pcode;disk;relpath).

    MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Now checking product {4A35EF4A-D868-4B15-A84D-3E8925AA9558}

     

    El código del hotfix del archivo 42f480ea.msp que falta es: {4A35EF4A-D868-4B15-A84D-3E8925AA9558}

    Este código esta codificado, y  no se puede utilizar directamente para localizar el archivo .msp en el registro.

     

    Para determinar el código real, abre el registro (regedit) y ve a:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches]
    Selecciona todas las subclaves contenidas en la clave Patches, y verifica qué clave contiene un valor que se llama LocalPackage y tiene una referencia al archivo .msp que buscamos ('D:\WINDOWS\Installer\42f480ea.msp').

    La ruta y el valor aparecen como:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\A4FE53A4868D51B48AD4E39852AA5985]

    Class Name:        <NO CLASS>

    Last Write Time:   11/6/2008 - 2:29 PM

    Value 0

      Name:          LocalPackage

      Type:            REG_SZ

      Data:            D:\WINDOWS\Installer\42f480ea.msp

     

    Ahora, conocemos el código real del archivo: A4FE53A4868D51B48AD4E39852AA5985

    Luego, necesitamos determinar que hotfix contiene el archivo .msp que falta.

     

    Abre la clave: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products]

     

    Abre todos los códigos de la clave Products y todas las subclaves Patches hasta encontrar la clave que contiene el código real del hotfix (A4FE53A4868D51B48AD4E39852AA5985).

     

    En nuestro ejemplo, el código del hotfix se encuentra en:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\B29A3732C1C117E44B49C59AF769AA91\Patches\A4FE53A4868D51B48AD4E39852AA5985]

     

    Cuando se selecciona este código del hotfix en la sección izquierda del registro, se podrá ver el DisplayName en la sección derecha. El  DisplayName indicara que SQL Service Pack o Hotfix contiene el archive Windows Installer Patch que falta.

    En nuestro ejemplo:

      Name:            DisplayName

      Type:            REG_SZ

      Data:            Service Pack 2 for SQL Server Database Services 2005 ENU (KB921896)

     

    Por lo tanto necesitamos bajar el “Service Pack 2 para SQL Server Database Services 2005 ENU (KB921896)” de nuevo y extraerlo a nuestro servidor. El comando para extraer el paquete de instalación Service Pack 2 a una carpeta llamada  'ExtractSQL2005SP2' es:

    >SQLServer2005SP2-KB921896-x86-ENU.exe /x:c:\ExtractSQL2005SP2

     

    Y por ultimo necesitamos localizar el archivo .msp en el paquete de instalación extraído que necesitamos copiar a 

    D:\WINDOWS\Installer.

     

    Cada componente SQL tendrá un archivo .msp distinto. En nuestro ejemplo, tenemos un error 1635 para el SQL Server Database Services. Por lo tanto necesitamos copiar sqlrun_sql.msp.

     

    Consulte la siguiente lista de nombres de archivos restantes y los correspondientes componentes SQL:

    sqlrun_sql.msp -> Database Services

    sqlrun_as.msp -> Analyses Services

    sqlrun_dts.msp -> Data Transformation Services

    sqlrun_ns.msp -> Notification Services

    sqlrun_rs.msp -> Reporting Services

    sqlrun_tools.msp -> Tools and Workstation Components

     

    Entonces solo falta renombrar sqlrun_sql.msp a 42f480ea.msp (ver SQL9_Hotfix_KB949095_sqlrun_sql.msp.log) y copiar el archivo a D:\WINDOWS\Installer. Ahora podemos empezar de nuevo la instalación del hotfix.

     

     

    - Paul Gruner.

  • Esecuele Sin Fronteras

    Error: "Unable to load client print control" en Reporting Services

    • 10 Comments

     

    ¿Te has encontrado con el siguiente error últimamente al intentar imprimir un informe en Reporting Services?

     

    No se puede cargar el controlador de impresión

     (En Ingles: Unable to load client print control)

     

    Es muy seguro que este error haya sido producido por la instalación del siguiente aviso de seguridad: 956391, que actualiza killbits, una versión antigua del control RSClientPrint por una vulnerabilidad encontrada.

     

    Aviso de seguridad de Microsoft: Actualización de seguridad acumulativa para ActiveX

    http://support.microsoft.com/?id=956391

     

    Para solucionarlo, podéis instalar el último Cumulative Update 10 de SQL Server, que lo podéis conseguir del siguiente enlace:

     

    Cumulative update package 10 for SQL Server 2005 Service Pack 2

    http://support.microsoft.com/kb/956854/en-us

     

    Si utilizaseis el Report Viewer desde una aplicación web, CRM o SharePoint, os aconsejaría los siguientes pasos:

     

    1.     Primero verificar la versión del Report Server. Debería de ser 9.00.3073 or 9.00.3282.

    Si no, actualizar el Report Server:

    Security Update for SQL Server 2005 Service Pack 2 (KB954607)

    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5148b887-f323-4adb-9721-61e1c0cfd213

     

     

    2.     Ahora comprobar la versión del control ReportViewer (en caso de utilizarlo)

    Para ello, abrir el informe en la máquina cliente, hacer clic derecho en el informe y seleccionar “View Source”.

    Encontrar la siguiente línea:

     

    <script src="http://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=X.Y.ZZZZ

     

    3.     Ahora, Si el control es de tipo “Reserved.ReportViewerWebPart.axd” entonces tiene que ver con SharePoint.

    Hay un fix para esto en el siguiente enlace:

    Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies

    http://www.microsoft.com/downloads/details.aspx?FamilyID=1e53f882-0c16-4847-b331-132274ae8c84&displaylang=en

     

                   Si el control es de tipo “Reserved.ReportViewerWebControl.axd” vamos bien.

    Tenemos 2 versiones mayores diferentes: 8.00.50727 y 9.00.XXXX.

    Si ves la versión 8.00.50727 esto significa que está viendo informes desde CRM o utilizando el control ReportViewer desde una aplicación web.

    Si ves la versión 8.00.50727 y la versión es anterior a 8.00.50727.1843 entonces se debería de instalar el siguiente fix en el servidor ReportServer o en el servidor de CRM:

     

    Microsoft Report Viewer Redistributable 2005 Service Pack 1

    http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D&displaylang=en

     

    Si ves la versión  es 9.00.XXXX o 9.0.XXXX esto significa que está viendo informes desde Report Manager, Report Server o una aplicación web desde un Visual Studio VS 2008.

    En ese caso se tundra que instalar el siguiente fix en la máquina del report server:

     

    Microsoft Report Viewer 2008 SP1 Redistributable

    http://www.microsoft.com/downloads/details.aspx?FamilyID=bb196d5d-76c2-4a0e-9458-267d22b6aac6&DisplayLang=en

     

    Esto actualizará a la versión 9.0.30729.1 del control Report Viewer.

     

     

    Para Reporting Services 2000

     

    Hara falta instalar la siguiente actualización de seguridad en el servidor de Reporting Services

    Security Update for SQL Server Reporting Services 2000 Service Pack 2

    http://www.microsoft.com/downloads/details.aspx?familyid=5F9E7F78-7439-414B-A9DC-A779B89427DB&displaylang=en

     

    Y la siguiente version del Report Viewer redistributable en la máquina donde está la aplicación web (ó la máquina de CRM):

     

    Microsoft Report Viewer Redistributable 2005 Service Pack 1

    http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D

     

    La siguiente actualización de seguridad debería de estar instalada en todas las máquinas cliente:

    Microsoft Security Advisory: Update Rollup for ActiveX Kill Bits

    http://support.microsoft.com/kb/956391   

     

    He seguido los pasos arriba indicados y todavía me da el error al imprimir

     

    Si aun así os seguís encontrando el error al imprimir el informe desde vuestra aplicación. Pudiera ser que la versión del control rsClientPrint en las máquinas cliente no fuera igual a la versión del servidor.

    Una buena prueba sería que borraseis la el control que tenéis en la máquina cliente y permitáis que se descargue de nuevo desde el servidor. Esto se hace automáticamente al imprimir el informe, la primera vez que el control se va a utilizar o cuando la versión en el servidor cambia. Nótese que los usuarios necesitan tener permisos para descargar controles Active X.

    Los pasos a seguir en la máquina cliente serían:

    1.       Desregistrar RSClientPrint.dll en c:\windows\system32 folder

    2.       Borrar todos los ficheros RSClientPrint.dll y RSClientPrint*.rll del directorio

    c:\windows\system32 .

    3.       Ir a Windows\Downloaded Program Files y borrar la clase RSClientPrint 2005

    4.       Configurar la intranet de IE para que pida credenciales para descargar controles ActiveX

    5.       Ejecutar el informe y hacer clic en el botón de impresión.

    6.       Instalar el plugging ActiveX cuando lo pida

    7.       Confirmar que la clase RSClient 2005 se ha descargado  en Windows\Downloaded Program Files

    8.       Si os muestra un mensaje que empieze por “An error occurred during printing (0x80070006)”, habrá que reiniciar la maquina y repetir los pasos

     

    Una manera de comprobar la versión del control rsClientPrint en la máquina cliente sería (tiene que ser la misma versión que la del servidor)

    ·                      Abrir la ventana de comandos

    ·                      navegar a c:\windows\downloaded program files

    ·                      Copiar rsclientprint.dll a un directorio temporal, por ejemplo c:\temp

    ·                      Abrir el Explorador de Windows

    ·                      Navegar al directorio c:\temp

    ·                      En el menu contestual comprobar la versión

    ·                      Borrar RSClientPrint.dll del directorio temp

     

    Maria Esteban

    Ingeniero de Soporte de Reporting Services

  • Esecuele Sin Fronteras

    Error "Failed to find a cluster group that owned shared disk: E:" cuando E: es un disco local

    • 1 Comments

    En un entorno cluster de 2 nodos, tenemos una instancia cluster de SQL Server 2005 X64 en versión RTM, y una instancia de Analysis Services 2005 cluster.

    Queremos actualizar la instancia de SQL Server 2005 al Service Pack 2. Sin embargo, la instalación falla con el error siguiente: "Product: Microsoft SQL Server 2005 (64-bit) -- Configuration failed."

     Los logs de instalación del Service Pack para SQL Server 2005 se encuentran por defecto en: C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix.

    En este caso, el fichero hotfix.log muestra::

    MSP Error: 29527  The setup has encountered an unexpected error in datastore. The action is SetInstanceProperty. The error is :  Source File Name: datastore\cachedpropertycollection.cpp
    Compiler Timestamp: Sat Oct  7 09:43:48 2006
         Function Name: CachedPropertyCollection::findProperty
    Source Line Number: 130
    ----------------------------------------------------------
    Failed to find property "ComputerList" {"SqlComputers", "", ""} in cache
                      Source File Name: datastore\clusterinfocollector.cpp
                    Compiler Timestamp: Sat Oct  7 09:43:48 2006
                         Function Name: ClusterInfoCollector::collectClusterVSInfo
                    Source Line Number: 888
                    ----------------------------------------------------------
                    Failed to detect VS info due to datastore exception.
                                     Source File Name: datastore\clustergroupsproperties.cpp
                                   Compiler Timestamp: Sat Oct  7 09:43:48 2006
                                        Function Name: ClusterGroupScope.SharedDisks
                                   Source Line Number: 56
                                   ----------------------------------------------------------
                                   Failed to find a cluster g

    El error no se muestra completo. Sin embargo, al ir al log de aplicación del nodo en el que ejecutamos el setup podemos ver registrado el error completo:

    Event Type:                    Error
    Event Source:               MsiInstaller
    Event Category:           None
    Event ID:   10005
    Date:
    Time:
    User:
    Computer:
    Description:
    Product: Microsoft SQL Server 2005 (64-bit) -- Error 29527. The setup has encountered an unexpected error in datastore. The action is RestoreSetupParams. The error is :  Source File Name: datastore\cachedpropertycollection.cpp
    Compiler Timestamp: Sat Oct  7 09:43:48 2006
         Function Name: CachedPropertyCollection::findProperty
    Source Line Number: 130
    ----------------------------------------------------------
    Failed to find property "OwningGroup" {"VirtualServerInfo", "", "SQLVSPRD03"} in cache
                              Source File Name: datastore\clusterinfocollector.cpp
                            Compiler Timestamp: Sat Oct  7 09:43:48 2006
                                 Function Name: ClusterInfoCollector::collectClusterVSInfo
                            Source Line Number: 888
                            ----------------------------------------------------------
                            Failed to detect VS info due to datastore exception.
                                                     Source File Name: datastore\clustergroupsproperties.cpp
                                                   Compiler Timestamp: Sat Oct  7 09:43:48 2006
                                                        Function Name: ClusterGroupScope.SharedDisks
                                                   Source Line Number: 56
                                                   ----------------------------------------------------------
                                                   Failed to find a cluster group that owned shared disk: E:

    El Setup del Service Pack 2 falla porque dice que no puede encontrar el disco compartido E:.

    Pero E: en cada uno de los nodos es un disco local, y no compartido.

     

    El problema esdebido a que en el registro, la instancia cluster de Analysis Services apunta al disco E:\, lo que evidentemente es erróneo porque el grupo de SSAS en el cluster no puede contener un disco local:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\Setup
        Version    REG_SZ    9.00.1399.06
        ASGroup    REG_SZ    S-1-5-21-1963925522-1830819238-1060643463-27841
        Language    REG_DWORD    0x409
        ProductCode    REG_SZ    {2D8F2A31-E409-43B5-91AF-2FAF678A0052}
        SqlCluster    REG_DWORD    0x1
        FeatureList    REG_SZ    Analysis_Server=3 AnalysisDataFiles=3 AnalysisSharedTools=3
        SQLBinRoot    REG_SZ    E:\NODO2\MSSQL.2\OLAP\Bin
        PatchLevel    REG_SZ    9.00.1399.06
        SQLPath    REG_SZ    E:\NODO2\MSSQL.2\OLAP    DataDir    REG_SZ    E:\NODO2(…)

    Actualizando las entradas de registro para que apunten al disco compartido que contiene las bases de datos de la instancia de Analysis Services, la instalación del Service Pack 2 para la instancia de SQL Server 2005 finaliza correctamente.

     

    Marcos Celada

    Ingeniero de Soporte de SQL Server

     

  • Esecuele Sin Fronteras

    Bienvenidos a nuestro blog de "Esecuele Sin Fronteras"

    • 0 Comments

    En este blog, los ingenieros de soporte de SQL Server, Reporting Services y Biztalk Server de España queremos compartir con vosotros nuestra experiencia con los distintos productos, tocando de cerca o de muy cerca Microsoft SQL Server, las herramientas que se pueden utilizar cuando nos enfrentamos a ciertos tipos de problema, y buenas prácticas utilizando nuestros productos.

     

    Hemos decidido llamar este blog "Esecuele Sin Fronteras" por 2 razones:

    - No queríamos limitarnos simplemente a SQL Server, ya que muchos productos se relacionan con él, entre ellos Reporting Services y Biztalk Server.

    - Nos coordinamos con nuestros ingenieros de LATAM, ya que también tienen información publicada en su blog (en español y en portugués), al que haremos referencias en algunos posts. Os animamos a que ya consultéis su blog: http://blogs.technet.com/latam/.

     

    Esperamos que la información que pongamos en este blog os resulte útil, y vuestros comentarios son más que bienvenidos!

     

    El equipo de Esecuele Sin Fronteras

     

Page 1 of 1 (6 items)