一、历史告警文件准备请求(requireHistoryAlarmFileTransfer)

  • 接口定义
void requireHistoryAlarmFileTransfer (

in string destination,

in string userName,

in string passWord,

in alarmMgr::QueryAlarmFilter_T queryCondition)

raises (globaldefs::ProcessingFailureException);
  • 说明

历史告警文件准备请求。NMS向EMS发出大数据量历史告警文件文件传输准备的请求,让EMS开始准备相应数据。当EMS按照要求完成了文件准备之后,将向NMS发送’文件准备好’通知。如果在文件的准备中发生了异常,将向NMS发送’文件准备错误’通知。此方法属于FileTransferMgr_I接口。

  • 输入参数

        in string destination

        ——表示文件在NMS上的存放位置。格式定义请参考Destination_T

        in string userName

        ——表示FTP使用的用户名称

        in string passWord

        ——表示FTP使用的用户口令

        in alarmMgr:: QueryAlarmFilter_T queryCondition

        ——表示查询条件。EMS将根据查询条件准备文件

  • 输出参数

        无

  • 返回值

        无

  • 异常

        EXCPT_INTERNAL_ERROR。—EMS内部错误

        EXCPT_INVALID_INPUT  —输入参数无效不合法.

        EXCPT_NOT_IMPLEMENTED  — EMS不支持该操作

        EXCPT_UNABLE_TO_COMPLY  —超时或EMS不能响应操作

二、接口分析

调用requireHistoryAlarmFileTransfer接口后,EMS会根据传入的查询条件得到相应的数据并按照固定的格式组织成文件,然后再通过FTP把文件传输给调用者指定的FTP服务器的指定目录里。

三、中兴CORBA调用requireHistoryAlarmFileTransfer接口示例代码

emsSession =ZxEmsSession.getInstance().getEmsSession();
//System.out.println("EMSsession ---" + emsSession.toString());
try {
if(emsSession!=null){
System.out.println("初始化 FileTransfer 管理器!");
Common_IHolder mgrHolder = new Common_IHolder();
emsSession.getManager("FileTransfer", mgrHolder);
fileTransferMgr = FileTransferMgr_IHelper.narrow(mgrHolder.value);

QueryAlarmFilter_T queryCondition = new QueryAlarmFilter_T();

Duration_T duration_T = new Duration_T();
duration_T.fromTime = startdate;
duration_T.toTime = enddate;
queryCondition.raiseTimeDuration = duration_T;

queryCondition.alarmTypeSelect = new AlarmType_T[0];
queryCondition.alarmSourceSelect = new NameAndStringValue_T[0][0];
queryCondition.perceivedSeveritySelect = new PerceivedSeverity_T[0];
queryCondition.probableCauseSelect = new String[0];
Duration_T duration_T2 = new Duration_T();
duration_T2.fromTime = "";
duration_T2.toTime = "";
queryCondition.clearTimeDuration = duration_T2;

String fileName = "/alarm/" + duration_T.fromTime + "_"+ duration_T.toTime + ".dat";

fileTransferMgr.requireHistoryAlarmFileTransfer("本地FTP服务器IP|"+fileName+"|本地FTP服务器端口", "本地FTP服务器用户名", "本地FTP服务器密码", queryCondition);

fileTransferMgr._release();
}else {
LOG.error("未获取到emsSession");
}
} catch (ProcessingFailureException e) {
LOG.error(e);
}