Se han añadido estos dos métodos mediante la interfaz PartitionDefition:
/** * Aquí se establece una serie de nombre de alias * */ void setPartitionAlias(String aliasName); /** * Aquí se devuelve la serie de alias de partición correspondiente a esta partición * * @return String */ String getPartitionAlias();
Se proporcionan dos ejemplos de alias de particiones como ejemplos de programación. En uno se muestra cómo funciona el alias de partición y el otro cómo funciona con los alias de partición y las particiones sin alias combinados en la misma aplicación. A continuación figuran los dos ejemplos:
Ejemplo de alias de partición
public PartitionDefinition[] getPartitions() { try { //1 con 1 entre partición y alias numOfAlias=numOfPartitions; partitionAlias= new String[numOfAlias]; } catch (Exception e) { … } PartitionDefinition[] rc = new PartitionDefinition[numOfPartitions]; for (int i = 1; i <= numOfPartitions; ++i) { rc[i - 1] = ivManager.createPartitionDefinition(PartitionAlias.PARTITION_PREFIX + padZeroToString(i + "", 6)); rc[i-1].setPartitionAlias(PartitionAlias.PARTITION_ALIAS + padZeroToString(i + "", 6)); } return rc; }
public class PartitionAlias_PartitionKey { /** * devolver la serie de partición como clave de partición * @param partition * @return */ public static String pingAlias(String partitionAlias) { return partitionAlias; } /** * devolver la serie de partición como clave de partición * @param partition * @return */ public static String ping(String partition) { return partition; }
Algunos métodos pueden utilizar el contexto de alias de partición mientras que otros pueden utilizar el contexto de partición.
Ejemplo de alias de partición y partición sin alias combinados
public PartitionDefinition[] getPartitions() { try { numOfAlias=numOfPartitions/5; partitionAlias= new String[numOfAlias]; } catch (Exception e) { …… } PartitionDefinition[] rc = new PartitionDefinition[numOfPartitions]; for (int i = 1; i <= numOfPartitions; ++i) { rc[i - 1] = ivManager.createPartitionDefinition(MixedAliasNoAliasPartition.PARTITION_PREFIX + padZeroToString(i + "", 6)); if ((i-1)%5==0){ int k= (i-1)/5 + 1; rc[i-1].setPartitionAlias(MixedAliasNoAliasPartition.PARTITION_ALIAS + padZeroToString(k + "", 6)); } } return rc; }
El direccionamiento puede utilizar el contexto de alias de partición si existe o el contexto de partición. Si no existe alias de partición para esta partición y la petición de cliente tiene contexto de alias de partición, las peticiones de cliente recibirán una excepción de NO_IMPLEMENT, pero esta partición sin alias se puede direccionar con el contexto de partición. En cualquier aplicación, algunas particiones pueden tener su alias y otras particiones quizá no tengan ningún alias.
Related concepts
¿Qué es un
alias de partición?