Врезанный Glassfish и `imqcmd` - PullRequest
       43

Врезанный Glassfish и `imqcmd`

3 голосов
/ 27 марта 2012

Мы используем встроенный сервер Glassfish в нашей среде тестирования.Мы используем интерфейс org.glassfish.embeddable.CommandRunner для выполнения административных задач (т. Е. То, что мы делаем с asadmin со стандартным автономным сервером Glassfish)

Пример:

GlassFish glassfish = GlassFishRuntime.bootstrap( bp ).newGlassFish( gfp );
CommandRunner commandRunner = glassfish.getService( CommandRunner.class );
commandRunner.run(
  "create-jms-resource",
  "--restype",
  "javax.jms.Queue",
  "SOME_QUEUE_NAME"
);

Теперь в командной строкеЯ могу установить параметры очереди с imqcmd.Например,

imqcmd -u admin -passfile ../password.txt update dst -n SOME_QUEUE_NAME -t q -o maxBytesPerMsg=-1 -f

Есть ли способ добиться того же с помощью встроенного сервера Glassfish?

1 Ответ

4 голосов
/ 04 июня 2012

Вместо использования imqcmd вы можете использовать подкоманду asadmin create-jmsdest для создания физического места назначения JMS.

Из документации на create-jmsdest:

Как правило, вы используете подкоманду create-jms-resource для создания ресурса назначения JMS, который имеет свойство Name, которое указывает физическое назначение. Физический пункт назначения создается автоматически при запуске приложения, которое использует ресурс назначения. Используйте субкоманду create-jmsdest, если вы хотите создать физическое назначение с нестандартными настройками свойств.

Если вы не укажете свойство Name для create-jms-resource, имя физического места назначения будет иметь то же имя, что и ресурс места назначения (заменяя любую косую черту в имени JNDI подчеркиванием).

Таким образом, команды asadmin, которые вы хотите выполнить, например:

create-jms-resource --restype javax.jms.Queue org/example/foo/SomeQueue
create-jmsdest --desttype queue --property maxBytesPerMsg=-1:maxTotalMsgBytes=-1 org_example_foo_SomeQueue

Обратите внимание, что (в отличие от imqcmd update dst) create-jmsdest не обновляет свойства, если ресурс уже существует. Поэтому не следует запускать приложение между двумя командами, в противном случае ресурс автоматически создается со свойствами по умолчанию.

Если вам нужно обновить свойства, вы можете сначала удалить физический пункт назначения, например, например. asadmin delete-jmsdest org_example_foo_SomeQueue.

...