We are currently using the latest DOA package in our Delphi 7 environment. Over the past few months we have seen an increase in pipe messages being lost.
Our main Oracle table fires a trigger when a new record is inserted. This trigger first calls dbms_pipe.pack_message() and then inserts the pipe message into a second table for debugging purposes.
When the TOracleEvent receives a message the content of the message is first written to a log file and then the necessary processing is performed.
The number of records inserted into the main table has been steadily increasing over the past few months. As the inserts increase (400+ a day) so have the number of messages being lost (average 1 per day.)
From the additional debugging table and log file we know that the lost message is inserted into the pipe but the TOracleEvent component never receives it. All messages sent before and after the lost message appear in both the debug table and the log file.
Do we need to move to advanced queuing or is there something we can change to not loose any pipe messages?
Our main Oracle table fires a trigger when a new record is inserted. This trigger first calls dbms_pipe.pack_message() and then inserts the pipe message into a second table for debugging purposes.
When the TOracleEvent receives a message the content of the message is first written to a log file and then the necessary processing is performed.
The number of records inserted into the main table has been steadily increasing over the past few months. As the inserts increase (400+ a day) so have the number of messages being lost (average 1 per day.)
From the additional debugging table and log file we know that the lost message is inserted into the pipe but the TOracleEvent component never receives it. All messages sent before and after the lost message appear in both the debug table and the log file.
Do we need to move to advanced queuing or is there something we can change to not loose any pipe messages?