Partilhar via


Armazenamento persistente no servidor

Você pode otimizar seu aplicativo para que o stub do servidor não libere memória no servidor na conclusão de uma chamada de procedimento remoto. Por exemplo, quando um identificador de contexto é manipulado por vários procedimentos remotos, você pode usar o atributo ACF [alocar(dont_free)] para reter a memória alocada no servidor.

O atributo [allocate(dont_free)] é adicionado à declaração ACF typedef no ACF. Por exemplo:

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

Quando o atributo [allocate(dont_free)] é especificado, a estrutura de dados da árvore é alocada, mas não liberada, pelo stub do servidor. Quando você disponibiliza os ponteiros para essas áreas de dados persistentes para outras rotinas — por exemplo, copiando os ponteiros para variáveis globais — os dados retidos ficam acessíveis a outras funções do servidor. O atributo [allocate(dont_free)] é particularmente útil para manter estruturas de ponteiro persistentes como parte das informações de estado do servidor associadas a um tipo de identificador de contexto.