Конфиг, который я могу изменить во время сборки. Это гласит:

ствую, что это должно быть легко. Просто RTM и вперед. Но я не могу найти нужную мне информацию.

Q: Могу ли я изменить значение@ActivationConfigProperty во время развертывания без необходимости писать какие-либо XML?

Подробнее

У меня есть MDB, который использует@MessageDriven аннотаций. В этом ряду@ActivationConfigProperty аннотации для его настройки.

@MessageDriven(mappedName = "jms/TestJeremyTopic ", activationConfig = {
        @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
        @ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
        @ActivationConfigProperty(propertyName = "clientId", propertyValue = "TopicReaderBeanClientId"),
        @ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "TopicReaderBeanSubscriptionName")
})
public class TopicReaderBean implements MessageListener { // ...

Мне нужно развернуть этот MDB несколько раз, каждый раз обращаясь к другой теме.

Во время развертывания (WebSphere 7 ND) я могу настроить отдельныйTopicListenerPort (Способ отображения различных тем в WebSphere) для каждого EAR. Однако, когда я пытаюсь запустить второй экземпляр, происходит сбой с ошибкой:

WMSG0019E: Невозможно запустить прослушиватель MDB TopicReaderBean, JMSDestination jms / MMiSInLonTopic: com.ibm.msg.client.jms.DetailedIllegalStateException: JMSWMQ0026: Не удалось подписаться на тему «MMIS_LON_IN» с помощью MQS. Возможно, возникла проблема при создании подписки из-за ее использования другим получателем сообщений. Убедитесь, что все потребители сообщений, использующие эту подписку, закрыты, прежде чем пытаться создать новую подписку с тем же именем. Пожалуйста, смотрите связанное исключение для получения дополнительной информации. Причина: com.ibm.mq.MQException: JMSCMQ0001: сбой вызова WebSphere MQ с кодом 2 '(' MQCC_FAILED ') причины' 2429 '(' MQRC_SUBSCRIPTION_IN_USE ').

Когда я смотрю в MQ Explorer, я вижу название подпискиJMS:GGWKNNG5:gmm_poc_06:TopicReaderBeanSubscriptionName Это состав из "JMS", имени QueueManager, идентификатора фабрики соединений с темой и ActivationConfigProperty "subscriptionName". Второе подключение не удается из-за конфликта на этом имени подписки. Мне нужно различать имена подписок, используемые разными экземплярами MDB.

Хотя я мог бы создать новую фабрику соединений тем для каждого компонента, это было бы много работы и не имеет особого смысла.

какаяделает имеет смысл иметь другое имя подписки для одного компонента. Однако это свойство встроено в аннотацию, и я не вижу нигде в WebSphere, который позволил бы мне переопределить его.

Итак, я могу переопределить это свойство без необходимости писать дескриптор развертывания XML? И если яделать нужно написать какой-то XML, как мне переопределить свойство в нем?

Ответы на вопрос(1)

Ваш ответ на вопрос