Métodos de Publicação/Assinatura do

Os nós do suportam um subconjunto limitado da capacidade de do .

Publish

Como ocorre com todas as mensagens destinadas a uma fila de pontes que vão para o , um tipo de mensagem deve ser especificado.Para uma mensagem de publicação, ele é MQeMbMsgObject.TYPE_PUB.

Os nomes de campos disponíveis são os seguintes:

MQeMbMsgObject.TOPIC
Contém uma cadeia com o único tópico em que ocorrerá a publicação. Esse atributo é mandatório.
MQeMbMsgObject.RETAINED
Contém um valor Boolean. Se estiver definido como true, a publicação ficará retida e, portanto, os clientes assinantes com assinatura cancelada receberão o último valor publicado para o tópico especificado. Esse atributo é opcional. Se não for especificado, o valor padrão será false (não retido).
MQeMbMsgObject.MQ_Persistence
Contém um valor inteiro contendo o valor de persistência da mensagem. O valor '0' representa uma mensagem não persistente. O valor '1' representa uma mensagem persistente.
MQeMbMsgObject.MESSAGE
Contém uma matriz de bytes que representa a carga útil da mensagem. Esse campo é mandatório.
Este é um exemplo de código:
try
{
      System.out.println("Local QM Name: " + myQM.getName());

      MQeMsgObject mqeMsg = new MQeMsgObject();
      mqeMsg.putInt(MQeMbMsgObject.TYPE_OF_MSG, MQeMbMsgObject.TYPE_PUB);
      mqeMsg.putAscii(MQeMbMsgObject.TOPIC, "Weather");
      mqeMsg.putArrayOfByte(MQeMbMsgObject.MESSAGE, asciiToByte("Hello");
      mqeMsg.putBoolean(MQeMbMsgObject.RETAINED, true);

      System.out.println("..Put message to QM/queue: " + destQueueManager +
                                            "/" + destBridgeQueue);
      myQM.putMessage(destQueueManager, destBridgeQueue, mqeMsg, null, 0);
      System.out.println("Finished");
}
catch (Exception e)
{
      e.printStackTrace();
   System.out.println("Failed! " + e);
}

Assinar

O tipo de mensagem que deve ser especificado para uma mensagem de assinatura é MQeMbMsgObject.TYPE_SUB. Os nomes de campos disponíveis são os seguintes:

MQeMbMsgObject.TOPIC
Contém uma matriz de cadeias contendo tópicos nos quais ocorrerá a assinatura.
MQeMbMsgObject.MQ_DestQueueMgr
Esse é o nome do gerenciador de filas de retorno do para o qual serão enviadas mensagens publicadas.
MQeMbMsgObject.MQ_DestQueueName
Esse é o nome da fila de retorno do para a qual serão enviadas mensagens publicadas.
Este é um exemplo de código:
try {
      System.out.println("Local QM Name: " + myQM.getName());

      MQeMsgObject mqeMsg = new MQeMsgObject();
      mqeMsg.putInt(MQeMbMsgObject.TYPE_OF_MSG, MQeArgoLaunch.TYPE_SUB);
      mqeMsg.putAsciiArray(MQeMbMsgObject.TOPIC, new String[]
                                                  {"Topic1", "Topic2", "Topic3"});
      mqeMsg.putAscii(MQeMbMsgObject.MQ_DestQueueName, "Inbox");
      mqeMsg.putAscii(MQeMbMsgObject.MQ_DestQueueMgr, "ServerQM1");

      System.out.println("..Put message to QM/queue: " + destQueueManager +
                                            "/" + destBridgeQueue);
      myQM.putMessage(destQueueManager, destBridgeQueue, mqeMsg, null, 0);
      System.out.println("Finished");
}
catch (Exception e)
{
      e.printStackTrace();
   System.out.println("Failed! " + e);
}

Cancelar Assinatura

O tipo de mensagem que deve ser especificado para uma mensagem de cancelamento de assinatura é MQeMbMsgObject.TYPE_UNSUB. Os nomes de campos disponíveis são os seguintes:

MQeMbMsgObject.TOPIC
Contém uma matriz de cadeias contendo tópicos nos quais ocorrerá o cancelamento de assinatura.
MQeMbMsgObject.MQ_DestQueueMgr
Esse é o nome do gerenciador de filas de retorno do para o qual serão enviadas mensagens publicadas.
MQeMbMsgObject.MQ_DestQueueName
Esse é o nome da fila de retorno do para a qual serão enviadas mensagens publicadas.
Este é um exemplo de algum código:
try {
      System.out.println("Local QM Name: " + myQM.getName());
      MQeMsgObject mqeMsg = new MQeMsgObject();
      mqeMsg.putInt(MQeMbMsgObject.TYPE_OF_MSG, MQeArgoLaunch.TYPE_UNSUB);
      mqeMsg.putAsciiArray(MQeMbMsgObject.TOPIC, new String[]
                                                  {"Topic1", "Topic2", "Topic3"});
      mqeMsg.putAscii(MQeMbMsgObject.MQ_DestQueueName, "Inbox");
      mqeMsg.putAscii(MQeMbMsgObject.MQ_DestQueueMgr, "ServerQM1");

      System.out.println("..Put message to QM/queue: " + destQueueManager
                                            + "/" + destBridgeQueue);
      myQM.putMessage(destQueueManager, destBridgeQueue, mqeMsg, null, 0 );
      System.out.println("Finished");
}
catch (Exception e)
{
      e.printStackTrace();
   System.out.println("Failed! " + e);
}
No momento, o não suporta recursos adicionais não descritos aqui.As mensagens suportadas no , tais como, atualização de pedido, não são suportadas.

Conceitos relacionados

Mensagens do

Referências relacionadas

Métodos Ponto-a-Ponto do