GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Trabajar con Documentos Grandes en MOSS 2007


Al trabajar con Sitios de Colaboración de SharePoint, antes o después nos encontraremos con la necesidad de trabajar con documentos grandes, que desearemos poder almacenar, recuperar e indexar en nuestras librerías de documentos de MOSS 2007. Sin embargo, poder trabajar correctamente en MOSS 2007 con este tipo de documentos tiene ciertos detalles que deberemos tener en cuentas, si no queremos sufrir una experiencia algo frustrante. A continuación se presentan varias recomendaciones de configuraciones para trabajar con datos grandes en MOSS 2007.

Lo primero que deberemos tener en cuenta es ¿Qué son documentos grandes? Quizás no exista una verdad absoluta para esta respuesta, pero una buena aproximación, podría ser los documentos de más 16MB y/o de 50MB (16 MB para documentos que se deseen indexar). No es un vacile, va en serio. Pero claro, el concepto de Documentos Grandes en MOSS, no tiene que ver estrictamente con el tamaño del documento, sino con ciertas limitaciones que nos podremos encontrar, y que en caso de trabajar con documentos de menor tamaño, no nos encontraríamos. Evidentemente, a fecha de hoy, un documento de 16MB o 50BM, no es grande como tal (por dios, con la cantidad de pelis e imágenes ISO que nos podemos descargar del RapidShare, y aquí preocupados por 16MB de mierda ;-)

A continuación, vamos a enumerar y argumentar, diferentes detalles relacionados con la manipulación de documentos grandes en una instalación de MOSS 2007, tanto en lo relacionado con las Limitaciones que adelantábamos, como también determinados ajustes para evitar excepciones de timeout, etc., y así poder aprovechar completamente las ventajas de las Librerías de Documentos de MOSS y las capacidades de Indexación y Búsqueda de MOSS.

La opción Maximum Upload Size de las Aplicaciones Web tiene un valor por defecto de 50 MB

Esto implica, que si intentamos subir (upload) un documento mayor de 50 MB, no tendremos éxito en nuestra hazaña (al menos, en una instalación por defecto). Así, al intentar subir un documento a una Librería de Documentos a través del formulario Upload Document, se produciría el error:

The form submission cannot be processed because it exceeded the maximum length allowed by the Web administrator. Please resubmit the form with less data.

En consecuencia, desde la Consola de Administración Central, en la pestaña Application Management, deberemos utilizar la opción Web application general settings de la sección SharePoint Web Application Management. Una vez en el formulario Web Application General Settings, deberemos seleccionar la Aplicación Web deseada, y seguidamente ya podremos cambiar la opción Maximum Upload Size, que como se muestra en la siguiente pantalla capturada, viene configurada por defecto en 50 MB.

Una vez aumentado el valor de la propiedad Maximum Upload Size, estaremos en situación de subir documentos de mayor tamaño a las Librerías de Documentos de la Aplicación Web para la que lo acabamos de configurar.

Un último detalle sobre la propiedad Maximum Upload Size, para quien tenga la duda, si tenemos la opción Maximum Upload Size establecida a 50MB (por poner ejemplo), y tenemos en una Librería de Documentos un fichero de tamaño mayor, sí podremos descargarnos el documento.

Error al copiar en Vista Explorador o desde el Explorador de Windows ficheros mayores de 50 MB: No se puede copiar, no se puede leer del disco o archivo de origen

En una Librería de Documentos de MOSS 2007, es posible utilizar la Vista Explorador (Explorer View), para poder visualizar la Librería de Documentos de una forma similar a como se utiliza el Explorador de Windows, como puede observarse en la siguiente pantalla capturada.

Otra forma similar de acceder a una Librería de Documentos de MOSS 2007, es abrirla en el Explorador de Windows, utilizando la opción Open with Windows Explorer del menú Action de la Librería de Documentos, como se muestra en la siguiente pantalla capturada.

El efecto conseguido, como nos podemos imaginar, es el siguiente.

Sin embargo, si intentamos copiar un documento de tamaño mayor a 50 MB desde dicha Librería de Documentos, obtendremos el error de que no se puede copiar porque no se puede leer del disco o archivo de origen (Error al copiar un archivo o carpeta: No se puede copiar. No se puede leer del disco o archivo de origen.). Atónito se queda uno.

En esta ocasión, el problema reside en el equipo cliente y no en el servidor de MOSS. Habitualmente, cuando accedemos a una Librería de Documentos desde una estación de trabajo Windows, de las formas descrita (Vista Explorador o Explorador de Windows), estamos utilizando de forma indirecta, un servicio existente en nuestra estación de trabajo: el servicio Web Client o Cliente Web (depende de que tengamos instalado Windows en inglés o en español). Este servicio, por defecto está limitado a trabajar con documentos de hasta 50 MB. Sin embargo, es posible alterar este comportamiento modificando el Registro de Windows.

Las configuraciones del registro relevantes para este caso, se encuentran bajo la siguiente rama:

HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

Existen varios parámetros que podemos configurar: AcceptOfficeAndTahoeServers, BasicAuthLevel, FileAttributesLimitInBytes, FileSizeLimitInBytes, InternetServerTimeoutInSec, LocalServerTimeoutInSec, SendReceiveTimeoutInSec, ServerNotFoundCacheLifeTimeInSec, SupportLocking.

En particular, el parámetro que configuré para aumentar el límite de los 50 MB, es el parámetro FileSizeLimitInBytes. En particular, tuve que crear un nuevo parámetro de nombre FileSizeLimitInBytes, tipo REG_DWORD, y valor 100.000.000 en decimal (esto son, aprox. 100 MB), como se puede apreciar en la siguiente pantalla capturada.

Muy importante, tras modificar los parámetros WebClient del Registro, es reiniciar el Sistema Operativo. No es suficiente con reiniciar el servicio WebClient, al menos, no en todos los casos (en mi caso, WinXP SP3 + IE8 no funcionó, lo cual, no implica necesariamente que en todas las versiones de Sistema Operativo e Internet Explorer, sea estrictamente necesario).

Puede encontrarse más información en el POST WebDAV Redirector Registry Settings de Robert McMurray.

Por defecto, sólo se pueden indexar archivos de hasta 16 MB

MOSS 2007, al igual que las versiones anteriores, por defecto sólo puede indexar archivos de hasta 16 MB. En caso de intentar indexar archivos de mayor tamaño (archivos grandes), podemos encontrarnos con mensajes del tipo The file reached the maximum download limit. Check that the full text of the document can be meaningfully crawled, que en español viene a ser algo como El archivo ha alcanzado el máximo límite. Chequee que el texto completo del documento puede ser efectivamente indexado.

La solución para poder indexar archivos mayores de 16 MB, consiste en agregar una nueva entrada al registro de Windows, para lo cual se pueden seguir los siguientes pasos:

  • Utilizando la herramienta regedit.exe, posicionarse en HKLM\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager, y agregar una nueva entrada de nombre MaxDownloadSize, tipo REG_DWORD, y valor el tamaño máximo de los ficheros que se desea indexar, en MB.
  • Reiniciar el Servidor MOSS.
  • Ejecutar una indexación completa (Full Crawl).

A continuación se muestra un detalle de la configuración de la opción MaxDownloadSize en el registro de Windows. En dicho ejemplo, se ha configurado en 100 MB.

Por otro lado, la configuración de la opción MaxDownloadSize puede provocar excepciones de timeout en la indexación, pues al trabajar con ficheros más grandes, los tiempos de espera serán también mayores.

Para evitar este efecto colateral, es posible configurar (bueno, mejor dicho, aumentar) las opciones Connection Time y Request acknowledgement time en las opciones de búsqueda de la Granja MOSS. Para ello, en la Consola de Administración Central, en la pestaña Application Management, entraremos en la opción Manage search service de la sección Search.

En la pantalla Manage Search Service, seleccionaremos la opción Farm-level search settings.

En la parte inferior de la pantalla Manage Farm-Level Search Settings, tenemos disponibles para configurar las opciones Connection Time y Request acknowledgement time, que podremos configurar con los valores deseados.

Por mostrar un ejemplo real, a continuación mostramos el resultado de una búsqueda que devuelve dos documentos, uno 4MB y otro de 18MB. Para poder conseguir este resultado de búsqueda, fue necesario configurar en el registro la opción MaxDownloadSize. Sin embargo, sólo con esto no fue suficiente, y hasta que no se aumentaron los valores de configuración de Timeout de búsquedas, el documento de 18MB no pudo ser correctamente indexado, y en consecuencia, no aparecía en ningún resultado de búsqueda.

Aumentar el valor por defecto de la opción large-file-chunk-size

El tamaño de Chunk está relacionado con la cantidad de información que puede leerse de un fichero de una sola vez, y por defecto está establecido en 5 MB. En algunos casos, puede ser recomendable aumentar el tamaño de la opción large-file-chunk-size, con el objetivo de aumentar el rendimiento, siempre teniendo en cuenta que si utilizamos un valor muy alto, podemos impactar en el consumo de memoria del servidor MOSS.

La forma de poder modificar la opción large-file-chunk-size, es a través del comando STSADM (recordemos que STSADM es nuestro amigo ;-). En consecuencia, los pasos a seguir son:

  • Ejecutar un comando STSADM desde una ventana de símbolo del sistema, similar a stsadm.exe -o setproperty -pn large-file-chunk-size -pv [TamañoBytes]. De este modo, si queremos establecer el valor de large-file-chunk-size a 10 MB, deberíamos ejecutar un comando como Stsadm.exe -o setproperty -pn large-file-chunk-size -pv 10485760.
  • Reiniciar el IIS. Para ello, se puede ejecutar el comando iisreset /noforce, desde una ventana de símbolo del sistema.

Aumentar la propiedad Connection TimeOut del Sitio Web de IIS

Otra propiedad susceptible de ser modificada, es la propiedad Connection TimeOut, disponible para cada Sitio Web de IIS. Esta configuración la podremos realizar utilizando la herramienta administrativa IIS Manager. Para ello, en IIS Manager, mostraremos el diálogo de Propiedades del Sitio Web deseado.

En el diálogo de Propiedades del Sitio Web, configurar la opción Connection Timeout, al valor deseado.

Ajustar el valor del parámetro httpRuntime en el Web.Config de la Aplicación Web de MOSS

Con el objetivo de evitar errores del tipo System.Web.HttpException: Request timed out, HttpException (0x80004005): Request timed out, es posible aumentar el valor del parámetro httpRuntime en el Web.Config de la correspondiente Aplicación Web de MOSS.

El valor por defecto del parámetro httpRuntime en una Aplicación Web de MOSS es el siguiente, teniendo encuenta que por defecto, el valor de la propiedad executionTimeout es 90.

<httpRuntime maxRequestLength="51200" />

En consecuencia, podemos ajustar el valor, como se muestra a continuación (es un ejemplo orientativo), aumentando así el valor de Time Out a 300 segundos, y de maxRequestLength a 100MB:

<httpRuntime executionTimeout="300" maxRequestLength="102400" />




Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.