CN1331042C - 用于机群监控***控制台的消息服务装置及其方法 - Google Patents
用于机群监控***控制台的消息服务装置及其方法 Download PDFInfo
- Publication number
- CN1331042C CN1331042C CNB2004100314630A CN200410031463A CN1331042C CN 1331042 C CN1331042 C CN 1331042C CN B2004100314630 A CNB2004100314630 A CN B2004100314630A CN 200410031463 A CN200410031463 A CN 200410031463A CN 1331042 C CN1331042 C CN 1331042C
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- task
- ethernet
- message queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种用于机群监控***控制台的消息服务装置,包括:汇集卡装置;节点中间代理装置;用于采集机群***中所有节点的硬件数据和软件数据的基本服务提供者装置;其中,所述基本服务提供者装置包括:串口通信装置;以太网通信装置;用于存储串口消息队列的串口消息队列存储器;用于存储以太网消息队列的以太网消息队列存储器;用于存储任务消息队列的任务消息队列存储器;串口消息队列操作装置;以太网消息队列操作装置;任务消息队列操作装置以及用于对机群管理员通过控制台发送给节点的管理任务进行处理的任务处理装置;以及公开了一种消息服务方法。由此根据本发明提供的消息服务装置及方法,可以提高控制台对所有通信消息进行管理的效率。
Description
技术领域
本发明涉及计算机机群监控,具体涉及实现机群监控***控制台所使用的消息队列服务的方法和装置。
背景技术
机群***是多***立的节点计算机(通常是服务器)的聚集。这些节点计算机通过专用高速网络和支撑性软硬件聚合在一起,对外表现为一个单一的超级计算机。机群***通常是一个复杂的***,管理人员在管理整个机群***的时候需要掌握大量的管理数据,并对这些数据作复杂的分析,同时还要对机群***的某些构件进行管理操作。如果凭管理员手工完成这些工作是相当困难的,机群监控***就是为机群管理员采集机群各种管理数据,对这些数据作复杂分析,同时向机群某些构件发送管理员的操作命令的***。为了采集到所有管理数据,监控管理***控制台需要采集硬件数据,还需要采集软件数据,并且,控制台还要向节点发送管理操作命令。要实现监控管理***采集各种管理数据和向机群***的某些节点发送管理命令,这就需要监控***控制台不但要与所有节点硬件数据采集装置通信,还要与所有软件数据采集装置通信,并且这些通信都是同时进行的,所以,在监控***控制台需要处理大量的通信消息,如何管理这些繁多的通信消息,是监控***控制台面临的一大难题。
发明内容
为了解决上述问题,本发明提出了一种由监控***控制台使用的用以管理所有通信消息的消息服务装置以及一种管理通信消息的消息服务方法。所述的消息服务装置不但结构清晰,不易出错,而且效率很高。
根据本发明的监控***控制台所使用的消息服务装置包括:汇集卡装置,用于采集机群***中一个机柜里所有节点的硬件数据;节点中间代理(NP)装置,用于采集机群***中一个机柜里的所有节点的软件数据;基本服务提供者装置(BSP),用于通过串口和以太网分别与所有汇集卡和所有NP装置通信,采集机群***中所有节点的硬件数据和软件数据;其中,所述基本服务提供者装置包括:串口通信装置,用于对串口进行操作,从而向汇集卡装置发送或从汇集卡装置接收消息;以太网通信装置,用于对以太网进行操作,从而向NP装置发送或从NP装置接收消息;串口消息队列存储器,用于存储所有需要向汇集卡发送的消息和所有从汇集卡接收的消息,作为串口消息队列;以太网消息队列存储器,用于存储所有需要向NP装置发送的消息和所有从NP装置接收的消息,作为以太网消息队列;任务消息队列存储器,用于存储所有需要发送到汇集卡或NP装置的操作任务,作为任务消息队列;串口消息队列操作装置,用于直接对串口消息队列操作和维护串口消息队列,从而为与汇集卡通信的串口通信装置提供消息服务;以太网消息队列操作装置,用于直接对以太网消息队列操作和维护以太网消息队列,从而为与NP装置通信的以太网通信装置提供消息服务;任务消息队列操作装置,用于直接对任务消息队列操作和维护任务消息队列,从而为与NP装置和汇集卡通信的串口通信装置和以太网通信装置关于任务的通信部分提供消息服务;任务处理装置,用于对机群管理员通过控制台发送的节点的管理任务进行处理。
根据本发明的用于机群监控***控制台的消息服务方法,用于基本服务提供者装置经串口和以太网分别与所有汇集卡和所有NP装置通信,从而采集机群***中所有节点的硬件数据和软件数据,所述的方法包括:
对串口消息队列执行操作从而通过串口通信装置向汇集卡提供串口消息服务以及从汇集卡接收反馈消息的步骤;
对以太网消息队列执行操作从而通过以太网通信装置向NP装置提供以太网消息服务并从以太网接收反馈消息的步骤;
对任务消息队列执行操作从而向串口消息队列和以太网消息队列提供任务并提供任务执行结果的步骤。
通过上述本发明提供的消息服务装置和方法,可以提高监控***控制台对所有通信消息进行管理的效率,由此减轻了***控制台的繁重的管理任务。
此外,发明内容还包括各消息队列中用于三种消息队列之间同步和协作的方法、机制和装置包括:会话号机制(session)与记录时间记录机制(timeval),以及轮次的机制(timeid),这些机制由以下具体实施例来说明。
附图说明
本发明的上述目的及其特征将通过随后参照附图对优选实施例所作的说明而变得更加明显,其中:
图1是本发明用于机群监控***控制台的消息服务装置的原理图;
图2是通过本发明消息服务装置的串口消息队列操作装置对串口消息队列进行操作的原理图;
图3是串口处理流程图;
图4是通过本发明消息服务装置的以太网消息队列操作装置对以太网消息队列进行操作的原理图;
图5是描述图4中的向以太网发送消息的操作的流程图;
图6是描述图4中的从以太网接收消息的操作的流程图;
图7是通过本发明消息服务装置的任务消息队列操作装置对任务消息队列进行操作的原理图。
具体实施方式
如图1所示,用于机群监控***控制台的消息服务装置包括:用于采集机群***中一个机柜里所有节点的硬件数据的汇集卡装置110;用于采集机群***中一个机柜里的所有节点的软件数据的节点中间代理(NP)装置111;基本服务提供者装置(BSP)120,用于通过串口和以太网分别与所有汇集卡和所有NP装置通信,从而采集机群***中所有节点的硬件数据和软件数据。BSP120包括多个消息队列存储器:用于存储作为串口消息队列的所有需要向汇集卡发送的消息和所有从汇集卡接收的消息的串口消息队列存储器103、用于存储作为以太网消息队列的所有需要向NP装置发送的消息和所有从NP装置接收的消息的以太网消息队列存储器109;用于存储作为任务消息队列的所有需要发送到汇集卡或NP装置的操作任务的任务消息队列存储器106;用于处理串口消息队列的串口消息队列操作装置102;用于处理以太网消息队列的以太网消息队列操作装置108;用于处理任务消息队列操作的任务消息队列操作装置105;串口通信装置101,用于直接操作串口,以利用串口消息队列操作装置102提供的消息服务,即串口通信装置通过串口消息队列操作装置102从消息队列存储器103中获取需要发送的消息,串口通信装置101将接收到的消息通过串口消息队列操作装置102存储在串口消息队列存储器103中;以太网通信装置107,用于直接操作以太网,以利用以太网消息队列操作装置108提供的消息服务,即以太网通信装置107通过以太网消息队列操作装置108从以太网消息队列存储器109中获取需要发送的消息,以太网通信装置107将接收到的消息存入太网消息队列存储器109中。任务处理装置104,用于处理所有管理员的管理任务,同时任务处理装置104通过任务消息队列操作装置105将管理员的管理任务存入任务消息队列存储器106中,通过串口消息队列操作装置102将发送给汇集卡的任务***串口消息队列存储器103的串口消息队列中,通过以太网通信装置107将发送给NP装置的任务***到以太网消息队列存储器109的以太网消息队列中。
下面对图1中的串口消息队列存储器103中的串口消息队列、任务消息队列存储器106中的任务消息队列以及以太网消息队列存储器109中的以太网消息队列的定义以及各个消息队列操作装置的结构进行详细说明。
串口消息队列的定义如下:
typedef struct
{
int first;//第一条消息的索引号
int last;//最后一条消息的索引号
int len;//消息的总数
SERIAL_CMD_ELEMENT element[SERIAL_CMD_MAXSIZE];
}SERIAL_CMD_QUEUE;
其中SERIAL_CMD_ELEMENT为消息结构,其定义如下:
typedef struct{
int session;//会话ID,用以标识消息
int been_sent;//已经被发送的次数
int try_times;//重发次数
struct timespec timeout_tv;//超时时间
CMD_PACKET command;//发送给汇集卡的数据包
SERIAL_CALLBACK before_callback;//消息初始化处理函数
SERIAL_CALLBACK after_callback;//接收消息后的处理函数
SERIAL_CALLBACK timeout_callback;//超时处理函数
}SERIAL_CMD_ELEMENT;
以太网消息队列由三个消息队列组成,发送消息队列,重发消息队列,接收消息队列。
其中发送消息队列和重发消息队列的结构是一样的,定义如下:
typedef struct request_queue{
Rqst_queue_element_element[MAXQUEUELEN];
gint16 next[MAXQUEUELEN];
guint16 first;//第一条消息的索引号
guint16 last;//最后一条消息的索引号
guint16 length;//消息的总数
}request_queue;
其中Rqst_queue_element为消息的结构,定义如下:
typedef struct Rqst_queue_element{
Packet_Header request;//数据包头
guint16 receiver_id;//接收方ID
gchar out_content[BSP_RECEIVE_BUFLEN];//数据包体
guint16 resend_times;//重发次数
gdouble out_time_s;//发送点时间,秒
gulong out_time_us;//微秒
gdouble in_time_s;//检查点时间,秒
gulong in_time_us;//微秒
gboolean need_resend;//是否需要重发
/*以下是消息处理的各种回调函数及其参数*/
QueueCallback before_rqst_callback_wrapper;
gpointer before_rqst_parameter;
gpointer before_rqst_object;
QueueCallback after_rqst_callback_wrapper;
gpointer after_rqst_parameter;
gpointer after_rqst_object;
QueueCallback discard_rqst_callback_wrapper;
gpointer discard_rqst_parameter;
gpointer discard_rqst_object;
/*与其他内部模块的接口,包括会话ID和回调函数*/
int cms_session;//会话ID,用以标识消息
EtherCallback ether_after_callback;
EtherCallback ether_timeout_callback;
}Rqst_queue_element;
接收消息队列定义如下:
typedef struct request_command_queue{
CommandSession element[MAXQUEUELEN];
gint16 next[MAXQUEUELEN];
guint16 first;//第一条消息索引号
guint16 last;//最后一条消息索引号
guint16 length;//消息长度
} request_command_queue;
其中CommandSession为消息的结构,定义如下:
typedef struct CommandSession{
gulong session;//会话ID,用以标识消息
guint8 type;//消息类型
gdouble s_time_s;//用于计算时间,秒
gulong s_time_us;//微秒
gulong limit_time;//限制时间
gchar data[COMMAND_DATA_LEN];//接收数据包
guint pos;//节点数
gboolean has_response[FRAME_NUMBER_MAX+1];
gboolean has_response2[FRAME_NUMBER_MAX+1][NODE_NUMBER_MAX+1];
guint response_num;//由多少个节点返回
gboolean has_send;//是否已经发送
gboolean finished;//是否完成
/*与其他内部模块的接口,包括会话ID和回调函数*/
gulong cms_session;
EtherCallback ether_after_callback;
EtherCallback ether_timeout_callback;
}CommandSession;
任务消息队列定义如下:
typedef struct{
int length;//队列长度
ELEMENT element[JOB_LIST_SIZE+1];
} JOB_LIST;
其中ELEMENT为任务消息结构,定义如下:
typedef struct{
int used;/*0表示没有使用,菲O表示已经使用*/
int prev;//上一任务
int next;//下一任务
JOB cmd;
} ELEMENT;
其中JOB为任务消息结构体的主体,定义如下:
typedef struct{
int session;//会话ID,用以标识消息
time_t time_point; //任务执行时间
int serial_status;//串口状态
int ether_status;//以太网状态
int turn;//执行次数
Job_Info job;
} JOB;
串口消息队列操作装置102包括:
串口消息队列初始化模块(serial_cmd_queue_init()函数),用于在使用串口消息队列之前作一些必要的初始化工作。初始化操作包括将队列清零,设置队列的last索引值。
创建串口消息队列中消息的模块(gen_serial_cmd()函数),用于创建一个符合串口消息结构的消息。
向消息队列中***一条消息的模块(register_serial_cmd()函数)。
从消息队列中删除一条消息的模块(serial_cmd_queue_remove()函数)。
消息队列中消息出队模块(serial_cmd_queue_first()函数)。
查询消息队列长度的模块(serial_cmd_queue_length()函数)。
消息队列保护模块,包括访问消息队列时加锁操作模块(lock_serial_cmd_queue()函数)和开锁操作模块(unlock_serial_cmd_queue()函数)。
以太网消息队列操作装置108包括:
消息队列的保护模块,包括以下锁管理模块:lock_unsent_queue()函数,unlock_unsent_queue()函数,lock_unreplied_queue()函数,unlock_unreplied_queue()函数,lock_command_queue()函数,unlock_command_queue()函数。
发送消息队列的初始化模块(rqst_unsent_queue_init()函数)。
创建发送消息队列的操作模块
(rqst_unsent_queue_element_new_outer()函数)。
发送消息队列的入队操作模块(rqst_unsent_queue_append()函数)。
发送消息队列的出队操作模块(rqst_unsent_queue_get_first()函数)。
删除发送消息队列中第一条消息的模块
(rqst_unsent_queue_delete_first()函数)。
查询发送消息队列的长度的模块(rqst_unsent_queue_length()函数)。
重发消息队列的初始化模块(rqst_unreplied_queue_init()函数)。
创建重发消息队列的操作模块(rqst_unreplied_queue_element_new_outer()函数)
重发消息队列的入队操作模块(rqst_unreplied_queue_append()函数)。
重发消息队列的出队操作模块(rqst_unreplied_queue_get_first()函数)。
删除重发消息队列中第一条消息的模块(rqst_unreplied_queue_delete first()函数)。
查询重发消息队列的长度的模块(rqst_unreplied_queue_length()函数)。
在重发消息队列中查询消息的模块(rqst_unreplied_queue_find()函数)。
删除重发消息队列中任意消息的模块
(rqst_unreplied_queue_delete()函数)。
接收消息队列初始化模块(command_queue_init()函数)。
创建接收消息的模块(command_queue_new()函数),该函数并不是创建一条完整的接收消息,因为接收的内容不能确定,该函数只是在接收队列中创建一个接收消息的位置,并把发送消息的会话号存储在该消息中,以便于接收到消息后能找到对应的存放位置。
删除接收消息队列中一条消息的模块(command_queue_free()函数)。
根据会话号查找消息的模块(command_queue_find()函数),该函数用于在收到一条消息后能够根据会话号找到相应的存储位置。
查询接收消息队列的长度的模块(command_queue_length()函数)
接收消息队列检查模块(command_queue_check()函数),该函数用于定期检查接收消息的情况,以确定消息是否按时收到。
任务消息队列操作装置105包括:
任务消息队列初始化模块(job_list_init()函数)。
查询任务消息队列长度的模块(job_list_length()函数)
任务消息队列入对操作模块(job_list_append()函数)。
删除任务消息队列中一条消息的模块(job_list_remove()函数)。
根据会话号查找消息的模块(job_list_search_session()函数)。
任务消息队列的保护模块(lock_job_list()函数和unlock_job_list()函数)。
在BSP装置中,通过汇集卡和NP装置采集数据以及向汇集卡和NP装置发送管理命令都是按轮次进行的。
图2为通过串口消息队列操作装置对串口消息队列进行操作的原理图;如图2所示,在每一轮,BSP主线程202通过串口消息队列操作装置203把采集一轮汇集卡所需要发送的命令***串口消息队列204。任务处理线程201首先查找用户任务数据库中是否有需要发送的任务,如果有,则由任务处理装置通过消息队列操作装置203将任务***串口消息队列204中,同时,BSP主线程通过机群配置信息获得机柜的数量,从而确定汇集卡的数量,对每一个机柜,BSP主线程通过串口消息队列操作装置中的gen_serial_cmd()函数生成一条数据采集消息并通过register_serial_cmd()函数将消息***串口消息队列中。
从串口消息队列204中读取消息并发送到汇集卡是由一个专门的串口操作线程来完成的,串口操作线程同时还负责接收汇集卡返回的消息,并调用相应的处理函数作进一步的处理。串口处理流程图如图3所示。
首先在步骤301,串口操作线程通过串口消息队列操作装置从串口消息队列中读取一条要被发送的消息组成通信包,并初始化该包;在步骤302根据串口消息的结构中记录的重发次数判断该包的发送次数是否超出预定的重发次数;如果该包的发送次数超出预定的重发次数时,则调用该包的失败回调函数,并将通信包从串口消息队列中删除。如果该包的发送次数未超出预定的重发次数时,则在步骤304则向汇集卡发送该包,并使发送次数加1;在步骤305判断在预定的时间内是否从汇集卡收到相应的返回状态包,如果没有收到,则返回步骤302,否则进行步骤306。在步骤306判断接收的包的格式是否正确,如果其格式错误,则返回步骤302,否则进行步骤307:调用数据处理回调函数以对接收的包进行处理,并作为反馈消息***在串口消息队列中。
同样,在BSP主线程中也向以太网消息队列中***采集一轮NP数据所需要发送的所有消息。不同于串口的是:以太网消息的发送与接收所使用的消息队列是分开的,并且对发送消息队列与接收消息队列的操作线程也是独立的。对以太网消息队列的操作如图4所示,以及图5和图6示出对图4中向以太网发送消息的操作和从以太网接收消息的操作的流程。
在图4中,在任务处理线程401中,首先从用户任务数据库中察看是否有需要发送的任务,如果有,则通过任务处理装置将任务***以太网消息发送队列406中,同时,BSP主线程通过机群配置信息获得机柜的数量,往以太网消息发送队列406中***采集一轮NP数据所需要发送的所有消息。以太网发送线程409从发送队列406中取出消息,发送给NP装置,同时在重发队列407中保存一份,并删掉发送队列406中的已经发送的消息。接收线程410如果在规定的时间内接收到以太网消息,放入接收队列408,删除重发队列407中相应的消息,如果在规定的时间内没有收到消息,则把重发队列407中相应的消息***发送队列406重发一次。消息之间的对应关系是根据消息的session号来判断的,并且在消息结构中存储了时间信息,用以判断是否超时。
图5详细描述了图4中的向以太网发送消息的以太网消息队列操作的流程。首先,在步骤501通过以太网消息队列装置从以太网发送队列中读取一条消息,然后在步骤502判断在发送消息之前是否要执行回调函数。如果需要执行,则在步骤503对消息执行回调函数。否则在步骤504将该消息发送出去。同时,在步骤505通过以太网消息队列操作装置在重发队列中保存一个副本。并在步骤506通过以太网消息队列操作装置将发送队列中的该条消息删除。
图6详细描述了图4中的从以太网接收消息的以太网消息队列操作的流程。首先,在步骤601接收装置不断监听以太网接收端口。然后在步骤602定期检查是否从以太网接收到消息。如果接收到消息,则在步骤603通过session(会话)号在接收队列中查找消息的存放位置以存放该消息。由于每条消息中都记录了消息接收后的回调函数,在步骤604调用该函数对消息进一步处理。如果没有收到消息,则在步骤605检查重发队列中的每一条消息,判断是否有超时消息。如果没有超时消息,则继续步骤601。如果判断出有超时消息,则在步骤607判断重发次数是否在规定次数之内,如果是则在步骤607通过以太网消息队列操作装置将需要重发的消息***发送队列中,以进行重发。否则继续监听。
下面将结合图7描述通过本发明消息服务装置的任务消息队列操作装置对任务消息队列进行的操作。在图7中,任务处理线程702每一轮都要访问一次数据库701,查看是否有需要发送给汇集卡或NP装置的操作任务,如果有,则将任务创建为任务消息,***任务消息队列704,然后检查任务消息队列704中的每一条消息,将需要发送给汇集卡的消息通过串口消息队列操作装置705放入串口消息队列,将需要发送给NP装置的消息通过以太网消息队列操作装置706发送给以太网消息队列中的发送队列。
串口处理线程和以太网处理线程负责把任务消息发送出去,同时负责接收任务执行情况的反馈信息,并更新任务消息队列中相应的消息的状态。
任务处理线程702定期地检查任务的执行情况,修改任务的执行状态以及将任务执行结果写入数据库中,从而控制台从数据库中读入结果,报告给管理员。
因此,虽然对本发明进行了描述,显然,本发明在许多方面都可以变化。这样的变化不应该被看作脱离本发明的精神和范围的变化,并且对于本领域的技术人员而言,应该将所有这样的修改限定在所附权利要求的范围内。
Claims (15)
1、一种用于机群监控***控制台的消息服务装置,包括:汇集卡装置,用于采集机群***中一个机柜里所有节点的硬件数据;节点中间代理装置,用于采集机群***中一个机柜里的所有节点的软件数据;基本服务提供者装置,用于与所有汇集卡和所有节点中间代理装置通信,采集机群***中所有节点的硬件数据和软件数据;其中,所述基本服务提供者装置包括:
串口通信装置,用于对串口进行操作,从而向汇集卡装置发送或从汇集卡装置接收消息;
以太网通信装置,用于对以太网进行操作,从而向节点中间代理装置发送或从节点中间代理装置接收消息;
串口消息队列存储器,用于存储所有需要向汇集卡发送的消息和所有从汇集卡接收的消息,作为串口消息队列;
以太网消息队列存储器,用于存储所有需要向节点中间代理装置发送的消息和所有从节点中间代理装置接收的消息,作为以太网消息队列;
任务消息队列存储器,用于存储所有需要发送到汇集卡或节点中间代理装置的操作任务,作为任务消息队列;
串口消息队列操作装置,用于直接对串口消息队列操作和维护串口消息队列,从而为与汇集卡通信的串口通信装置提供消息服务;
以太网消息队列操作装置,用于直接对以太网消息队列操作和维护以太网消息队列,从而为与节点中间代理装置通信的以太网通信装置提供消息服务;
任务消息队列操作装置,用于直接对任务消息队列操作和维护任务消息队列,从而为与节点中间代理装置和汇集卡通信的串口通信装置和以太网通信装置关于任务的通信部分提供消息服务;
任务处理装置,用于对机群管理员通过控制台发送给节点的管理任务进行处理。
2.如权利要求1所述的消息服务装置,其特征在于所述以太网消息队列由发送消息队列,接收消息队列,重发消息队列组成。
3.如权利要求1所述的消息服务装置,其特征在于所述串口消息队列操作装置包括:
初始化模块、创建消息模块、消息***模块、消息删除模块、消息入队模块和消息出队模块、长度查询模块,以及用于对串口消息队列的访问进行保护的串口消息队列保护模块。
4.如权利要求3所述的消息服务装置,其特征在于该串口消息队列保护模块包括在对串口消息队列进行操作时的加锁模块和在对串口消息队列操作完成后的开锁模块。
5.如权利要求1所述的消息服务装置,其特征在于所述以太网消息队列操作装置包括:
初始化模块、创建消息模块、队列操作模块以及用于对访问的以太网消息队列进行保护的以太网消息队列保护模块。
6.如权利要求5所述的消息服务装置,其特征在于所述以太网消息队列保护模块包括在对以太网消息队列进行操作时的加锁模块和在对以太网消息队列操作完成后的开锁模块。
7.如权利要求2所述的消息服务装置,其特征在于所述以太网消息队列操作装置包括:
初始化模块、创建消息模块、发送队列操作模块、重发队列操作模块、接收队列操作模块以及用于对访问的接收队列进行保护的以太网消息发送队列保护模块、以太网消息重发队列保护模块、以太网消息接收队列保护模块。
8.如权利要求7所述的消息服务装置,其特征在于所述各个以太网消息队列保护模块都包括在对以太网消息队列进行操作时的加锁模块和在对以太网消息队列操作完成后的开锁模块。
9.如权利要求1所述的消息服务装置,其特征在于所述的任务消息队列操作装置包括:
初始化模块、创建消息模块、消息删除模块、消息入队模块和消息出队模块、长度查询模块、用于根据会话号查找消息的消息查找模块以及用于对访问的任务消息队列进行保护的任务消息队列保护模块。
10.如权利要求9所述的消息服务装置,其特征在于任务消息队列保护模块包括在对任务消息队列进行操作时的加锁模块和在对任务消息队列操作完成后的开锁模块。
11.一种用于机群监控***控制台的消息服务方法,用于基本服务提供者装置经串口和以太网分别与所有汇集卡和所有节点中间代理装置通信从而采集机群***中所有节点的硬件数据和软件数据,所述的方法包括:
对串口消息队列执行操作从而通过串口通信装置向汇集卡提供串口消息服务以及从汇集卡接收反馈消息的步骤;
对以太网消息队列执行操作从而通过以太网通信装置向节点中间代理装置提供以太网消息服务并从以太网接收反馈消息的步骤;
对任务消息队列执行操作从而向串口消息队列和以太网消息队列提供任务并提供任务执行结果的步骤。
12.如权利要求11所述的消息服务方法,其特征在于向汇集卡提供串口消息服务以及从汇集卡接收反馈消息的步骤包括:
(a)通过串口消息队列操作装置把采集一轮汇集卡所需要发送的命令***串口消息队列;
(b)查看用户任务数据库是否有需要发送的任务,在确定有需要发送的任务时,由任务处理装置通过串口消息队列操作装置将任务***串口消息队列中;
(c)根据机柜的数量确定汇集卡的数量,对每一个机柜,通过串口消息队列操作装置中生成一条数据采集消息并将该消息***串口消息队列中;
(d)从串口消息队列中读取消息并发送到汇集卡以及从汇集卡接收消息。
13.如权利要求12所述的消息服务方法,其特征在于步骤(d)包括:
(i)从串口消息队列中读取一条要被发送的消息组成通信包,并初始化该包;
(ii)判断该包的发送次数是否超出预定的重发次数;
(iii)在该包的发送次数超出预定的重发次数时,将该包从串口消息队列中删除;
(iv)在该包的发送次数未超出预定的重发次数时,则向汇集卡发送该包,并使发送次数加1;
(v)在预定的时间内如果没有从汇集卡收到相应的返回状态包,则重复步骤(ii);
(vi)检查包的格式是否正确;
(vii)在该包的格式不正确时重复步骤(ii);
(viii)对该包进行预定处理并作为反馈消息***在串口消息队列中。
14.如权利要求11所述的消息服务方法,其特征在于向节点中间代理装置提供以太网消息服务并从节点中间代理装置接收反馈消息的步骤包括:
(a)查看用户任务数据库中是否有需要发送的任务,如果有,则通过任务处理装置将任务***以太网消息发送队列中;
(b)向以太网消息发送队列中***采集一轮节点中间代理数据所需要发送的所有消息;
(c)从发送队列中取出消息,发送给节点中间代理装置,同时在重发队列中保存该消息的副本;
(d)判断是否从节点中间代理装置接收到以太网返回消息;
(e)在接收到以太网返回消息时,通过会话号在接收队列中查找该消息的存放位置以***该消息;
(f)对该消息进行预定处理;
(g)在发送队列中将已经发送的该条发送消息删除;
(h)在没有接收到以太网返回消息时,检查重发队列中是否存在超时消息;
(i)在存在超时消息时,判断重发次数是否在预定次数之内;
(j)在重发次数在预定次数之内时,重发该消息;
(k)将重发的消息***发送队列中。
15.如权利要求11所述的消息服务方法,其特征在于向串口消息队列和以太网消息队列提供任务并提供任务执行结果的步骤包括:
(a)由任务处理装置从用户任务数据库中读入管理员的管理命令作为任务;
(b)根据任务的类型创建消息并将该消息***任务消息队列中;
(c)判断该消息是发送给汇集卡还是发送给节点中间代理装置;
(d)在该消息是发送给汇集卡的消息时,通过串口消息队列操作装置将消息***串口消息队列中,
(e)在该消息是发送给节点中间代理装置的消息时,通过以太网消息队列操作装置将消息***到以太网消息队列中;
(f)由任务处理装置定期检查任务的执行情况,并修改任务的执行状态;
(g)将任务执行结果写入数据库中,从而机群管理员通过控制台从数据库中读出该结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100314630A CN1331042C (zh) | 2004-03-29 | 2004-03-29 | 用于机群监控***控制台的消息服务装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100314630A CN1331042C (zh) | 2004-03-29 | 2004-03-29 | 用于机群监控***控制台的消息服务装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1677340A CN1677340A (zh) | 2005-10-05 |
CN1331042C true CN1331042C (zh) | 2007-08-08 |
Family
ID=35049878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100314630A Expired - Fee Related CN1331042C (zh) | 2004-03-29 | 2004-03-29 | 用于机群监控***控制台的消息服务装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1331042C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607421A (zh) * | 2013-10-10 | 2014-02-26 | 深圳市同洲电子股份有限公司 | 一种数据交互的方法及智能终端 |
CN105574158B (zh) * | 2015-12-15 | 2019-03-12 | 广州品唯软件有限公司 | 数据库缓存数据的刷新方法及其*** |
CN108694107B (zh) * | 2017-04-10 | 2022-01-07 | 北京京东尚科信息技术有限公司 | 消息队列的积压量监控方法、装置、可读介质和电子设备 |
CN108509277A (zh) * | 2018-04-03 | 2018-09-07 | 中国电子科技集团公司第七研究所 | 电子锁串口异步接收处理***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016867A1 (en) * | 2000-05-02 | 2002-02-07 | Sun Microsystems, Inc. | Cluster event service method and system |
WO2003005194A2 (en) * | 2001-07-05 | 2003-01-16 | Softwired Ag | Method for ensuring operation during node failures and network partitions in a clustered message passing server |
CN1466053A (zh) * | 2002-06-10 | 2004-01-07 | 联想(北京)有限公司 | 机群故障定位与报警的方法与*** |
CN1466095A (zh) * | 2002-06-10 | 2004-01-07 | 联想(北京)有限公司 | 采集机群中节点的软件和硬件信息的方法与*** |
-
2004
- 2004-03-29 CN CNB2004100314630A patent/CN1331042C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016867A1 (en) * | 2000-05-02 | 2002-02-07 | Sun Microsystems, Inc. | Cluster event service method and system |
WO2003005194A2 (en) * | 2001-07-05 | 2003-01-16 | Softwired Ag | Method for ensuring operation during node failures and network partitions in a clustered message passing server |
CN1466053A (zh) * | 2002-06-10 | 2004-01-07 | 联想(北京)有限公司 | 机群故障定位与报警的方法与*** |
CN1466095A (zh) * | 2002-06-10 | 2004-01-07 | 联想(北京)有限公司 | 采集机群中节点的软件和硬件信息的方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN1677340A (zh) | 2005-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2270112C (en) | Fail-safe event driven transaction processing system and method | |
US7685143B2 (en) | Unified logging service for distributed applications | |
US9053218B2 (en) | Data transmission capture in support of medication preparation | |
US5964831A (en) | Distributed on-line data communications system and method | |
US6292801B1 (en) | System and method for managing computer and phone network resources | |
CN101371496B (zh) | 电信网络中的干预的工作流模型的自动生成方法 | |
Martin et al. | Small Byzantine quorum systems | |
US20050182638A1 (en) | Intelligent State engine system | |
CN101002190A (zh) | 利用电子邮件中的元数据来管理虚拟存储器的电子邮件传输*** | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN105989539A (zh) | 一种金融交易行情获取***以及获取方法 | |
US20090164270A1 (en) | Calculating in-flight metrics for non-interruptible business transactions | |
UA65638C2 (uk) | Система і спосіб синхронізації і організації бази даних | |
EP2486698B1 (en) | Method and system for reconstructing transactions in a communication network | |
WO2003031999A1 (en) | Method and apparatus for monitoring and logging the operation of a distributed processing system | |
CN100566327C (zh) | 接收通信数据的方法和*** | |
CN106997557A (zh) | 订单信息采集方法及装置 | |
CN106656971A (zh) | 一种业务行为数据采集*** | |
CN1331042C (zh) | 用于机群监控***控制台的消息服务装置及其方法 | |
CN109088782A (zh) | 分布式***的日志收集方法及装置 | |
CN108173711A (zh) | 企业内部***数据交换监控方法 | |
CN108156061A (zh) | esb监控服务平台 | |
CN103888481A (zh) | 一种局域网dhcp数据包过滤方法及*** | |
CN116346680A (zh) | 基于拓扑嗅探的进程间网络流量追踪控制方法和*** | |
US7653742B1 (en) | Defining and detecting network application business activities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070808 Termination date: 20210329 |