It doesn't normally happen due to exim database corruption. It normally happens if your machine goes offline or another machine goes offline for network connectivity. If that happens, then exim reaches the retry times and cannot succeed in sending out the messages and will not try to resend those messages until the retry timeout is reached.
If this happens to you frequently, then you likely have an issue with your machine's network or routing and it has nothing to do with exim.
Run the following in the terminal.
/usr/sbin/exim_tidydb -t 1m /var/spool/exim retry > /dev/null
/usr/sbin/exim_tidydb -t 1m /var/spool/exim reject > /dev/null
/usr/sbin/exim_tidydb -t 1m /var/spool/exim wait-remote_smtp > /dev/null
rm -f retry retry.lockfile wait-auth_relay.lockfile
rm -f wait-remote_smtp wait-remote_smtp.lockfile wait-auth_relay
service exim restart