The transactions are mainly handled by the client.
It buffers the messages and sends them all at commit()
Your problem is probably due to the list of messages
being deserialized is too big to fit in memory.
The cache or persistence hasn't seen the messages yet.
It is a known issue with JBossMQ's network protocol.
It shouldn't try to deserialize the message body,
it should just put it straight into cache/persistence where
OutOfMemory can be avoided by flushing the in
memory version to disk.
thanks for your fast reply, now I understand the problem a little bit better. One additional question: You write that the problem originates from the JBossMQ network protocol. Lets say if my client would run inside JBoss, i.e. the same virtual machine, would using the JVMServerILService solve the problem?
No the problem would be worse.
The client would have n messages which are cloned
before they are sent to server.
Only once all messages are cloned would it start
adding them to server which is when they are availble
to be cached (move out of main memory).
Perhaps, this could be
Perhaps this could be improved by clearing the clients
copy before sending to the server.
I haven't checked the code to see whether this is in place
already in place.
thank you very much. Although right know I do not quite know how to solve my problem, I know at least the cause and where to start. If I find a good solution I will post it to the forum.
Thanks yery much for your help!