Syntax Highlighter

viernes, 12 de agosto de 2011

DotNetNuke 6.0: Fix para el módulo de Dashboard en Azure

Esta es una entrada corta en el blog para aquellos que tengan DNN 6.0 en Azure y no puedan acceder al módulo de Dashboard. Hay un procedimiento almacenado que seguía sin ser compatible con SQL Azure en este módulo ya que acceder a “sysfiles”.

Como ya sabrán, en SQL Azure al ser un servicio multi-tenant no hay información sobre los ficheros físicos de SQL, por lo que esta sintaxis genera un error.

ALTER procedure [dbo].[Dashboard_GetDbFileInfo]
AS

SELECT
CASE LOWER(RIGHT(filename,3))
WHEN 'mdf' THEN 'DATA'
WHEN 'ldf' THEN 'LOG'
ELSE 'UNKNOWN'
END as FileType,
Name,
size*8 as Size,
filename
FROM sysfiles


GO



Para solucionarlo, modificamos el procedimiento almacenado de la siguiente manera, para que sirva tanto en entorno SQL Azure como on-premise:


ALTER procedure [dbo].[Dashboard_GetDbFileInfo]
AS

IF ServerProperty('Edition') = 'SQL Azure'
BEGIN
SELECT
'DATA' as FileType,
db_name() as Name,
(8.0 * SUM(reserved_page_count)) as Size,
'c:\...\Not_accesible_on_SQL_Azure.mdf' as Filename
FROM sys.dm_db_partition_stats
END
ELSE
BEGIN
EXECUTE sp_executesql N'SELECT
CASE LOWER(RIGHT(filename,3))
WHEN '
'mdf'' THEN ''DATA''
WHEN '
'ldf'' THEN ''LOG''
ELSE '
'UNKNOWN''
END as FileType,
Name,
size*8 as Size,
filename
FROM sys.files'

END

GO
Una vez modificado el procedimiento almacenado, ya podemos acceder al módulo de Dashboard para comprobar todos los parámetros de nuestra instancia de DotNetNuke.
Dashboard fix
Espero que sirva de ayuda (o por lo menos para acordarme yo mismo de esto).





Un saludo.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...