documentation for the Hazelcast JCA resource adapter显示了如何获取Hazelcast连接并在Hazelcast映射上放置值。但是,我没有看到如何收听主题的任何示例。
我已经尝试过这样做(在Thorntail上),但是它似乎与JCA的基于连接和基于事务的特性不能很好地兼容:
Context ctx = new InitialContext();
ConnectionFactory hzConnectionFactory = (ConnectionFactory) ctx.lookup("java:/HazelcastCF");
HazelcastInstance hazelcastInstance = (HazelcastInstance) hzConnectionFactory.getConnection();
hazelcastInstance.getTopic("mytopic").addMessageListener(listener);
Thorntail的事务管理模块(Ironjacamar)不断给我这些错误,并且有时整个JVM内存不足:
ERROR [org.jboss.jca.core.connectionmanager.listener.TxConnectionListener] (ServerService Thread Pool -- 46) IJ000315: Pool HazelcastConnectionFactory has 1 active handles
理想情况下,可以使用消息驱动的bean来监听Hazelcast主题(在这种情况下,连接和事务管理将由容器负责),但JCA资源适配器似乎无法实现。
有人在Wildfly / Thorntail上工作吗?如果是这样,怎么做?