Mandato modifySIBJMSActivationSpec
Utilice el mandato modifySIBJMSActivationSpec para cambiar las propiedades de una especificación de activación de JMS para el proveedor de mensajería predeterminado en un ámbito específico.
Para ejecutar el mandato, utilice el objeto AdminTask del cliente de scripts wsadmin.
El cliente de scripts wsadmin
se ejecuta desde Qshell.
Para obtener más información, consulte Configuración de Qshell para ejecutar scripts de WebSphere mediante el script wsadmin.
- Si desea una lista de los mandatos de JMS disponibles del bus de integración de servicios en Jyton y una breve descripción de cada mandato, especifique el mandato siguiente en el indicador de wsadmin:
print AdminTask.help('SIBJMSAdminCommands')
- Si desea ayuda general sobre un mandato determinado,
especifique el mandato siguiente en el indicador de wsadmin:
print AdminTask.help('nombre_mandato')
AdminConfig.save()
Finalidad
Este mandato modifica las propiedades de una especificación de activación JMS.
Objeto de destino
El ámbito del proveedor de mensajería predeterminado en el que se va a modificar la especificación de activación JMS.
Parámetros necesarios
Ninguno.
Parámetros opcionales
- -name
- El nombre administrativo asignado a esta especificación de activación.
- -jndiName
- El nombre JNDI que se especifica en los enlaces para los beans controlados por mensajes asociados a esta especificación de activación.
- -description
- Descripción opcional de la especificación de activación.
- -destinationType
- Utilice este parámetro para determinar si el bean controlado por mensajes utiliza una cola JMS o un tema JMS. Seleccione uno de los siguientes valores:
- Cola
- El bean controlado por mensajes utiliza una cola JMS. El nombre JNDI de la cola JMS se especifica en la propiedad Nombre JNDI de destino.
- Tema
- El bean controlado por mensajes utiliza un tema JMS. El nombre JNDI del tema JMS se especifica en la propiedad Nombre JNDI de destino.
- -destinationJndiName
- Nombre JNDI de la cola o tema JMS de destino que utiliza el bean controlado por mensajes.
- -destinationLookup
- Nombre JNDI de la cola o tema JMS de destino que utiliza el bean controlado por mensajes. Los parámetros de nombre JNDI de destino y de nombre de búsqueda de destino tienen la misma finalidad de almacenar el nombre JNDI de destino en la configuración. Aunque los dos campos individualmente no son obligatorios, debe asegurarse de que al menos uno de ellos tenga un valor. Cuando ambos parámetros, destinationLookup y destinationJndiName, contienen valores, el parámetro destinationLookup tiene prioridad sobre el parámetro destinationJndiName.
- -connectionFactoryLookup
- Nombre JNDI de la búsqueda de fábrica de conexiones.
- -messageSelector
- serie
- -busName
- Escriba el nombre del bus de integración de servicios con el que se realizan las conexiones. Debe ser el nombre del bus en el que se define el destino identificado por la propiedad -destinationJndiName.
- -acknowledgeMode
- La modalidad de reconocimiento indica cómo debe reconocer un mensaje recibido el bean controlado por mensajes. Seleccione uno de los siguientes valores:
- Reconocimiento automático
- La sesión reconoce automáticamente la entrega de un mensaje.
- Reconocimiento automático de duplicados correctos
- La sesión reconoce vagamente la entrega de mensajes, lo que puede mejorar el rendimiento, pero puede llevar a que el bean controlado por mensajes reciba un mensaje más de una vez.
- -target
- -targetType
- Tipo del destino nombrado en la propiedad -target.
Seleccione uno de los siguientes valores:
- Nombre de miembro de bus
- Nombre de un miembro de bus. Esta opción recupera los motores de mensajería activos alojados en el miembro del bus indicado (servidor de aplicaciones o clúster de servidores).
- Nombre de grupo de motores de mensajería personalizado
- El nombre de un grupo personalizado de motores de mensajería (que forman un clúster de autodeclaración). Esta opción recupera los motores de mensajería activos que se han registrado con el grupo personalizado indicado.
- Nombre de motor de mensajería
- Nombre de un motor de mensajería. Esta opción recupera los puntos finales que pueden utilizarse para llegar al motor de mensajería indicado.
- -targetSignificance
- Seleccione uno de los siguientes valores:
- Preferido
- Es preferible que se seleccione un motor de mensajería en el grupo de destino. Se seleccionará un motor de mensajería del grupo de destino si hay uno disponible. Si no hay un motor de mensajería disponible en el grupo de destino, se seleccionará un motor de mensajería fuera del grupo de destino, si está disponible en el mismo bus de integración de servicios.
- Obligatorio
- Es necesario que se selecciona un motor de mensajería en el grupo de destino. Se seleccionará un motor de mensajería del grupo de destino si hay uno disponible. Si no hay un motor de mensajería disponible en el grupo de destino, el proceso de conexión dará error.
- -targetTransportChain
Si el motor de mensajería seleccionado está en el mismo servidor que la aplicación, se realiza una conexión directamente desde el proceso y se ignora esta propiedad de cadena de transporte.
Las cadenas de transporte representan pilas de protocolos de red que operan dentro de un servidor. El nombre que especifique debe ser una de las cadenas de transporte disponibles en el servidor que aloja el motor de mensajería, tal como aparece listado en el panel . Se proporcionan las siguientes cadenas de transporte, pero puede definir sus propias cadenas de transporte en ese panel.- InboundBasicMessaging
- Se trata de un protocolo orientado a conexión que utiliza una conexión TCP/IP estándar (JFAP-TCP/IP). Incluye soporte para flujos transaccionales en dos fases (XA remoto), para que un generador o consumidor de mensajes que se ejecute en un sistema cliente o servidor, pueda participar en una transacción global gestionada sobre dicho sistema cliente o servidor. El uso específico de flujos XA es dar soporte de acceso a una aplicación que se ejecuta en un servidor en un motor de mensajería de otro servidor, quizás porque el primer servidor no tiene un motor de mensajería adecuado. Si se utilizan flujos XA remotos, debe estar disponible un coordinador de transacciones de forma local para la aplicación.
- InboundSecureMessaging
- Es el protocolo InboundBasicMessaging envuelto en SSL.
- -providerEndPoints
- Una lista de tripletes de puntos finales separada por comas, con la sintaxis nombre_host:número_puerto:nombre_cadena, que se utiliza para conectarse a un servidor de rutina de carga. Por ejemplo Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging.
Los puntos finales de proveedor no se utilizan salvo que el bus especificado no se pueda encontrar en la célula local. Las aplicaciones MDB primero intentan conectarse al bus especificado en la célula local. Si este intento falla, los puntos finales de proveedor se utilizan para permitir a las aplicaciones consumir los mensajes desde una célula remota.
Si no se especifica el nombre de host, se utiliza localhost como valor predeterminado.
Si se especifica el número de puerto, se utiliza 7276 como valor predeterminado.
Si no se especifica el protocolo, como valor predeterminado se utilizará una cadena predefinida como BootstrapBasicMessaging.
- -authenticationAlias
-
Un alias de autenticación de Java™ Platform, Enterprise Edition (Java EE) Connector Architecture (JCA) especifica el ID de usuario y la contraseña utilizados para autenticar la creación de una nueva conexión con el proveedor de JMS.
- -maxBatchSize
- Es el número máximo de mensajes en un solo lote entregados en serie a una sola instancia de bean controlado por mensajes. Los lotes de mensajes pueden mejorar el rendimiento especialmente cuando se utilizan con Modalidad de reconocimiento establecido en Reconocimiento automático de duplicados correctos. Si el orden de los mensajes debe conservarse en las entregas con errores, establezca el tamaño del lote en 1
- -maxConcurrency
-
Si se aumenta este número puede mejorar el rendimiento pero también aumentará el número de hebras en uso en un momento dado. Si el orden de los mensajes debe conservarse en las entregas con errores, establezca el número máximo de puntos finales simultáneos en 1. El orden de los mensajes sólo se aplica si el destino del que consume el bean controlado por mensajes no es un destino particionado. Los destinos particionados se utilizan en un escenario de carga de trabajo compartida en un clúster.
- -subscriptionDurability
- Generalmente, sólo una aplicación a la vez puede tener un consumidor para una suscripción duradera concreta. Esta propiedad le permite alterar este comportamiento para que una suscripción duradera pueda tener varios consumidores simultáneos. Seleccione uno de los siguientes valores:
- Duradera
- El proveedor de mensajería almacena los mensajes mientras no está disponible el bean controlado por mensajes y entrega los mensajes cuando dicho bean está disponible de nuevo.
- No duradera
- El proveedor de mensajería no almacena ni vuelve a entregar los mensajes si no hay disponible un bean controlado por mensajes.
- -subscriptionName
-
Cada suscripción duradera de JMS se identifica mediante un nombre de suscripción (especificado en esta propiedad). Una conexión de JMS también tiene un identificador de cliente asociado (especificado en la propiedad Identificador de cliente ), que se utiliza para asociar una conexión y sus objetos a la lista de mensajes (en la suscripción duradera) que es mantenida por el proveedor de JMS para el cliente.
Este nombre de suscripción debe ser exclusivo dentro de un identificador de cliente dado.
- -clientId
-
El valor especificado es un identificador exclusivo para un cliente (bean controlado por mensaje). El identificador del cliente se utiliza para asociar una conexión del cliente con la lista de mensajes (en una suscripción duradera) que el proveedor de mensajería conserva para el cliente. Cuando un cliente vuelve a estar disponible, después de no haber estado disponible, el proveedor de mensajería utiliza el identificador del cliente para volver a entregar los mensajes almacenados al cliente correcto.
- -durableSubscriptionHome
-
Los administradores pueden gestionar el estado de tiempo de ejecución de las suscripciones duraderas a través de puntos de publicación para este motor de mensajería.
- -shareDurableSubscriptions
Normalmente, sólo una sesión a la vez puede tener un TopicSubscriber para una suscripción duradera concreta. Esta propiedad le permite alterar este comportamiento para que una suscripción duradera pueda tener varios consumidores simultáneos, uno en cada servidor de aplicaciones del clúster de servidores.
Seleccione uno de los siguientes valores:- En clúster
- Permite compartir suscripciones duraderas cuando las conexiones se efectúan desde dentro de un clúster de servidores.
- Siempre compartidas
- Las suscripciones duraderas pueden compartirse entre conexiones.
- Nunca compartidas
- Las suscripciones duraderas nunca se comparten entre conexiones.
- -shareDataSourceWithCmp
True | False
Utilice esta opción para habilitar los beans de entidad de persistencia gestionada por contenedor (CMP) para que compartan las conexiones de base de datos utilizadas por el almacén de datos de un motor de mensajería. Esto se ha estimado como una mejora potencial de 15% para el rendimiento global pero sólo puede utilizarse para beans de entidad conectados al servidor de aplicaciones que contiene el motor de mensajería. Esta opción no debe estar habilitada para un motor de mensajería que utilice el almacén de archivos como su almacén de datos.
Para obtener más información sobre la utilización de esta opción, consulte el apartado Habilitar los beans de entidad CMP y los almacenes de datos del motor de mensajería para que compartan conexiones de bases de datos.
- -readAhead
Los mensajes asignados a un consumidor se bloquean en el servidor y ninguno de los consumidores de ese destino pueden consumirlos. Los mensajes asignados a un consumidor, pero no consumidos antes de que se cierre el consumidor, se desbloquean posteriormente en el servidor y quedan disponibles para poder ser recibidos por otros consumidores.
Puede alterar temporalmente esta propiedad para destinos de JMS individuales estableciendo la propiedad Lectura hacia adelante en el destino de JMS.
Seleccione uno de los siguientes valores:- Habilitada
- El proveedor de mensajería asigna los mensajes a los consumidores de forma preventiva. Esto mejora los tiempos para cumplir las solicitudes del consumidor.
- Inhabilitado
- El proveedor de mensajería no asigna los mensajes a los consumidores de forma preventiva.
- Valor predeterminado
- El proveedor de mensajería asigna, de forma preventiva, mensajes a los consumidores sobre suscripciones no duraderas y suscripciones duraderas no compartidas. Es decir, la optimización de lectura hacia adelante sólo se activa cuando sólo puede haber un consumidor.
- -forwarderDoesNotModifyPayloadAfterSet
- true | false (default false)
- Las aplicaciones que reenvían mensajes que se recibieron originalmente utilizando esta especificación de activación deben seguir las siguientes reglas:
- La aplicación puede sustituir el objeto de datos en un mensaje de objeto JMS, siempre que el objeto de datos todavía no se haya establecido en el mensaje. La aplicación no modifica, ni sustituye el objeto de datos después de que se haya establecido en el mensaje.
- La aplicación puede sustituir la matriz de bytes en un mensaje de bytes JMS, pero sólo mediante el uso de una sola llamada a writeBytes(byte[]) y siempre que la matriz de bytes todavía no se haya establecido en el mensaje. La aplicación no modifica ni sustituye la matriz de bytes después de que se haya establecido en el mensaje.
- -consumerDoesNotModifyPayloadAfterGet
- true | false (default false)
- Las aplicaciones que utilizan esta especificación de activación para recibir mensajes deben seguir la siguiente regla: La aplicación no modifica el objeto de datos obtenido de un mensaje de objeto JMS. El objeto de datos se trata como de sólo lectura.
- -alwaysActivateAllMDBs
- True | False
Esta propiedad sólo se utiliza cuando la aplicación MDB se ejecuta en un servidor que sea miembro del bus que la aplicación tiene como destino. No tiene ningún efecto cuando el MDB se ejecuta en un servidor que no es miembro del bus de destino.
Si la aplicación MDB se ejecuta en un servidor que es miembro del bus de destino, si se habilita esta opción se permite a la aplicación MDB procesar mensajes tanto si el servidor también aloja un motor de mensajería en ejecución como si no. Si esta opción no se habilita, las aplicaciones MDB que se encuentran en servidores que no tengan un ME local en ejecución no procesarán mensajes.
Para las aplicaciones MDB que se conectan a un miembro de bus del clúster, también puede utilizar esta opción para habilitar cualquiera de las siguientes configuraciones adicionales:- Todos los servidores del clúster pueden recibir mensajes de la aplicación MDB para aprovechar al máximo la potencia de proceso del clúster.
- Para asegurar el proceso secuencial de los mensajes, sólo un servidor a la vez puede recibir mensajes de la aplicación MDB.
Para obtener más información, consulte Cómo se conecta un bean controlado por mensajes en un clúster.
- -retryInterval
- -userName
- La identidad de usuario para la seguridad del conector Java 2 que se debe utilizar.
- -password
- La contraseña para la seguridad del conector Java 2 que se debe utilizar.
- -WAS_EndpointInitialState
- Esta propiedad determina si el punto final está activado cuando se ha registrado el punto final. Si la propiedad se establece en active, el consumo de mensajes empieza a partir del destino JMS tan pronto como se utiliza la especificación de activación para un bean controlado por mensajes para conectar con el destino.
El valor de este parámetro debe ser ACTIVE o INACTIVE.
Ejemplo
- El ejemplo siguiente muestra una especificación de activación que se modifica utilizando Jython:
wsadmin>AdminTask.modifySIBJMSActivationSpec("myjmsas(cells/ 9994GKCNode01Cell/nodes/ 9994GKCNode01|resources.xml#J2CActivationSpec_1098726667851)", ["-jndiName", "jms/jmsas4q1", "-description", "JMS activation specification for myqueue1", "-destinationJndiName", "jms/myqueue1"]) "myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)"
- El ejemplo siguiente muestra una especificación de activación que se modifica utilizando Jacl:
wsadmin>$AdminTask modifySIBJMSActivationSpec myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivationSpec_1098726667851) {-jndiName jms/jmsas4q1 -description "JMS activation specification for myqueue1" -destinationJndiName jms/myqueue1} myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)
- El ejemplo siguiente modifica una especificación de activación activando el parámetro opcional WAS_EndpointInitialState utilizando
Jython:
wsadmin>attrs = "[[name "WAS_EndpointInitialState"] [required "false"] [type "java.lang.String"] [value "ACTIVE"]]" wsadmin>AdminConfig.getid("/Node:myNode01") "myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)" wsadmin>AdminTask.listSIBJMSActivationSpecs("myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)") "newas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)" wsadmin>AdminConfig.create("J2EEResourceProperty", "testas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)", attrs) "WAS_EndpointInitialState(cells/myCell01/nodes/myNode01|resources.xml#J2EEResourceProperty_1298546239332)"