IBM MQ передает слушателя

Почему не только делают фактический UISearchBar меньшим горизонтально и размещают (пустой) UINavigationBar направо от него? Они представят тот же самый фон.

Лучше, чем взламывание внутренностей объектов Apple, которые могли измениться.

кроме того, при анимации ширины UISearchBar, Вы заметите, что внутреннее текстовое поле не анимировано наряду с нею. Можно зафиксировать это путем вызова "layoutSubviews" UISearchBar в блоке анимации после изменения его кадра. (это - то, где это определяет размер внутреннего текстового поля)

5
задан T.Rob 5 September 2010 в 02:38
поделиться

3 ответа

Взгляните на справку IBM: Написание базовых приложений Java WebSphere MQ

У IBM есть API для взаимодействия с очередями. Вот их образец:

import com.ibm.mq.*;            // Include the WebSphere MQ classes for Java package


public class MQSample
{
  private String qManager = "your_Q_manager";  // define name of queue
                                               // manager to connect to.
  private MQQueueManager qMgr;                 // define a queue manager
                                               // object
  public static void main(String args[]) {
     new MQSample();
  }

  public MQSample() {
   try {

      // Create a connection to the queue manager

      qMgr = new MQQueueManager(qManager);

      // Set up the options on the queue we wish to open...
      // Note. All WebSphere MQ Options are prefixed with MQC in Java.

      int openOptions = MQC.MQOO_INPUT_AS_Q_DEF |
                        MQC.MQOO_OUTPUT ;

      // Now specify the queue that we wish to open,
      // and the open options...

      MQQueue system_default_local_queue =
              qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE",
                               openOptions);

      // Define a simple WebSphere MQ message, and write some text in UTF format..

      MQMessage hello_world = new MQMessage();
      hello_world.writeUTF("Hello World!");

      // specify the message options...

      MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the // defaults,
                                                           // same as MQPMO_DEFAULT

      // put the message on the queue

      system_default_local_queue.put(hello_world,pmo);

      // get the message back again...
      // First define a WebSphere MQ message buffer to receive the message into..

      MQMessage retrievedMessage = new MQMessage();
      retrievedMessage.messageId = hello_world.messageId;

      // Set the get message options...

      MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults
                                                           // same as  MQGMO_DEFAULT
      // get the message off the queue...

      system_default_local_queue.get(retrievedMessage, gmo);

      // And prove we have the message by displaying the UTF message text

      String msgText = retrievedMessage.readUTF();
      System.out.println("The message is: " + msgText);
      // Close the queue...
      system_default_local_queue.close();
      // Disconnect from the queue manager

      qMgr.disconnect();
    }
      // If an error has occurred in the above, try to identify what went wrong
      // Was it a WebSphere MQ error?
    catch (MQException ex)
    {
      System.out.println("A WebSphere MQ error occurred : Completion code " +
                         ex.completionCode + " Reason code " + ex.reasonCode);
    }
      // Was it a Java buffer space error?
    catch (java.io.IOException ex)
    {
      System.out.println("An error occurred whilst writing to the message buffer: " + ex);
    }
  }
} // end of sample

Я не уверен, находятся ли jar-файлы IBM в базовом репозитории Maven. Я знаю, что в прошлом мне приходилось извлекать их из локальной установки IBM и помещать в локальное репозиторий SVN. Я использую следующие jar-файлы:

<dependency>
    <groupId>com.ibm</groupId>
    <artifactId>com.ibm.mq</artifactId>
    <version>5.3.00</version>
    <scope>compile</scope>
</dependency>
    <dependency>
    <groupId>com.ibm</groupId>
    <artifactId>com.ibm.mq.pcf</artifactId>
    <version>5.3.00</version>
    <scope>compile</scope>
</dependency>
    <dependency>
    <groupId>com.ibm</groupId>
    <artifactId>com.ibm.mqbind</artifactId>
    <version>5.3.00</version>
    <scope>compile</scope>
</dependency>
    <dependency>
    <groupId>com.ibm</groupId>
    <artifactId>com.ibm.mqjms</artifactId>
    <version>5.3.00</version>
    <scope>compile</scope>
</dependency>
5
ответ дан 18 December 2019 в 06:51
поделиться

Взгляните на приведенный выше образец.

В частности, в строках

MQGetMessageOptions gmo = new MQGetMessageOptions();       
system_default_local_queue.get(retrievedMessage, gmo);

Вы можете настроить получение на ожидание в течение определенного времени перед выбросом исключения MQRC_NO_MSG_AVAILABLE. Или вы можете ждать вечно.

gmo.waitInterval= qTimeout;
gmo.options = MQC.MQGMO_WAIT

Таким образом, вы можете создать поток, который постоянно ищет новые сообщения, а затем передает их обработчику. Получение и размещение не обязательно должны выполняться в одном потоке или даже в одном приложении.

Надеюсь, это поможет ответить на ваш вопрос.

3
ответ дан 18 December 2019 в 06:51
поделиться

Несмотря на то, что существует Java API WMQ, как отмечалось предыдущими респондентами, WMQ также поддерживает JMS, поэтому вот некоторые ресурсы чтобы вы начали там.

Взгляните на эту статью: Технический журнал IBM WebSphere Developer: Запуск автономного Java-приложения на WebSphere MQ V6.0

Кроме того, если вы установили полный клиент WMQ, а не просто захватили jar-файлы, тогда у вас будет установлено множество примеров кода. По умолчанию они будут находиться в C: \ Program Files \ IBM \ WebSphere MQ \ tools \ jms или / opt / mqm / samp в зависимости от вашей платформы.

Если вам нужен установочный носитель клиента WMQ, получите его здесь . Обратите внимание, что это клиент WMQ v7, а не клиент v6. Он совместим с v6 QMgr, но так как v6 закончился по состоянию на сентябрь 2011 года, вам следует заняться новой разработкой на клиенте v7 и, если возможно, на v7 QMgr. Если обе стороны - v7, доступно множество функциональных улучшений и улучшений производительности.

Вы можете получить руководство продукта здесь , если оно вам нужно.

Наконец, при получении исключения JMS убедитесь, что вы печатаете связанное исключение. Это не WMQ, а JMS. Sun предоставила многоуровневую структуру данных для исключений JMS, и действительно интересные части часто находятся на вложенном уровне. Это не имеет большого значения и может быть реализовано в нескольких строках:

try {
  .
  . code that might throw a JMSException
  .
} catch (JMSException je) {
  System.err.println("caught "+je);
  Exception e = je.getLinkedException();
  if (e != null) {
    System.err.println("linked exception: "+e);
  } else {
    System.err.println("No linked exception found.");
  }
}

Это помогает определить разницу между ошибкой JMS и ошибкой транспорта. Например, ошибкой безопасности JMS может быть WMQ 2035, или это может быть конфигурация JSSE, или приложение может не иметь доступа к чему-то в файловой системе. Только одно из них стоит потратить много времени на копание в журналах ошибок WMQ, и только распечатав связанное исключение, вы сможете определить, это ли оно.

6
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: