JMS受管对象是那些包含JMS配置信息的对象,这些配置信息由JMS管理员创建,然后由客户端使用。它们让管理企业中的JMS应用变得具有可操行性。
虽然受管对象的接口不显式地依赖JNDI,但是JMS约定JMS客户端是通过使用JNDI在命名空间中查找而发现受管对象的。
管理员可以将受管对象放到命名空间的任何位置。JMS没有定义命名策略。 这种将JMS和管理区分开来的策略有几个好处:
受管对象不应该持有任何远程资源。它的查找不应该使用远程资源,除了那些JNDI自身使用的资源以外。
客户端应当把受管对象看作是本地Java对象。查找它们不应该有任何隐藏的副作用或意料之外的大量本地资源使用。
JMS定义了两类受管对象:Destination和ConnectionFactory。
JMS期望提供者为管理员提供在JNDI命名空间里创建和配置受管对象的工具。JMS提供者提供的受管对象的实现应该同时是javax.naming.Referenceable和java.io.Serializable 的,以便它们能够被存储在所有的JNDI命名上下文中。另外,JMS建议这些实现遵循JavaBean设计模式。