1

(几天前我已经在 glassfish 论坛上发布了这个,但还没有运气:-)

情况:我部署了一个通过 @ConfigProperty 注释配置的 JCA 资源适配器 (RA)。

public class MyResourceAdapter implements ResourceAdapter {
    @ConfigProperty(defaultValue = "9000", type = Integer.class, supportsDynamicUpdates = false)
    private Integer port;
}

我还部署了一个使用 RA 的应用程序。

@MessageDriven(name = "MY_MDB", messageListenerInterface = MyMessageEndpoint.class)
public class MyMessageDrivenBean implements MyMessageEndpoint {
    // some method required in MyMessageEndpoint to process calls from the RA
}

现在我想通过创建资源适配器配置来通过管理控制台更改配置属性。现在,当我更改配置属性时,JCA 规范指出 RA 必须停止并重新启动。到目前为止,一切正常。

但规范还在第 5.3.4.1 章中说明了以下内容:

第一阶段

在调用 ResourceAdapter JavaBean 的 stop 方法之前,应用服务器必须确保所有使用特定资源适配器实例的依赖应用程序都停止。这包括停用所有通过特定资源适配器接收消息的消息端点。但是请注意,由于依赖应用程序通常在取消部署之前无法停止,因此应用程序服务器可能必须延迟停止资源适配器实例,直到所有此类依赖应用程序都取消部署。

如果我做对了,这意味着我的应用程序也应该停止(可能也重新启动),但这不会发生。这导致我同时部署了资源适配器和应用程序,但 RA 并不“知道”应用程序/消息端点。

现在我的问题是:这是一个错误还是我在这里错过了什么?

PS我的glassfish版本是3.1.1。资源适配器在JCA 1.6上运行。

4

0 回答 0