我们使用 Payara 服务器版本 5 和 6,在其上配置了多个 JMS 目标。 这些是通过 asadmin 命令行工具配置的,如下所示:
./asadmin --Port=4848 create-jms-resource
--resType=javax.jms.Queue
--property=Name=lokal.test
--force=false
--enabled=true jms/transport/test
我现在遇到的问题是,我需要为此 JMS 目标配置最大消息大小,因为默认值太小。 (payara默认为10MB) 这应该使用 asadmin 命令行工具来完成。使用 GUI 不是一个选项,因为我需要自动化该行为。
我已经尝试将属性
MaxBytesPerMsg
设置为 -1(无限制)来尝试一下。 (根据https://javaee.github.io/glassfish/doc/5.0/reference-manual.pdf第137页)
然而,即使在重新启动 payara 后,这也没有任何作用。该值仍设置为 10MB。
使用 imqcmd (https://docs.oracle.com/cd/E19253-01/816-5166/6mbb1kq38/index.html) 是可能的,但这会是一个问题,因为我们需要将此工具部署在多个服务器。
我希望有可能使用 asadmin 工具设置此属性,特别是使用与此类似的 JMS 目标的属性:
set resources.admin-object-resource.jms/transport/test.property.MaxBytesPerMsg=-1
但是我似乎找不到合适的属性名称。
有谁知道使用 asadmin 命令行工具执行此操作的方法吗? 任何帮助将不胜感激!
遗憾的是,没有人可以帮助我,我找到了一种解决方法,可以帮助那些遇到类似问题的人。
我没有发现任何使用 asadmin 命令设置此属性的可能性。相反,我能够将属性写入域文件夹中的特定文件中以设置属性。
只需转到
../<domainFolder>/<domainName>/imq/instances/imqbroker/props
并打开 config.properties
文件。
在文件末尾,您可以添加 imq.autocreate.destination.maxBytesPerMsg=80M
,例如,将所有 JMS 队列的每条消息的最大字节数设置为 80 MB。
此文件和目录仅在域首次启动后自动创建,并且只有在域不再运行时才写入该文件以避免出现问题。 将属性写入此文件适用于 Windows 系统和 Linux。
就我而言,我只是在域设置工具中实现了这一点,该工具现在在配置、启动和停止域后写入 config.properties 文件。
我知道这不是最优雅的解决方案,但至少它有效。如果有人知道如何使用 asadmin 命令设置它,我仍然非常感激!