型的 Spring bean 的一个实例,该类型的 Spring bean 可以使用 JNDI 连接来查找 JMS 连接工厂。
为了使综合消息负载的组成灵活一些,JMSCollector 被配置了名为 org.runtimemonitoring.spring.collectors.jms.ISyntheticMessageFactory 的接口的一组实现。实现这个接口的对象提供了一组测试消息。收集器会调用每一个配置的工厂,并使用所提供的消息来执行往返测试。用这种方式,我就能够测试我的 JMS 服务器上的吞吐量,因为负载会随着消息大小和消息计数的变化而变化。
每一个 ISyntheticMessageFactory 都有一个可配置的、任意的名称,JMSCollector 把它添加到跟踪名称空间。清单 15 展示了完全的配置:
清单 15. 综合消息 JMSCollector
<!-- The JNDI Provider -->
<bean id="jbossJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment"><props>
<prop key="java.naming.factory.initial">
org.jnp.interfaces.NamingContextFactory
</prop>
<prop key="java.naming.provider.url">
localhost:1099
</prop>
<prop key="java.naming.factory.url.pkgs">
org.jboss.naming:org.jnp.interfaces
</prop>
</props></property>
</bean>
<!-- The JMS Connection Factory Provider -->
<bean id="RealJMSConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jbossJndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<!-- A Set of Synthetic Message Factories -->
<bean id="MessageFactories" class="java.util.HashSet">
<constructor-arg><set>
<bean
class="org.runtimemonitoring.spring.collectors.jms.SimpleSyntheticMessageFactory">
<property name="name" value="MapMessage"/>
<property name="messageCount" value="10"/>
</bean>
<bean
class="org.runtimemonitoring.spring.collectors.jms.ByteArraySyntheticMessageFactory">
<constructor-arg type="java.net.URL"
value="file:///C:/projects3.3/RuntimeMonitoring/lib/jta26.jar"/>
<property name="name" value="ByteMessage"/>
<property name="messageCount" value="1"/>
</bean></set>
</constructor-arg>
</bean>
<!-- The JMS Collector -->
<bean id="LocalJMSSyntheticMessageCollector"
class="org.runtimemonitoring.spring.collectors.jms.JMSCollector"
init-method="springStart">
<property name="scheduler" ref="CollectionScheduler" />
<property name="logErrors" value="true" />
<property name="tracingNameSpace" value="JMS,Local,Synthetic Messages" />
<prope
|