Virtual member manager se ha configurado para utilizar el modelo dinámico.
Puede crear nuevos tipos de propiedad y añadirlos dinámicamente a los tipos de entidad
incorporados existentes de virtual member manager durante la ejecución.
Acerca de esta tarea
Necesita invocar la API createSchema de virtual member manager para crear
nuevos tipos de propiedad y añadirlos a tipos de entidad incorporados existentes de
virtual member manager durante la ejecución sin reiniciar virtual member manager. De
forma predeterminada, tanto el adaptador LDAP como el adaptador de BD soportan este tipo
de procedimiento. En este ejemplo desea crear un nuevo tipo de propiedad llamado
postOfficeBox y añadirlo al tipo de entidad incorporado de virtual member manager,
PersonAccount. En este ejemplo se utiliza el adaptador LDAP.
Realice lo siguiente:
Procedimiento
- Si los adaptadores subyacentes incluyen el adaptador LDAP, asegúrese de que el
esquema de atributo LDAP correspondiente del nuevo tipo de propiedad esté definido en el
servidor LDAP e incluido en las clases de objetos LDAP del tipo de entidad. Virtual member manager no proporciona funciones para crear y actualizar el
esquema LDAP en el servidor LDAP. En este ejemplo, la clase de objeto inetOrgPerson del
tipo de entidad PersonAccount ya contiene el atributo LDAP postOfficeBox
Si los adaptadores subyacentes incluyen el adaptador de BD, no es necesaria ninguna
preparación adicional.
- En el lado del cliente, construya un gráfico de datos para crear el nuevo tipo de propiedad. El objeto de datos PropertySchema se utiliza para crear un nuevo tipo de propiedad. Se
utilizan atributos como propertyName, dataType y multiValued para especificar los
metadatos del nuevo tipo de propiedad. Los tipos de entidad aplicables se definen en el elemento applicableEntityTypeNames.
Se pueden especificar varios tipos de entidad. Puede definir el nombre de atributo de
depósito correspondiente añadiendo una configuración de atributo LDAP y especificando el
nombre del nombre de propiedad correspondiente de virtual member manager. Para obtener
información sobre cómo configurarlo utilizando la interfaz de línea de mandatos, lea
sobre el mandato addIdMgrLDAPAttr en
Grupo
de mandatos IdMgrRepositoryConfig para el objeto AdminTask, en el Information
Center de WebSphere Application Server.
A continuación se muestra el gráfico de datos de ejemplo. El nuevo tipo de
propiedad que se creará se llama postOfficeBox y se añadirá al tipo de entidad
PersonAccount. Debido a que el nombre de atributo LDAP correspondiente postOfficeBox es
igual que el nombre de propiedad, no es necesario añadir una configuración LDAP
para este nombre de propiedad.
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:schema>
<wim:propertySchema nsURI="http://www.yourco.com/wim/yourext"
dataType="STRING" multiValued="true"
propertyName="postOfficeBox">
<wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
</wim:propertySchema>
</wim:schema>
</sdo:datagraph>
Resultados
En el lado del cliente, la aplicación de virtual member manager en uso invoca
la API createSchema de virtual member manager a través del Proveedor local de servicios. El
Proveedor local de servicios detecta que esta llamada cambia el esquema y actualiza el
esquema local (ECore) después de que finalice la llamada de la API createSchema.
En
el lado del servidor, el Gestor de esquemas recibe la llamada de la API del cliente. El
Gestor de esquemas primero comprueba si los nuevos tipos de propiedad ya existen y
emite una excepción en caso de que así sea. A continuación, el Gestor de esquemas
actualiza el modelo ECore en la memoria para añadir nuevos tipos de entidad a los
tipos de entidad existentes. En este ejemplo, a la EClass de PersonAccount se le añade
un nuevo EAttribute llamado postOfficeBox.
El Gestor de esquemas añade el esquema
de los nuevos tipos de propiedad al archivo wimxmlextension.xml. A continuación se
proporciona el contenido de ejemplo del archivo wimxmlextension.xml después de finalizar
esta actualización.
<wim:propertySchema nsURI="http://www.yourco.com/wim/yourext"
dataType="STRING" multiValued="true" propertyName="postOfficeBox">
<wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
</wim:propertySchema>
El Gestor de esquemas llama al Gestor de
depósitos que a su vez llama al método de SPI createSchema de todos los adaptadores.
Los
adaptadores que dan soporte a la creación del esquema, a continuación realizan las
operaciones necesarias para dar soporte al nuevo esquema. A modo de ejemplo, el Adaptador
LDAP renueva la memoria caché para reflejar los cambios en el esquema y en la
configuración. El Adaptador de BD crea el esquema de la nueva entidad y la propiedad en la
base de datos y renueva las memorias caché.
Nota: Los adaptadores que no dan soporte a la
creación del esquema, por ejemplo, el Adaptador de archivos que no da soporte a la
creación de nuevos tipos en la ejecución, emiten una excepción OperationNotSupportedException.
Si
al menos un adaptador de depósito da soporte a la creación de nuevas entidades y no emite
la excepción OperationNotSupportedException, virtual member manager devuelve los ID de
depósito de estos depósitos en el gráfico de datos de salida.
En el lado del
cliente, después del retorno de la llamada de la API createSchema API, el Proveedor local
de servicios invoca la API getEPackages para recuperar los últimos esquemas. El
Proveedor local de servicios vuelve a registrar los esquemas en la JVM del cliente.
Las aplicaciones en uso pueden invocar la API de creación de
virtual member manager para crear una nueva entidad de tipo PersonAccount
con la propiedad postOfficeBox. No es necesario reiniciar virtual member manager para
que se active el cambio en el esquema.