Gestión de propiedades en la base de datos

Puede utilizar la base de datos para almacenar propiedades y después gestionar las propiedades en la consola de administración de sistema.

Propiedades

Las propiedades se definen y publican en IBM Sterling® Order Management System para controlar las operaciones empresariales. Las propiedades también se utilizan para establecer los parámetros de conexión a las distintas aplicaciones middleware en el despliegue de IBM Sterling Order Management System y también en la integración con otras aplicaciones empresariales.

Puede personalizar el comportamiento predeterminado modificando los valores de las propiedades de modo que satisfagan sus necesidades técnicas y de negocio. Estas propiedades se categorizan y almacenan en sus archivos de instalación respectivos (archivos .in). Los archivos de propiedades reales se generan durante la instalación de IBM Sterling Order Management System con los valores establecidos en el archivo sandbox.cfg. Normalmente, los cambios en las propiedades no se llevan a cabo en los archivos de propiedades predeterminados; en su lugar se alteran en el archivo customer_overrides.properties.

Limitaciones de la gestión de propiedades en archivos

Actualmente, las propiedades utilizadas por la plataforma y las aplicaciones IBM Sterling Order Management System se basan en ficheros. Este mecanismo no permite cambios en las propiedades en tiempo de ejecución. Las máquinas virtuales Java (JVM) deben reiniciarse si desea modificar un valor de propiedad.

El valor de una propiedad sigue siendo el mismo para el servidor de aplicaciones y todos los servidores de agentes o integraciones y también para todos los usuarios. Aunque las anulaciones de propiedades a nivel de servidor se pueden conseguir especificando un archivo vendor separado que apunte a un archivo customer_overrides.properties diferente mientras se inicializa la JVM, sólo es práctico en una instalación On-Premise de IBM Sterling Order Management System.

Las propiedades no son todas iguales; son distintas en la inicialización, en el consumo y en la modificación. El enfoque actual de publicar archivos .in no articula sus características, cuándo y dónde se lee, cuando se puede modificar o si el valor modificado entra en vigor inmediatamente.

Todas las propiedades, que puede modificar, se pueden gestionar utilizando la interfaz de usuario de la consola de administración del sistema.

Manejo de propiedades a través de base de datos

  1. Se define un metadatos para cada propiedad para describir sus características.
  2. Se ha introducido un script de línea de mandatos para cargar los metadatos y la declaración de propiedades en la base de datos.
  3. La lógica de recuperación de propiedades se ha modificado para buscar primero la propiedad en la base de datos y volver a los archivos sólo si la propiedad no se encuentra en la base de datos.
  4. Se añade una interfaz de usuario de gestión de propiedades para interactuar con la base de datos para poder añadir, cambiar o suprimir asignaciones de propiedades. Las operaciones que están permitidas en una propiedad, basándose en sus metadatos, están permitidas desde la interfaz de usuario. Puede utilizar la misma interfaz de usuario para establecer los valores de sustitución de propiedades a nivel de usuario y servidor.
  5. Se ha introducido otro script de línea de mandatos para importar las alteraciones temporales del sistema de archivos, como las especificaciones del archivo customer_overrides.properties . Esto establecerá el valor de la propiedad es base de datos para que las especificaciones de cliente se lean correctamente al recuperar los valores de propiedad.
  6. El mecanismo db-cache se utiliza para difundir los cambios en los valores de las propiedades a todas las JVM de Sterling™ Order Management System activas.

Flujo de lógica de recuperación de propiedades

El diagrama siguiente describe el flujo lógico al recuperar las propiedades:
Flujo de lógica de recuperación de propiedades

El modelado de metadatos de propiedades

La tabla PLT_PROPERTY_METADATA almacena las características de una propiedad y define los siguientes atributos:
Tabla 1. Tabla de metadatos de propiedades
Nombre de columna Descripción
Categoría La categoría a la que la propiedad pertenece. Por ejemplo, yfs o jdbc.
BASE_PROPERTY_NAME Nombre de la propiedad.
PROPERTY_TYPE Indica si se ha definido en los archivos de propiedades predeterminados o una propiedad personalizada. Se indica como SYSTEM o CUSTOM.
DATA_TYPE El tipo de datos Java retenido por esta propiedad.
MODIFIABLE Indica si la propiedad puede modificarse o sustituirse.
MODIFIABLE_AT_RUNTIME Especifica si esta propiedad se puede modificar una vez que la aplicación está en ejecución y entra en vigor inmediatamente.
PERMISSIBLE_VALUES Los datos que esta propiedad puede mantener. Se almacenará como XML.
DESCRIPCIÓN Almacena la descripción de propiedad.
SERVER_OVERRIDE Especifica si esta propiedad es sustituida por un servidor de aplicaciones, agente o servidor de integración.
USER_OVERRIDE Especifica si esta propiedad se sustituye para un usuario que ha iniciado la sesión.

El modelado de propiedades

La tabla PLT_PROPERTY almacena valores de fábrica y cambios de tiempo de ejecución, como por ejemplo establecer los valores de propiedades o definir las sustituciones de servidor y usuario. Persiste la siguiente información de propiedades:
Nombre de columna Descripción
Categoría La categoría a la que la propiedad pertenece. Por ejemplo, yfs o jdbc.
BASE_PROPERTY_NAME Nombre de la propiedad.
FACTORY_VALUE El valor predeterminado de la propiedad.
PROPERTY_OVERRIDE Especifica quién ha sustituido la propiedad. El valor 'BASE' indica la propiedad base. Los valores permitidos son BASE, SERVER y USER.
PROPERTY_OVERRIDE_NAME Nombre sustituido de la propiedad. Este valor está en blanco para las propiedades base.
PROPERTY_VALUE El valor de la propiedad.
USER_COMMENT Para almacenar comentarios cuando se modifica o altera una propiedad.

Codificación de archivo de propiedades

Las propiedades siguen almacenándose de forma predeterminada. Se presenta una serie de conjuntos de códigos bien definidos para establecer las características de propiedades, mientras se definen en los archivos de propiedades y para cargarlos en la base de datos de forma más eficaz. Estos códigos significan normalmente el nombre de propiedad, los valores posibles, el valor de fábrica, la descripción y otros valores de definición.

Por ejemplo:

## PROPERTY_START
## PROPERTY_NAME: yantra.hm.purge.interval
## DATABASE_SUPPORT: Y
## EXTENDED_PROPERTY: N
## MODIFIABLE: Y
## MODIFIABLE_AT_RUNTIME: N
## SERVER_OVERRIDE: N
## USER_OVERRIDE: N
## PROPERTY_GROUP: System management - health monitor
## PROPERTY_TYPE: Integer
## PROPERTY_DESCRIPTION
## Health monitor purge interval in days. System default value used for purging heartbeat,
## snapshot, and page cache records.
## If this value is not specified, the default value is 30 days.
#yantra.hm.purge.interval=
## PROPERTY_END
Donde:
PROPERTY_NAME
Nombre de la propiedad. En este ejemplo, el nombre de la propiedad es yfs.config.password.noprompt.
DATABASE_SUPPORT
Indica si una propiedad está soportada en la base de datos. Las propiedades que son necesarias en la producción se cargan en la base de datos.

El valor predeterminado es Y.

EXTENDED_PROPERTY
Indica si una propiedad se sustituye. Si se establece en Y, no es necesario volver a documentar los códigos, sólo el valor. Este código no se guarda en la base de datos.
MODIFIABLE
Necesario: indica si una propiedad puede modificarse. Si no es así, la propiedad no se debe modificar ni sustituir. Dichas propiedades únicamente son para fines informativos.

Si una propiedad está marcada como no modificable, no se tiene en cuenta ningún otro código. Estas propiedades no pueden modificarse ni sustituirse desde cualquier interfaz de usuario y su valor no puede cambiarse con la herramienta manageProperties.

El valor predeterminado es Y.

MODIFIABLE_AT_RUNTIME
Necesaria: indica si una propiedad puede modificarse en el tiempo de ejecución. Las propiedades que requieren un reinicio de servidor deben marcarse como no modificables en tiempo de ejecución.
SERVER_OVERRIDE
Necesaria: indica las propiedades para las que distintos agentes pueden tener valores diferentes. Si se establece en Y, distintos servidores pueden tener valores diferentes.
USER_OVERRIDE
Necesaria: indica las propiedades para las que distintos usuarios pueden tener valores diferentes. Si se establece en Y, distintos usuarios pueden tener valores diferentes.
PROPERTY_GROUP
El grupo de propiedades. En este ejemplo, el grupo de propiedades es interfaz de usuario.
PROPERTY_TYPE
El tipo de propiedad. En este ejemplo, el tipo de propiedad es booleano.
PROPERTY_PERMISSIBLE_VALUES
Los valores permitidos para la propiedad. En este ejemplo, los valores permitidos para la propiedad son Y, N.
PROPERTY_DESCRIPTION
La descripción de la propiedad.

Las propiedades con el código DATABASE_SUPPORT='N' no se cargarán en la base de datos. En cambio, se listarán en el archivo filesystem.properties. Si una entrada para la propiedad se encuentra en el archivo filesystem.properties, no se buscará en la base de datos.

Las siguientes propiedades no se almacenan en la base de datos de forma predeterminada:
  • Propiedades JDBC y de registro
  • sandbox.cfg
  • servers.properties
  • vendor.properties
  • security.properties
  • logfilter.properties
  • logCodes.properties
  • logMessageCodes.properties
  • tuning.properties

Las propiedades JDBC son necesarias antes de que se establezca una conexión con la base de datos y por lo tanto nunca pueden almacenarse en la base de datos. De forma parecida, las propiedades de registro no están almacenadas en la base de datos. Las propiedades de recinto de pruebas son necesarias para la instalación y se utilizan para generar otras propiedades y no están almacenadas en la base de datos.

La propiedad DATABASE_PROPERTY_MANAGEMENT se introduce en el archivo sandbox.cfg para permitir la gestión de propiedades en la base de datos a través de IBM Sterling Order Management System. Esta opción está configurada como falsa, pero está activada de forma predeterminada para la oferta de IBM Sterling Order Management System en la nube.