CustomWare
 
 

The Problem

If you see the error message "Too Many Open Files" in the webMethods Integration Server log, this probably relates to the fact that the Integration Server contains too many open file handles on the file system (usually either the repository or the partner manager mailbox). This error may trigger other symptoms such as the SAP adapter not starting up correctly or all the routing rules defined in the partner manager going missing.

The Solution

To resolve this issue, shutdown the Integration Server, delete all the contents in the WmRepository2 folder (you may want to check the partner manager mailbox sub folders as well) and restart the server.

The Integration Server keeps the files in the repository and partner manager mailbox open while the server is running. The repository contains a *.dat file which has a list of pointers to all the VH files in the repository. The Integration Server fails to delete some of these files after they are no longer needed by the system. As such, the repository grows and is not cleaned up. Eventually, the excessive number of files will cause the "Too many open files" error.

Another useful thing to do is to change the datastore of the partner manager from file system to database to reduce the number of file handles.

If the repository is also used to store user defined Persistent information(like configuration information) via pub.storage services, i assume that deleting all the content of WmRepository2 Folder is not recommended?

I think 'wm.tn.enumerate:deleteQueryResults' releases some of file handles.

Quoting From Ray Moser's Article "Using the IS Repository for Data Storage" on WmUsers EZine
"<<The Repository stores all of the data in the /WmRepository2/ directory. Each file begins with "VH" and a 13-digit number (i.e., VH51025188790084.) The Integration Server uses the Repository store to temporarily store data for use by Trading Networks (Queued Documents for example), returned data rows in the case of TN Console queries and application level global variable settings (WmSession, Jobs In/Out.)>>"

Posted by sekay at Dec 02, 2005 09:06

It's generally not a good idea to store user defined objects in the repository. Use a properties file or a database instead