RMQ message size limit

Hi, I get an error (41708: RMQ Error - Invalid message) while trying to recieve message (ASCII symbols) from PC app. I found out, that strings more than 80 symbols raise this error.
But message size limit is 444. So, I don’t get it :neutral:

I know, there is a limitation for socket recieving for strings (max. number of characters 80 can be handled). Maybe there’s the same limitation for RMQ?

Here is my code:

public void SendMessage(string strMsg)
{
//> 80 symbols (not working)
//strMsg = “LF’L’R’D’RBDU’B’U’BU2BUB’ULU’L’U’B’U’BFUF’U’FUF’U’FUF’U’RU2R’F’U2FL’BLUL’U’B’ULU’R’U2RU2R’FRUR’U’R’F’R2U”;

//80 symbols (working fine)
strMsg = “LF’L’R’D’RBDU’B’U’BU2BUB’ULU’L’U’B’U’BFUF’U’FUF’U’FUF’U’RU2R’F’U2FL’BLUL’U’B’ULU”;

//Message size limit - 444
MessageBox.Show(tRob1Queue.MessageSizeLimit.ToString());

//Clear byte
Byte data = null;

//Create message data
data = new UTF8Encoding().GetBytes(“string;"” + strMsg + “"”);

//Place data and sender information in message
sendMessage.SetData(data);
sendMessage.Sender = myQueue.QueueId;

//Send message to the RAPID queue
tRob1Queue.Send(sendMessage);
}

Not sure I understand you correctly, but message size in RAPID is 80 characters.


The limitation here would be the string itself. Try to create a program with a string longer than 80chars and it will tell you it’s too long.

Is there a way to send a message in bytes (similar to raw data)? Or should I split the message into 2 parts?

This may be of help

you can change the message size limit in the sys file.

SYS.cfg

CAB_TASKS:

-Name “T_ROB1” -RmqMaxMsgSize 1000

Then I normally use a record to pack a bunch of data together in whatever format your trying to use.

The limit for any one string variable will always be 80 but you can have multiple 80 string variables in a Record that is sent over the RMQ.

RECORD RMQ_Data
string sTask;
pos position;
dnum dnUnixStamp;

ENDRECORD

While I have not used it myself you should be able to send rawbytes aswell.