我在嵌入式配置中使用HornetQ,其中Configuration对象本身以编程方式创建。该应用程序支持动态地址创建。
我希望能够在创建新地址时设置某些选项:页面文件使用,最大页面文件大小,分页内存阈值。根据{{3}},这需要按地址完成。
我尝试使用新地址的设置更新配置对象,但服务器(已经启动)不使用这些新设置。
有没有办法在服务器启动后告诉服务器有关每个地址的设置?
或者,我可以告诉服务器在启动之前自动寻找所有地址吗?
答案 0 :(得分:3)
在发布后不久找到答案:您可以使用嵌入式服务器的分页管理器:
final AddressSettings addressSetting = new AddressSettings();
addressSetting.setMaxSizeBytes(10 * 1024 * 1024); // 10 MB
addressSetting.setPageSizeBytes(1024 * 1024); // 1 MB
server.getPagingManager().getPageStore(new SimpleString(addressName))
.applySetting(addressSetting);
或者,可以在配置对象上设置所有地址的设置(基于this SO answer):
final Configuration hornetConfig = new ConfigurationImpl();
// other configuration...
final AddressSettings addressSetting = new AddressSettings();
addressSetting.setMaxSizeBytes(10 * 1024 * 1024); // 10 MB
addressSetting.setPageSizeBytes(1024 * 1024); // 1 MB
final Map<String, AddressSettings> addressing = new HashMap<String, AddressSettings>();
addressing.put("#", addressSetting); // the # pattern matches all addresses
hornetConfig.setAddressesSettings(addressing);