1. Check workflow mailer service current status
sqlplus apps/<apps password> select running_processes from apps.fnd_concurrent_queues where concurrent_queue_name = 'WFMLRSVC'; Number of running processes should be greater than 0
2. Find current mailer status
sqlplus apps/<apps password> select component_status from apps.fnd_svc_components where component_id = (select component_id from apps.fnd_svc_components where component_name = 'Workflow Notification Mailer'); Possible values: RUNNING STARTING STOPPED_ERROR DEACTIVATED_USER DEACTIVATED_SYSTEMsqlplus apps/<apps password> declare p_retcode number; p_errbuf varchar2(100); m_mailerid fnd_svc_components.component_id%TYPE; begin -- Find mailer Id ----------------- select component_id into m_mailerid from fnd_svc_components where component_name = 'Workflow Notification Mailer'; -------------- -- Start Mailer -------------- fnd_svc_component.start_component(m_mailerid, p_retcode, p_errbuf); commit; end; / A workflow notification send event (notification email) can fail at several different points, so monitoring it using one method usually is not going to give you a complete picture.Additionally, you have to keep in mind that the process is dynamic, meaning that as transactions are created into the queues they are also mailed out; so a count of data is at best only a snapshot of a particular moment in time.1. Here is a more robust script for monitoring the wf_notifications table:
select message_type, mail_status, count(*) from wf_notifications where status = 'OPEN' GROUP BY MESSAGE_TYPE, MAIL_STATUS messages in 'FAILED' status can be resent using the concurrent request 'resend failed workflow notificaitons' messages which are OPEN but where mail_status is null have a missing email address for the recipient, but the notification preference is 'send me mail'
2. Some messages like alerts don't get a record in wf_notifications table so you have to watch the WF_NOTIFICATION_OUT queue. select corr_id, retry_count, msg_state, count(*) from applsys.aq$wf_notification_out group by corr_id, msg_state, retry_count order by count(*) desc; Messages with a high retry count have been cycling through the queue and are not passed to smtp service.Messages which are 'expired' can be rebuilt using the wfntfqup.sql
No comments:
Post a Comment