Seems like glassfish is not closing the batch job xml file in META-INF/batch-jobs .
I am executing batchlet periodically and I have confirmed that opened batch job xml grows over time
and eventually glassfish throws "too many files open" error.
Maybe this behavior is related to this issue:
After executing a batchlet, this error is thrown consistently when you shut down glassfish.
WARNING: Input stream has been finalized or forced closed without being explicitly closed; stream instantiation reported in following stack trace
java.lang.Throwable
at com.sun.enterprise.loader.ASURLClassLoader$SentinelInputStream.<init>(ASURLClassLoader.java:1280)
at com.sun.enterprise.loader.ASURLClassLoader.getResourceAsStream(ASURLClassLoader.java:938)
at com.ibm.jbatch.container.services.impl.DelegatingJobXMLLoaderServiceImpl.loadJobFromBatchJobs(DelegatingJobXMLLoaderServiceImpl.java:96)
at com.ibm.jbatch.container.services.impl.DelegatingJobXMLLoaderServiceImpl.loadJSL(DelegatingJobXMLLoaderServiceImpl.java:70)
at com.ibm.jbatch.container.api.impl.JobOperatorImpl.startInternal(JobOperatorImpl.java:112)
at com.ibm.jbatch.container.api.impl.JobOperatorImpl.start(JobOperatorImpl.java:86)