3

我在嵌入式配置中使用 HornetQ,配置对象本身以编程方式创建。该应用程序支持动态地址创建。

我希望能够在创建新地址时设置某些选项:页面文件使用、最大页面文件大小、分页的内存阈值。根据HornetQ 文档,这需要按地址完成。

我尝试使用新地址的设置更新我的配置对象,但服务器(已经启动)不使用这些新设置。

有没有办法在服务器启动后告诉服务器每个地址的设置?

或者,我可以告诉服务器在我启动之前自动分页所有地址吗?

4

1 回答 1

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);

或者,可以在配置对象上设置所有地址的设置(基于此 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);
于 2012-05-24T14:55:26.783 回答