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 será manipulado por vários procedimentos remotos, você pode usar o atributo ACF [allocate(dont_free)] para manter a memória alocada no servidor.
O atributo [allocate(dont_free)] é adicionado à declaração typedef do ACF 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 de á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 são acessíveis para outras funções de 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.