This parameter is an offset from the time the message is ready for dequeue. Expiration processing requires the queue monitor to be running. However the queue monitor is started automatically by the system if needed.
If Expiration = -1 the message does not expire.
If the message is not dequeued before it expires, then it is moved to the exception queue in the OracleQueueMessageState.Expired state.