Thanks for that, but... Well, the messages in this case are only happening once per minute, and yet managed to cause all of the sockets on a machine to be occupied within the span of a couple of weeks.
I think I stabilized things a little by using CLIENT_ACKNOWLEDGE mode for all of my messages and explicitly do acknowlegement in the receivers. Under Windows 2000 and Linux that seems to allow sockets to be closed properly. I'm not sure if this is significant to the developers or not though. As long as I can run a JBoss server for a couple of weeks at a time, or longer without requiring a restart, I'm happy. ;) At one point I had a server on line for two months without a boot (to the head). -Neal On June 3, 2002 11:19 pm, you wrote: > This is just a wild guess (and maybe it really is a bug in JBoss...), but > how about also closing the JNDI context? It could *theoretically* be > possible that the JNDI contexts accumulate too fast for the garbage > collector to keep up...? > > -----Original Message----- > From: Neal Sanche [mailto:[EMAIL PROTECTED]] > Sent: Monday, June 03, 2002 6:50 PM > To: [EMAIL PROTECTED] > Subject: [JBoss-user] JBoss 2.4.6 JMS Socket Leak > > > Hi All, > > I've been encountering socket leaks in JBoss 2.4.6 when running code > similar > > to the following to send JMS messages to topics on which Message Driven > Beans > are listening. > > public static void sendLogItem(int type, String message) { > TopicPublisher publisher = null; > TopicConnection connection = null; > TopicSession session = null; > try { > InitialContext jndiContext = new InitialContext(); > Topic topic = (Topic)jndiContext.lookup("topic/logEventTopic"); > TopicConnectionFactory factory = > (TopicConnectionFactory)jndiContext.lookup("TopicConnectionFactory"); > connection = factory.createTopicConnection(); > session = connection.createTopicSession(false, > Session.AUTO_ACKNOWLEDGE); > publisher = session.createPublisher(topic); > LogData evt = new LogData(); > evt.setMessage(message); > evt.setType(type); > ObjectMessage msg = session.createObjectMessage(evt); > publisher.publish(msg); > } catch (Throwable ex) { > } finally { > if (publisher != null) { > try { > publisher.close(); > } catch (Throwable discard) {} > } > if (session != null) { > try { > session.close(); > } catch (Throwable discard) {} > } > if (connection != null) { > try { > connection.close(); > } catch (Throwable discard) {} > } > } > } > > As shown, I've tried to be careful to close anything that might need > closing, > but I'm probably missing something here, since after numerous calls to this > method, a number of unclosed sockets will accumulate until no more sockets > can be allocated by my program. What am I doing wrong here? > > Thanks in advance. > > -Neal > > _______________________________________________________________ > > Don't miss the 2002 Sprint PCS Application Developer's Conference > August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm > > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user > > > DISCLAIMER: The information in this message is confidential and may be > legally privileged. It is intended solely for the addressee. Access to > this message by anyone else is unauthorized. If you are not the intended > recipient, any disclosure, copying, or distribution of the message, or any > action or omission taken by you in reliance on it, is prohibited and may be > unlawful. Please immediately contact the sender if you have received this > message in error. Thank you. _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
