...
需求:某些项目中,要求Smartbi服务器这边提供一个servlet,请求该servlet会返回一段json字符串,来说明smartbi服务器是否能正常登陆、业务库是否异常、各种池是否正常。其作用是可以使得第三方系统能实时地获取Smartbi服务器的状态,一旦发生宕机,可以做出策略和通知,如发邮件通知管理员等。参考附件中的ServerStatus.java文件。
注意:本示例源码仅作为参考性质。
代码块 | ||
---|---|---|
| ||
{ "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)
下面只是源码文件,需要自己创建扩展包使用。