【问题标题】:Slow deployment from NetBeans 11.3 to Payara4/5 due to JMS destination?由于 JMS 目标,从 NetBeans 11.3 到 Payara4/5 的部署缓慢?
【发布时间】:2020-04-24 06:33:35
【问题描述】:

这个问题是关于使用 NetBeans/Payara 开发 J2EE。

自从使用 NetBeans 11.3 后,将我的 EAR-Project 部署到 payara 真的很慢。

问题:

我的 EJB 模块中有大约 20 个消息驱动的 bean,每个 其中一个以下输出被写入控制台 部署期间:

End point determines destination name, Res name: javax.jms.Queue, JNDI name: java:global/jms/<queuename>
    descriptor name : <MDB-Name>|#]

这对我来说没问题,如果不是每次出现这样的一行都需要几秒钟 部署继续进行,因此部署持续时间约为 120 秒。应该是 10 秒左右。

设置:

在 NetBeans 8.2 和 payara 4.1.x 中没问题。

然后我升级到 NetBeans 11.3 -> 行为缓慢。

然后我升级到 payara 5.201 -> 在那里它像魅力一样工作了几次,但第二天: 再次,部署非常缓慢。我真的不知道为什么。

在 Win 10、JDK 1.8 上运行

消息被推送到队列中,如下所示:

@Stateless
public class MyMessageSource {

    @Inject
    JMSContext context;

    @Resource(mappedName = "java:module/jms/customeredited")
    private Queue customerEdited;
    ...

    private void sendToJMSQueue(Serializable container, Queue queue) {
        context.createProducer().send(queue, container);
    }
}

MDB 看起来像:

@JMSDestinationDefinition(name = "java:module/jms/customeredited", 
        interfaceName = "javax.jms.Queue", 
        resourceAdapter = "jmsra", 
        destinationName = "customeredited")
@MessageDriven(mappedName = "java:module/jms/customeredited")
public class CustomerEditedHandler implements MessageListener {

    @EJB //Also tried @Inject
    private SomeService ...;

    public CustomerEditedHandler() {
    }

    @Override
    public void onMessage(Message message) {
       //...do things...
    }

我尝试了项目属性中的一些设置,例如在构建 -> 编译中。

我尝试了@JMSDestinationDefinition、@MessageDriven 和 in 的不同配置 我在 Internet 上找到了 MyMessageSource,但没有任何帮助。

我还尝试通过@Inject 替换@EJB。

有人对我有什么想法或建议吗?

如果您需要更多信息,请告诉我!

问候, 斯蒂芬

【问题讨论】:

    标签: java netbeans jms payara


    【解决方案1】:

    我自己解决了这个问题。 如果有人关心问题是什么:

    这不是 NetBeans、Payara 或 J2EE 问题。 这是由我使用的与我们公司的 VPN 连接引起的,因此我可以在家办公。 我猜服务器正在通过 Internet 绕道而行,然后再次返回注意到端口 7676 (JMS-Port) 正在本地计算机上运行。

    圣牛。

    现在我必须找到解决方法...

    问候, 斯蒂芬

    【讨论】:

    • 您是否通过glassfish-resources.xml 文件指定了某些内容?也许你被这样的事情击中:github.com/payara/Payara/issues/4477 否则我会检查你指定为 JMS 主机的内容。也许您指定了完整的 DNS 名称,而不是 IP 或 localhost,这将通过 DNS 解析器并可能需要一些时间。
    • 您好克里斯托夫约翰,感谢您的回答!是的,我阅读了这篇文章并尝试了这些事情。抱歉没有写。它不能解决问题。我还没有找到如何指定 JMS 主机的方法。它始终绑定到“0.0.0.0”。据我了解,它绑定到“所有”(或不可路由的)IP 地址,您可能是对的,因此解决它们需要一些时间。 (1/2)
    • 然后我尝试将 JMS 服务的类型从“嵌入式”设置为“本地”。这解决了部署缓慢的问题,但导致了一些 JMS 异常,而且我没有时间弄清楚如何重新配置​​我的所有东西以使事情再次正常运行。目前,我在开发时断开 VPN,在做其他工作时重新连接。 :) (2/2)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多