我有一个EJB在服务器上运行的应用程序,Glassfish它将数据存储在MySQL我称之为全局数据库的数据库中。我有两个确切的远程 Swing 应用程序,它们是EJB's使用RMI. 他们有自己的本地数据库,以防连接丢失。
我的目标是实现两阶段提交协议,即让一个参与者作为协调者,其他人作为参与者。
我能想到的一种方法是使用JMS即跨队列发送消息并使远程客户端侦听这些消息并采取适当的措施来实现。我这样做是在 Swing 应用程序之一的 Buttonclick 上发送消息。问题是,即使我已经实现了困难MessageListener,onMessage()方法也没有收到其他客户端的任何消息。
每个远程客户端都有以下属性集:
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
这是为了连接到Glassfish服务器并访问我已经配置的connectionFactory和。Queue
是因为只允许在服务器上运行的应用程序而不是远程应用程序接收消息吗?
欢迎任何有关 2 台 PC 拓扑的建议。