真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQLServer郵件預(yù)警

SQLServer 郵件預(yù)警

創(chuàng)新互聯(lián)專注于秀洲網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供秀洲營銷型網(wǎng)站建設(shè),秀洲網(wǎng)站制作、秀洲網(wǎng)頁設(shè)計(jì)、秀洲網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造秀洲網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供秀洲網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

問題:

OA 系統(tǒng)向異構(gòu)系統(tǒng)推送待辦時(shí)偶爾會出現(xiàn)各種原因?qū)е峦扑褪?,為了避免問題升級,需要管理員第一時(shí)間知道推送失敗的情況,并手動(dòng)進(jìn)行干預(yù)。

問題分析:

待辦推送狀態(tài)會記錄在OA 數(shù)據(jù)庫wx_scanlog 表中,當(dāng)resultstatus 狀態(tài)為-1 時(shí)表示待辦推送失敗。

解決方案:

一:SQLServer 觸發(fā)器

為了及時(shí)知道待辦推送失敗信息,可以使用SQLServer 觸發(fā)器,當(dāng)wx_scanlog 表中新增數(shù)據(jù)時(shí),校驗(yàn)resultstatus 狀態(tài)值,當(dāng)值為-1 時(shí),自動(dòng)發(fā)送郵件到指定郵箱。

二:Grafana 查看待辦狀態(tài)

通過Grafana 連接OA 數(shù)據(jù)庫,指定時(shí)間間隔查看待辦狀態(tài),例如如下SQL :

select top 10 scantime , content , resultcontent from wx_scanlog where resultstatus =-1  order by scantime desc ;

一:SQLServer 觸發(fā)器

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms189635(v=sql.90)

SQLServer郵件預(yù)警SQLServer郵件預(yù)警

過程如下:

-- 下面開始配置 sql 發(fā)送電子郵件:

-- 啟用 sql server 郵件的功能

exec sp_configure 'show advanced options' ,1

go

reconfigure ;

go

-- 配置選項(xiàng) 'show advanced options' 已從 0 更改為 1 。請運(yùn)行 RECONFIGURE 語句進(jìn)行安裝。

exec sp_configure 'Database Mail XPs' ,1

go

reconfigure ;

go

-- 配置選項(xiàng) 'Database Mail XPs' 已從 0 更改為 1 。請運(yùn)行 RECONFIGURE 語句進(jìn)行安裝。

-- 使用下面的語句查看數(shù)據(jù)庫郵件功能是否開啟成功和數(shù)據(jù)庫配置信息:

-- 查詢數(shù)據(jù)庫的配置信息

select * from sys . configurations

-- 查看數(shù)據(jù)庫郵件功能是否開啟, value 值為 1 表示已開啟, 0 為未開啟

select name , value , description ,

       is_dynamic , is_advanced

from sys . configurations

where name like '%mail%'

---name value   description is_dynamic  is_advanced

---Database Mail XPs    1   Enable or disable Database Mail XPs 1   1

-- 步驟二:

if exists( SELECT * FROM msdb .. sysmail_account WHERE NAME = 'chenmail' )

begin

    EXEC msdb .. sysmail_delete_account_sp @account_name = 'chenmail'

end

exec msdb .. sysmail_add_account_sp     -- 創(chuàng)建郵件賬戶

        @account_name = 'cjcamail'   -- 郵件帳戶名稱

       , @email_address = 'chenjuchao163@163.com'    -- 發(fā)件人郵件地址  

       , @display_name = 'chenjuchao'      -- 發(fā)件人姓名  

       , @replyto_address = null        -- 回復(fù)地址

       , @description = null          -- 郵件賬戶描述

       , @mailserver_name = 'smtp.163.com'    -- 郵件服務(wù)器地址

       , @mailserver_type = 'SMTP'        -- 郵件協(xié)議

       , @port = 25                  -- 郵件服務(wù)器端口  

       , @username = 'chenjuchao163'        -- 用戶名  

       , @password = '**********'      -- 密碼  

       , @use_default_credentials = 0    -- 是否使用默認(rèn)憑證, 0 為否, 1 為是

       , @enable_ssl = 1        -- 是否啟用 ssl 加密, 0 為否, 1 為是

       , @account_id = null  -- 輸出參數(shù),返回創(chuàng)建的郵件賬戶的 ID

-- 步驟三:

if exists( SELECT * FROM msdb .. sysmail_profile where NAME = N'SendEmailProfile0323' ) -- 判斷名為 SendEmailProfile0323 的郵件配置文件是否存在

begin  

    exec msdb .. sysmail_delete_profile_sp @profile_name = 'SendEmailProfile0323'  -- 刪除名為 SendEmailProfile0323 的郵件配置文件

end

exec msdb .. sysmail_add_profile_sp     -- 添加郵件配置文件

     @profile_name = 'SendEmailProfile0323' ,   -- 配置文件名稱    

     @description = ' 數(shù)據(jù)庫發(fā)送郵件配置文件 ' ,     -- 配置文件描述      

     @profile_id = NULL        -- 輸出參數(shù),返回創(chuàng)建的郵件配置文件的 ID

-- 步驟四:

-- 郵件賬戶和郵件配置文件相關(guān)聯(lián)  

exec msdb .. sysmail_add_profileaccount_sp   

     @profile_name = 'SendEmailProfile0323' ,   -- 郵件配置文件名稱     

     @account_name = 'chenmail' ,    -- 郵件賬戶名稱       

     @sequence_number = 1    -- account 在 profile 中的順序,一個(gè)配置文件可以有多個(gè)不同的郵件賬戶

-- 到這里 sql 發(fā)送郵件的配置就基本結(jié)束了。下面創(chuàng)建一個(gè)觸發(fā)器實(shí)現(xiàn)用戶注冊成功后,發(fā)送郵件給用戶。

-- 然后創(chuàng)建一個(gè) insert 類型的 after 觸發(fā)器:

create trigger undo_fail_cjc_tr

--alter trigger undo_fail_cjc_tr

on wx_scanlog

after insert

as

    declare @errormsg nvarchar (1000 )

    declare @resultcontent  nvarchar (500 )

    declare @content  nvarchar (500 )

    declare @title    nvarchar (100 )

    declare @xxx      nvarchar (1000 )

    declare @count    int

    declare @id       int

    select @count = COUNT (1 ) from inserted

    select @id = id from inserted

    select @resultcontent =( select CAST ( resultcontent as nvarchar (1000 )) from wx_scanlog where id = @id )

    select @content =( select CAST ( content as nvarchar (1000 )) from wx_scanlog where id = @id )

    set @xxx = 'content 標(biāo)題如下: ' + @content + CHAR ( 13 )+ 'resultcontent 內(nèi)容如下: ' + @resultcontent

    --select @msgcode=msgcode,@errormsg=errormsg  from inserted

    -- if(@count>0)

    if (( @count >0 ) and ( select resultstatus from inserted )= '-1' )

    begin

        set @title = 'OA( 正式系統(tǒng) ) 待辦推送 Eanar 失敗,請及時(shí)處理! '

        exec msdb . dbo . sp_send_dbmail @profile_name = 'SendEmailProfile0323' ,  -- 郵件配置文件名稱

                   @recipients = 'cjc@xxx.com' ,        -- 郵件發(fā)送地址

                        @subject = 'OA( 正式系統(tǒng) ) 待辦推送 Eanar 失敗,請及時(shí)處理! ' ,   -- 郵件標(biāo)題

                   @body = @xxx ,    -- 郵件內(nèi)容

                   @body_format = 'text'  -- 郵件內(nèi)容的類型, text 為文本,還可以設(shè)置為 html

    end

go

-- 執(zhí)行上面的語句之后,大概兩三秒鐘,就會收到郵件了(如果沒有出現(xiàn)錯(cuò)誤的話)。如果沒有收到郵件可以使用下面的語句查看郵件發(fā)送情況。

use msdb

go

select * from sysmail_allitems    -- 郵件發(fā)送情況,可以用來查看郵件是否發(fā)送成功

select * from sysmail_mailitems   -- 發(fā)送郵件的記錄

select * from sysmail_event_log   -- 數(shù)據(jù)庫郵件日志,可以用來查詢是否報(bào)錯(cuò)

郵件:

SQLServer郵件預(yù)警

二:Grafana 查看待辦狀態(tài)

SQLServer郵件預(yù)警

SQLServer郵件預(yù)警

SQLServer郵件預(yù)警

歡迎關(guān)注我的微信公眾號"IT小Chen",共同學(xué)習(xí),共同成長?。?!         

SQLServer郵件預(yù)警


名稱欄目:SQLServer郵件預(yù)警
轉(zhuǎn)載來源:http://weahome.cn/article/gpiggg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部