我在嵌入式配置中使用 HornetQ,配置对象本身以编程方式创建。该应用程序支持动态地址创建。
我希望能够在创建新地址时设置某些选项:页面文件使用、最大页面文件大小、分页的内存阈值。根据HornetQ 文档,这需要按地址完成。
我尝试使用新地址的设置更新我的配置对象,但服务器(已经启动)不使用这些新设置。
有没有办法在服务器启动后告诉服务器每个地址的设置?
或者,我可以告诉服务器在我启动之前自动分页所有地址吗?
我在嵌入式配置中使用 HornetQ,配置对象本身以编程方式创建。该应用程序支持动态地址创建。
我希望能够在创建新地址时设置某些选项:页面文件使用、最大页面文件大小、分页的内存阈值。根据HornetQ 文档,这需要按地址完成。
我尝试使用新地址的设置更新我的配置对象,但服务器(已经启动)不使用这些新设置。
有没有办法在服务器启动后告诉服务器每个地址的设置?
或者,我可以告诉服务器在我启动之前自动分页所有地址吗?
发布后不久找到答案:您可以使用嵌入式服务器的分页管理器:
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);