服务器上的持久存储

可以优化应用程序,以便在远程过程调用结束时服务器存根不会释放服务器上的内存。 例如,当多个远程过程作上下文句柄时,可以使用 ACF 属性 [allocate(dont_free)] 保留服务器上分配的内存。

[allocate(dont_free)] 属性添加到 ACF typedef 声明中。 例如:

/* ACF file fragment */
typedef [allocate(all_nodes, dont_free)] P_TREE_TYPE;

指定 [allocate(dont_free)] 属性时,服务器存根会分配树数据结构,但不释放树数据结构。 将指针指向此类持久性数据区域的指针提供给其他例程(例如,通过将指针复制到全局变量)时,保留的数据可供其他服务器函数访问。 [allocate(dont_free)] 属性特别适用于将持久性指针结构作为与上下文句柄类型关联的服务器状态信息的一部分进行维护。