页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

需求:某些项目中,要求Smartbi服务器这边提供一个servlet,请求该servlet会返回一段json字符串,来说明smartbi服务器是否能正常登陆、业务库是否异常、各种池是否正常。其作用是可以使得第三方系统能实时地获取Smartbi服务器的状态,一旦发生宕机,可以做出策略和通知,如发邮件通知管理员等。参考附件中的ServerStatus.java文件。

注意:本示例源码仅作为参考性质。

代码块
title反馈的状态数据(JSON格式)
{
    "success": true,
    "returnObject": {
        "loginStatus": "能正常登陆",
        "dbStatus": "数据库正常",
        "DS.SmartbiUnionbase": "数据库正常",
        "DS.SYSTEM知识库": "数据库正常"
    }
}

...

代码块
	private final String checkDataSource(String dsId){
		DataSource dbDs = FreeQueryDAOFactory.getDataSourceDAO().load(dsId);
		Connection conn = null;
		String dbStatus = "数据库正常";
		try {
			conn = ConnectionPool.getInstance().getConnection(dbDs);
		} catch (Exception e) {
			System.out.println("ServerStatus监测到异常:"+dsId+e.toString());
			logger.debug("ServerStatus监测到异常:"+dsId+e.toString());
			dbStatus = "数据库异常";
		} finally {
			try {
				if (conn != null)
					conn.close();
				if (!dbDs.getUrl().startsWith("JNDI:"))
					ConnectionPool.getInstance().closePool(dbDs);
			} catch (Throwable e) {
				System.out.println("");
			}
		}
		return dbStatus;
	}

3 相关资源(EPPR-7022)

下面只是源码文件,需要自己创建扩展包使用。

code.rar

SmartbiCheckLoginFilter.java

ServerStatus.java