2009-11-13 11 views
26

MSMQ: ¿Qué puede causar un error de "Insuficientes recursos para realizar la operación" cuando se recibe desde una cola?MSMQ: ¿Qué puede causar un error de "Insuficientes recursos para realizar la operación" cuando se recibe desde una cola?

En ese momento, la cola solo contenía 2.000 mensajes con un tamaño aproximado de 5 KB.

+0

Probablemente esté filtrando un recurso (memoria, identificadores, etc.). –

+0

Estoy de acuerdo, maneja es mi apuesta. ¿Qué sistema operativo? – SqlACID

+0

Windows Server 2003 –

Respuesta

22

Del Blog de John Breakwell hay posibilidades once:

  1. El grupo de subprocesos para la lectura a distancia está agotada (MSMQ 2.0).
  2. El número de hilos de devolución de llamada locales se excede
  3. El volumen de mensajes ha superado lo que el sistema puede manejar (MSMQ 2.0 solamente).
  4. La memoria del kernel de la memoria paginada es agotada.
  5. Binarios no coincidentes.
  6. El tamaño del mensaje es demasiado grande.
  7. Se ha excedido la cuota de la máquina.
  8. problemas de enrutamiento cuando se abre una cola externa transaccional (MSMQ 3.0 sólo)
  9. La falta de espacio en disco.
  10. problemas de almacenamiento en dispositivos móviles
  11. Clustering demasiados recursos MSMQ

http://blogs.msdn.com/johnbreakwell/archive/2006/09/18/761035.aspx

Me gustaría comprobar la versión de su cola y la cantidad de conexiones (hacia y desde) la cola abierta en la parte tiempo de error Cualquiera de esos "podría haber" causado su error.

+1

Fue el número de conexiones abiertas. Hubo un error por el cual se abrirían las conexiones en un bucle y nunca se cerrarían. –

+1

¿Qué se considera exactamente una "conexión" a la cola? Estoy trabajando con la API administrada .NET para la espera de mensajes, y los documentos de MSDN nunca mencionan el concepto de 'conexiones'. –

+0

En .NET, cada objeto 'MessageQueue' se considera una conexión, por lo que debe' Dispose' them. –

29

Tuve el mismo mensaje de error y la solución fue simple.

Había un montón de mensajes en varias colas y se habían alcanzado los límites de almacenamiento. Fui a:

  • Administrador del servidor -> Características

  • se pulsa sobre Message Queuing

  • propiedades seleccionadas

  • En la ficha General de la ONU marcadas en los límites de almacenamiento

me informó de que los servicios que utilizan MSMQ serían reinició, y luego fue el error de distancia.

+3

Buenas instrucciones. Aunque todavía establecería un límite ... dejar que se vuelva tan "grande como sea posible" te da el riesgo de llenar tu disco duro. Eso a su vez puede causar errores aún más graves que los "Recursos no válidos para realizar la operación" de msmq. – goamn

+3

Es cierto, aunque es muy fácil controlar el espacio en el disco duro, y un departamento de TI no tendrá que conocer otros límites para tener en cuenta. – Philip

+0

también accesible a través de 'Computer Managment' ->' Message Queuing', haga clic derecho -> 'Properties' – inwenis

12

Tuve demasiados mensajes fallidos en mi cola saliente. Verificar colas del sistema -> Mensajes de letra muerta. Limpié esta cola y funcionó bien de nuevo.

+4

Esto también me solucionó el problema, excepto que era la" Cola de la carta muerta transaccional " – Scott

Cuestiones relacionadas