glassfish中 ManagedResource ManagedObject 有什么区别
时间: 2023-12-31 20:05:24 浏览: 246
在 GlassFish 中,`@ManagedResource` 和 `@ManagedObject` 都是使用 gmbal 实现的 JMX MBean 的注解,但它们的使用场景略有不同。
`@ManagedResource` 注解用于标记一个类作为 JMX MBean 的资源,可以用来配置该资源的名称、描述等信息。一般情况下,一个类只会使用 `@ManagedResource` 注解一次。
`@ManagedObject` 注解用于标记一个类作为 JMX MBean 的实例,可以用来配置该实例的名称、描述等信息。一般情况下,一个类的每个实例都会使用 `@ManagedObject` 注解一次。
例如,在 GlassFish 中,一个 EJB 可以被标记为 `@ManagedResource`,表示它是一个 JMX MBean 的资源,而该 EJB 的每个实例可以被标记为 `@ManagedObject`,表示它是一个 JMX MBean 的实例。
总的来说,`@ManagedResource` 和 `@ManagedObject` 注解都是用于配置 JMX MBean 的元数据信息,但它们的作用略有不同。`@ManagedResource` 注解用于配置 MBean 的资源级别的元数据信息,而 `@ManagedObject` 注解用于配置 MBean 实例级别的元数据信息。
相关问题
举例说明glassfish中 ManagedResource ManagedObject 有什么区别
在 GlassFish 应用服务器中,ManagedResource 和 ManagedObject 都是管理资源的机制。它们的区别在于:
1. ManagedResource 是 GlassFish 中管理的基本资源单元,它是一组可管理的属性和方法。可以将其视为一个具有一组属性和行为的 Java 对象。ManagedResource 可以包含一个或多个 ManagedObject。
2. ManagedObject 是 ManagedResource 的一部分,它是 ManagedResource 中某个属性的具体实现。ManagedResource 通过 ManagedObject 来管理属性。每个 ManagedObject 都有一个唯一的名称和一组属性,这些属性可以通过 JMX 访问和管理。
因此,ManagedResource 和 ManagedObject 是 GlassFish 中管理资源的两个不同层次,ManagedResource 是更高层次的资源管理机制,而 ManagedObject 是 ManagedResource 的一部分,用于实现具体的属性管理。
举例说明glassfish中 ManagedResource ManagedObject
在 GlassFish 应用服务器中,ManagedResource 和 ManagedObject 都是管理资源的机制。下面我将以 JDBC 连接池为例,来举例说明 ManagedResource 和 ManagedObject 的使用。
在 GlassFish 中,JDBC 连接池是一种资源,可以通过 ManagedResource 和 ManagedObject 来进行管理。在这个例子中,JDBC 连接池是 ManagedResource,而数据源是 ManagedObject。
具体来说,一个 JDBC 连接池可以有多个数据源,每个数据源都有一个名称、一个连接 URL、一个用户名、一个密码等属性。在 GlassFish 中,这些属性可以通过 ManagedObject 进行管理。
例如,我们可以通过以下命令在 GlassFish 中创建一个名为 myPool 的 JDBC 连接池:
```
asadmin create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource --property user=root:password=123456:url=jdbc:mysql://localhost:3306/test myPool
```
在这个命令中,我们指定了连接池的资源类型、数据源类名、属性等信息。其中,--property 参数指定了数据源的属性,这些属性将作为 ManagedObject 进行管理。
一旦创建了 JDBC 连接池,我们就可以使用 JMX 来管理其中的数据源。例如,我们可以使用 JConsole 连接到 GlassFish 中的 MBean 服务器,然后找到 myPool 的 MBean,从而访问其中的 ManagedObject。
在 JConsole 中,我们可以找到 myPool 的 MBean,然后展开它,可以看到其中包含了多个 ManagedObject,每个 ManagedObject 都代表一个数据源。我们可以通过这些 ManagedObject 来查看和修改数据源的属性,例如修改用户名和密码等。
总之,ManagedResource 和 ManagedObject 是 GlassFish 中管理资源的两个不同层次,ManagedResource 是更高层次的资源管理机制,而 ManagedObject 是 ManagedResource 的一部分,用于实现具体的属性管理。在 GlassFish 中,JDBC 连接池就是一个很好的例子,演示了 ManagedResource 和 ManagedObject 的使用方法。
阅读全文