I'm trying to send messages to MSMQ using PHP. When the message is smaller than approximately 1.1 MB the message is sent. Otherwise, I get exception "com_exception: There are insufficient resources to perform this operation." The message is smaller than the limit 4 MB. This is what I've found out so far:
file_get_contents
andfile_put_contents
with PHP works with no problem, so upload limit should be fine- sending same message not with php works with no problem, so it is somehow PHP-related
- purging messages from queue does not help
- no dead-letter messages
php.ini settings:
- upload_max_filesize=20M
- memory_limit=512M
There is no limit on message size in msmq properties.
I'm uploading pdf files in file_get_contents. This is php for sending, the exception is on $msgOut->Send($msgQueue):
$body = file_get_contents("somefile.pdf");
if(!$msgQueueInfo = new COM("MSMQ.MSMQQueueInfo")){
return false;
}
$msgQueueInfo->PathName = $this->getPath();
if(!$msgQueue = new COM("MSMQ.MSMQQueue")){
return false;
}
$msgQueue=$msgQueueInfo->Open(MQ_SEND_ACCESS, MQ_DENY_NONE );
if(!$msgOut = new COM("MSMQ.MSMQMessage")){
return false;
}
$msgOut->Body = $body;
$msgOut->Label = $this->getLabel();
$msgOut->Send($msgQueue);
$msgQueue->Close();
unset($msgOut);
unset($msgQueue);
unset($msgQueueInfo);