You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a user places a non-serializable object in the connector or channel map and persistent queuing is off, then the message will process just fine. The database will still be able to store it too (in most cases) because toString() is called rather than attempting to serialize it.
However, if persistent queuing is on, then the message will always fail with an exception like this:
ERROR-408: MLLP Connector error
ERROR MESSAGE: Can't save payload to queue
java.io.NotSerializableException:
This has been fixed due to MIRTH-2250 and MIRTH-428. The new queuing framework no longer serializes connector messages; the objects themselves are held in memory in the PersistedBlockingQueue (subject to a max buffer size), which calls the Donkey DAO to select/construct connector messages when the queue buffer depletes.
One side effect of this is that when queuing is on, there is no guarantee that non-serializable objects will be available by the time the destination connector attempts to dispatch (and replaces any connector properties). This is because if a message is offered to a full destination queue, it will simply update the current queue size and not store the object in memory (the object should already have been committed to the database). Once the queue repopulates, the connector messages that were offered but not added will contain the toString() representations of any map objects that were not serializable.
Imported Comment. Original Details:
Author: narupley
Created: 2013-03-18T08:57:17.000-0700
If a user places a non-serializable object in the connector or channel map and persistent queuing is off, then the message will process just fine. The database will still be able to store it too (in most cases) because toString() is called rather than attempting to serialize it.
However, if persistent queuing is on, then the message will always fail with an exception like this:
ERROR-408: MLLP Connector error
ERROR MESSAGE: Can't save payload to queue
java.io.NotSerializableException:
Imported Issue. Original Details:
Jira Issue Key: MIRTH-2403
Reporter: narupley
Created: 2013-03-18T08:57:06.000-0700
The text was updated successfully, but these errors were encountered: