用Spring发邮件出现的异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Spring发邮件出现的异常相关的知识,希望对你有一定的参考价值。

用Spring中的接口JavaMailSenderImpl发邮件时出现org.springframework.beans.factory.BeanCreationExceptionCould not instantiate bean class [org.springframework.mail.javamail.JavaMailSenderImpl]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常该如何解决???谢谢!:

参考技术A com/sun/activation/registries/LogSupport 这个类找不到 把这个类所在的jar文件加进来

监控SQL Server数据库异常镜像状态发告警邮件

监控SQL Server数据库异常镜像状态发告警邮件

 

在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件。那么这个脚本需要在主和镜像服务器上都运行。

 

目录视图sys.database_mirroring对SQL Server实例上的每个数据库都包含一行(包括系统数据库和未配置镜像的数据库),当然也包含所有镜像数据库的状态信息。我们可以查询该目录视图,对于每个异常状态的镜像数据库触发告警邮件。笔者的环境配置的是异步镜像,依赖于手动故障转移。

 

前提条件:

1. 配置好数据库邮件,有正确的Profile。

2. 有权限发送邮件的有效Login,需要是msdb数据库中DatabaseMailUserRole角色成员。

3. 一对用于监控的镜像数据库。

 

DECLARE
@state VARCHAR(30)
DECLARE
@DbMirrored INT
DECLARE
@DbId INT
DECLARE
@String VARCHAR(100)
DECLARE
@databases TABLE (DBid INT, mirroring_state_desc VARCHAR(30))
-- get status for mirrored databases
INSERT
@databases
SELECT
database_id, mirroring_state_desc
FROM
sys.database_mirroring
WHERE
mirroring_role_desc IN (‘PRINCIPAL‘,‘MIRROR‘)
AND
mirroring_state_desc NOT IN (‘SYNCHRONIZED‘,‘SYNCHRONIZING‘)
-- iterate through mirrored databases and send email alert
WHILE
EXISTS (SELECT TOP 1 DBid FROM @databases WHERE mirroring_state_desc IS NOT NULL)
BEGIN
SELECT TOP 1 @DbId = DBid, @State = mirroring_state_desc
FROM @databases
SET @string = ‘Host: ‘[email protected]@servername+‘.‘+CAST(DB_NAME(@DbId) AS VARCHAR)+ ‘ - DB Mirroring is ‘[email protected] +‘ - notify DBA‘
EXEC msdb.dbo.sp_send_dbmail ‘valid_mail_profile‘, ‘[email protected]‘, @body = @string, @subject = @string
DELETE FROM @databases WHERE DBid = @DbId
END
--also alert if there is no mirroring just in case there should be mirroring :)
SELECT
@DbMirrored = COUNT(*)
FROM
sys.database_mirroring
WHERE
mirroring_state IS NOT NULL
IF
@DbMirrored = 0
BEGIN
SET @string = ‘Host: ‘[email protected]@servername+‘ - No databases are mirrored on this server - notify DBA‘
EXEC msdb.dbo.sp_send_dbmail ‘valid_mail_profile‘, ‘[email protected]‘, @body = @string, @subject = @string
END

 

依赖于手动故障转移。将以上脚本放到主服务器和镜像服务器上的作业里,每5分钟执行一次。



本文出自 “SQL Server Deep Dive” 博客,请务必保留此出处http://ultrasql.blog.51cto.com/9591438/1906242

以上是关于用Spring发邮件出现的异常的主要内容,如果未能解决你的问题,请参考以下文章

使用新申请的163邮箱发邮件出现的问题

Java实现发邮件功能---网易邮箱

spring boot发简单文本邮件

spring管理javamail发邮件时我把MyEclipse里的activation和那个mail包删了,可以发邮件,但是action又报错

spring 发邮件

Spring boot发电子邮件