Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

C 函数

C 函数用于资源类型的回叫方法的 C 程序实现,该资源类型表示群集的 RGM 所控制的服务。 您可以使用这些函数执行以下操作:


注意:

虽然本节中提供了对 C 函数的简单说明,但是各个 (3HA) 手册页中提供的信息才是有关 C 函数的权威参考。 每个函数都对应一个具有相同名称的手册页,除非另外注明。 有关 C 函数的输出变量和返回代码的信息,请参阅 scha_calls( 3HA) 手册页。


资源函数

下面这些函数用来存取关于 RGM 所管理的资源的信息或用来指示监视器探测到的资源状态。

scha_resource_open()scha_resource_get ()scha_resource_close()

这些函数共同用于存取有关 RGM 所管理的资源的信息。 scha_resource_open() 函数用来初始化对资源的存取并返回 scha_resource_get () 的句柄,用于存取资源信息。 scha_resource_close() 函数可使该句柄无效并释放为 scha_resource_get() 的返回值分配的内存。

scha_resource_open() 返回资源的句柄后,通过群集重新配置或管理操作,可以更改资源; 在这种情况下,scha_resource_get() 通过该句柄获得的信息可能不准确。 对资源进行群集重新配置或管理操作时,RGM 将向 scha_resource_get () 返回 scha_err_seqid 错误代码,以表明该资源的信息可能已更改。 这是一个非致命性错误消息;函数将成功返回。 您可以选择忽略该消息并接受返回的信息;您也可以关闭当前句柄并打开一个新的句柄,以存取该资源的信息。

在单个手册页中描述了这三个函数。 您可以通过以下任意一个函数存取此手册页:scha_resource_open(3HA)scha_resource_get(3HA)scha_resource_close(3HA)

scha_resource_setstatus()

设置 RGM 所控制的资源的 StatusStatus_msg 特性。 资源的监视器使用此函数指示该资源的状态。


注意:

虽然对于资源监视器来说 scha_resource_setstatus() 有特定用途,但是任何程序都可以调用该函数。


资源类型函数

下面这些函数共同用于存取通过 RGM 登记的资源类型的信息。

scha_resourcetype_open()scha_resourcetype_get()scha_resourcetype_close()

scha_resourcetype_open() 函数用来初始化对资源类型的存取并返回 scha_resourcetype_get () 的句柄,用于存取资源类型的信息。 scha_resourcetype_close() 函数可使该句柄无效并释放为 scha_resourcetype_get() 的返回值分配的内存。

scha_resourcetype_open() 返回资源类型的句柄后,通过群集重新配置或管理操作,可以更改资源类型;在这种情况下,scha_resourcetype_get() 通过该句柄获得的信息可能不准确。 对资源类型进行群集重新配置或管理操作时,RGM 将向 scha_resourcetype_get() 返回 scha_err_seqid 错误代码,以表明该资源类型的信息可能已更改。 这是一个非致命性错误消息;函数将成功返回。 您可以选择忽略该消息并接受返回的信息;您也可以关闭当前句柄并打开一个新的句柄,以存取关于该资源类型的信息。

在单个手册页中描述了这三个函数。 您可以通过以下任意一个函数存取此手册页:scha_resourcetype_open(3HA)scha_resourcetype_get(3HA)scha_resourcetype_close(3HA)

资源组函数

您可以通过下面这些函数存取资源组信息或重新启动该资源组。

scha_resourcegroup_open(3HA)scha_resourcegroup_get(3HA)scha_resourcegroup_close(3HA)

这些函数共同用于存取有关 RGM 所管理的资源组的信息。 scha_resourcegroup_open() 函数用来初始化对资源组的存取并返回 scha_resourcegroup_get () 的句柄,用于存取资源组信息。 scha_resourcegroup_close() 函数可使该句柄无效并释放为 scha_resourcegroup_get() 的返回值分配的内存。

可以在 scha_resourcegroup_open() 返回该资源的句柄后通过群集重新配置或管理操作更改资源类型,这时 scha_resourcegroup_get() 通过该句柄获得信息可能会不准确。 对资源组进行群集重新配置或管理操作时,RGM 将向 scha_resourcegroup_get () 返回 scha_err_seqid 错误代码,以表明该资源组的信息可能已更改。 这是一个非致命性错误消息;函数将成功返回。 您可以选择忽略该消息并接受返回的信息;您也可以关闭当前句柄并打开一个新的句柄,以存取关于该资源组的信息。

scha_control(3HA)

请求重新启动 RGM 所控制的资源组或将其重定位到其它节点。

群集函数

下面这些新函数用来存取或返回群集的信息。

scha_cluster_open(3HA)scha_cluster_get(3HA)scha_cluster_close(3HA)

这些函数共同用来存取群集信息,例如节点名称、节点 ID 和节点状态、群集名称、资源组等。

可以在 scha_cluster_open() 返回该资源的句柄后通过群集重新配置或管理操作更改资源,这时 scha_cluster_get() 通过该句柄获得信息可能会不准确。 对群集进行重新配置或管理操作时,RGM 将向 scha_cluster_get() 返回 scha_err_seqid 错误代码,以表明该群集的信息可能已更改。 这是一个非致命性错误;函数将成功返回。 您可以选择忽略该消息并接受返回的信息;您也可以关闭当前句柄并打开一个新的句柄,以存取关于该群集的信息。

scha_cluster_getlogfacility(3HA)

返回用作群集记录的系统记录工具的数量。 使用返回值和 Solaris syslog() 函数将事件和状态消息记录到群集记录中。

scha_cluster_getnodename(3HA)

返回在其上调用该函数的群集节点的名称。

公用程序函数

此函数用来将错误代码转换成错误消息。

scha_strerror(3HA)

将某个 scha_ 函数返回的错误代码转换成相应的错误消息。 使用此函数和 logger 可以将消息记录到系统日志 (syslog) 中。