Skip to main content

Problem:

  • Product Name: Borland Enterprise Server, AppServer Edition
  • Product Version: 6.0, 6.5, 6.6 & 6.7
  • Platform/OS version: ALL

The number of JMS connections in JMX shows that the connections are not reduced after idleTimeout has kicked in. The test case is using these 2 properties in the sonic-resource.dar.

besConnectionPoolWaitTimeout=30
besConnectionPoolIdleTimeout=600

The test case is available in the\\examples\\ejb\\basic\\mdb\\src\\com\\borland\\examples\\ejb\\mdb example.

Resolution:

In the \\examples\\ejb\\basic\\mdb\\src\\com\\borland\\examples\\ejb\\mdb\\MessageReflector.java, the JMS Topic Connection is removed in the ejbRemove method of the Message DrivenBean (MDB).
In section 15.4.11 of the EJB 2.0.2 specification, it states as follows below:

The Bean Providercannot assume that the Container will always invoke the ejbRemove() method on a message-driven bean instance. The following scenarios result in ejbRemove() notbeing called on an instance:

• A crash of the EJB Container.

• A system exception thrown from theinstance’s method to the Container.

If the message-drivenbean instance allocates resources in the ejbCreate()method and/or in theonMessage method,and releases normally the resources in the ejbRemove()method, these resources will not be automatically released in the above scenarios. The application using the message-driven bean should provide some clean up mechanism to periodically clean up the unreleased resources.


#Security
#VisiBroker