Go To subscription node in PeopleTools >> Integration Broker >> Monitor Integrations >> Sub Contracts and get teh the PUBID of the message in DONE status

For PT 8.47 and lower run the below SQL to verify that the message status is DONE
select * from PSAPMSGSUBCON where PUBID=;

Then run the update below:
update PSAPMSGSUBCON set STATUSSTRING='CNCLD', RETRYCOUNT=0, SUBCONSTATUS=8 where PUBID=;

For PT 8.48 and higher, run the below SQL to verify that the message status is DONE
select * from PSAPMSGSUBCON where QUEUESEQID=;

Then run the update below:
update PSAPMSGSUBCON set STATUSSTRING='CNCLD', RETRYCOUNT=0, SUBCONSTATUS=8 where QUEUESEQID=;

You can now go back to Sub Contracts and verify that the message status has been changed to CANCEL then open message details and resubmit.

4) Open message details and resubmit it

5) Go to Sub Contracts and press Refresh button until the message status is Done.

The message statuses are:
NEW = 1
DONE = 4
ERROR = 0
CNCLD = 8

If there is no subscription peoplecode/handler defined on a message/service operation then there is no entry in the PSAPMSGSUBCON table. Then, changes changes would have to be made to the PSAPMSGPUBHDR table to change from DONE to Cancel or NEW.