USP_TRANSACTIONALEMAIL_POLLQUEUE
This stored procedure polls the transactional queue to retrieve emails that need to be sent.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@THREADID | uniqueidentifier | IN | |
@INSTANCEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_TRANSACTIONALEMAIL_POLLQUEUE
(
@THREADID uniqueidentifier,
@INSTANCEID uniqueidentifier
)
as
begin
set nocount on;
declare @QUEUEID table
(
ID uniqueidentifier
)
-- the select top in the where clause implements a primitive level of chunking in case the transactional jobs get backed up for some reason.
update dbo.EMAILQUEUETRANSACTIONAL set THREADID = @THREADID
output inserted.ID into @QUEUEID
where THREADID = '00000000-0000-0000-0000-000000000000' and ID in (select top 1000 ID from dbo.EMAILQUEUETRANSACTIONAL order by DATEADDEDTOQUEUE desc);
update dbo.EMAILSTATUSTRANSACTIONAL set INTERNALJOBIDENTITY = @INSTANCEID, CLIENTPROCESSSTARTDATE = isnull(CLIENTPROCESSSTARTDATE, getutcdate())
where EMAILQUEUETRANSACTIONALID in (select ID from @QUEUEID);
select E.ID, RECIPIENTDATA, EMAILSTATUSTRANSACTIONAL.UNIQUEIDFIELDNAME, EMAILSTATUSTRANSACTIONAL.EMAILADDRESSFIELDNAME, EMAILSTATUSTRANSACTIONAL.EMAILDISPLAYNAMEFIELDNAME, EMAILSTATUSTRANSACTIONAL.MERGETOKEN, E.EMAILHEADER, CONTENTTEXT, CONTENTHTML, THREADID, SOURCE, E.RETRYNUMBER, DATEADDEDTOQUEUE
from dbo.EMAILQUEUETRANSACTIONAL E inner join dbo.EMAILSTATUSTRANSACTIONAL on E.ID = EMAILSTATUSTRANSACTIONAL.EMAILQUEUETRANSACTIONALID
where THREADID = @THREADID;
end