Link to home
Start Free TrialLog in
Avatar of Kvapka Kvapla
Kvapka Kvapla

asked on

com_exception when sending message (<2MB) to MSMQ using PHP

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 and file_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.
ASKER CERTIFIED SOLUTION
Avatar of gr8gonzo
gr8gonzo
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Kvapka Kvapla
Kvapka Kvapla

ASKER

Thank you very much for your response and detailed explanation. The messages has sometimes more then 2-million characters indeed. I'd like to set message encoding to ASCII - I'd do base64 encoding and then it should be fine to send it as ASCII. The problem is that I haven't find a way to set MSMQ message encoding to ASCII in PHP.
 For C# you can set the encoding. I've tried to get all the variables for the COM class like this

 $oExplorer = new COM("MSMQ.MSMQMessage");
        com_print_typeinfo($oExplorer, 'IMSMQMessage4');

Open in new window


But there is no such attribute as
BodyEncoding

Open in new window

. Do you think there is any way how to achieve it?
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Encoding issue can be resolved using gr8gonzo's solution; assist points for BASE64 explanation.