(PECL sam >= 0.1.0)
SAMConnection::send — Envía un mensaje a una cola o lo publica en un asunto.
El método "send" se utiliza para enviar un mensaje a una cola específica o publicarlo en un asunto específico. El método devuelve el identificador de correlación, que puede ser utilizado como un selector para identificar los mensajes respondidos cuando éstos sean solicitados.
target
Si enviamos un mensaje, esta será la identidad de la cola (queue://queuename) o si lo publicamos en un asunto, la identidad del asunto (topic://topicname) al cual el mensaje va a ser enviado.
msg
El mensaje a enviar o publicar.
properties
Un array asociativo opcional de propiedades que describen otros parámetros para controlar la operación de recepción.
Nombre de la propiedad | Valores posibles |
---|---|
SAM_DELIVERYMODE |
Indica si el servidor de mensajería debe asegurar la entrega o
si es aceptable que los mensajes se pierdan en caso de
fallo de sistema. El valor de esta propiedad debe fijarse a
SAM_PERSISTENT , para indicar que la pérdida
del mensaje no es aceptable, o
SAM_NON_PERSISTENT , si la pérdida del mensaje es
aceptable. El comportamiento resultante del envío variará
dependiendo de las funcionalidades del servidor de mensajería al que esté conectado
actualmente el script PHP. Si el servidor no soporta
los mensajes persistentes y SAM_PERSISTENT es
especificado, la petición de envío fallará con un error
indicando que la funcionalidad no está disponible.
|
SAM_PRIORITY | Un valor numérico entre 0 y 9 que indica la prioridad de envío del mensaje deseada. Un valor de prioridad de 0 indica la menor prioridad mientras que 9 indica la mayor prioridad. Si no se especifica prioridad, se asignará un valor por defecto que dependerá del servidor de mensajería que está siendo utilizado. |
SAM_CORRELID | Una cadena a asignar como el identificador de correlación para este mensaje. Si no se especifica ningún valor, el servidor de mensajería puede asignar un valor automáticamente. |
SAM_TIMETOLIVE | La duración en milisegundos que indica cuanto tiempo el servidor de mensajería debe retener el mensaje en una cola antes de descartarlo. El valor por defecto es 0 indicando que el mensaje debe retenerse indefinidamente. |
SAM_WMQ_TARGET_CLIENT | Esta propiedad es válida únicamente cuando se utilice WebSphere MQ e indica si la cabecera RFH2 debe incluirse o no dentro del mensaje. Esta opción puede definirse con 'jms' o 'mq'. El valor por defecto es 'jms' que significa que se incluye una cabecera RFH2. Si se especifica el valor 'mq' entonces no se incluye RFH2 en el mensaje. |
Una cadena con el identificador de correlación que puede utilizarse en una llamada de recepción, como
selector para obtener todas las respuestas solicitadas o FALSE
en caso de error.
Nota:
Un identificador de correlación sólo será devuelto por un envío con éxito a la cola de destinación (queue://xxxx) y en ese caso reflejará la identidad del mensaje de la cola. En caso de un envio que esté siendo utilizado para publicar datos en un asunto, el valor de retorno será
TRUE
puesto que ningún identificador de correlación estará disponible para ser devuelto.
Ejemplo #1 Enviar un mensaje a una cola
<?php
$msg = new SAMMessage('Este es un mensaje simple');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
// El envío falló!
echo "Envío fallido ($conn->errno) $conn->error";
}
?>
Ejemplo #2 Publicar un mensaje en un asunto
<?php
$msg = new SAMMessage('Este es un mensaje simple');
if (!$conn->send('topic://test', $msg)) {
// El envío falló!
echo "Envío fallido ($conn->errno) $conn->error";
}
?>
Ejemplo #3 Enviar una solicitud y recibir una respuesta
<?php
$msg = new SAMMessage('Este es un mensaje simple');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);
if (!$correlid) {
// El envío falló!
echo "Envío fallido ($conn->errno) $conn->error";
} else {
$resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>