I have a multithreaded web application running under JBoss 6.2. It seems that 2 threads are attempting access concurrently. Any suggestions.
01/07/15 10:07:14 WARN [server ]: Error creating connection to BaseX server - attempt 0 java.io.IOException: Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 7.6 Java: Oracle Corporation, 1.7.0_71 OS: Windows Server 2008 R2, amd64 Stack Trace: java.nio.channels.OverlappingFileLockException sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255) sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152) sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1056) org.basex.io.random.TableDiskAccess.lck(TableDiskAccess.java:183) org.basex.io.random.TableDiskAccess.sharedLock(TableDiskAccess.java:170) org.basex.io.random.TableDiskAccess.<init>(TableDiskAccess.java:83) org.basex.data.DiskData.init(DiskData.java:122) org.basex.data.DiskData.<init>(DiskData.java:92) org.basex.core.cmd.Open.open(Open.java:70) org.basex.core.cmd.Open.run(Open.java:36) org.basex.core.Command.run(Command.java:342) org.basex.core.Command.run(Command.java:117) org.basex.core.cmd.Check.run(Check.java:38) org.basex.core.Command.run(Command.java:342) org.basex.core.Command.exec(Command.java:321) org.basex.core.Command.execute(Command.java:78) org.basex.server.ClientListener.run(ClientListener.java:145) at com.pilotfish.eip.basex.BaseXClient.execute(BaseXClient.java:79) at com.pilotfish.eip.basex.BaseXClient.execute(BaseXClient.java:91) at com.pilotfish.eip.basex.txlog.BaseXSubmitter.createBaseXClient(BaseXSubmitter.java:54) at com.pilotfish.eip.basex.txlog.BaseXSubmitter.getBaseXClient(BaseXSubmitter.java:45) at com.pilotfish.eip.basex.txlog.BaseXSubmitter.execute(BaseXSubmitter.java:111) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.constructHealthComponentSettings(TransactionLogServiceImpl.java:726) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:696) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:700) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:700) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.getHealthComponentConfiguration(TransactionLogServiceImpl.java:607) at com.pilotfish.eip.rest.services.TransactionLogResource.getHealthComponentConfiguration(TransactionLogResource.java:247) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:353) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:343) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:983) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:359) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) at java.lang.Thread.run(Thread.java:745)
Carl R Bondeson Systems Developer Department of Public Health Data Processing 410 Capitol Ave Hartford, CT 06134 Phone: 860-509-7434 carl.bondeson@ct.govmailto:carl.bondeson@ct.gov [cid:image001.jpg@01D02A62.E91E67F0]http://www.ct.gov/dph
Additional information There are 2 classes running that are both using BaseX. Mine uses a client/server paradigm
// create BaseX session on server mapperSession = new ClientSession("localhost", 1984, "admin", "admin"); // open database on server mapperSession.execute("open Mapper");
.. Run queries Etc. etc.
A helper method to provide cleanup in a highly threaded environment
public void Close() { try { mapperSession.close(); } catch (IOException e) {
basexlog.error("BaseXMapper: Error during close:" + e.getLocalizedMessage()); }
}
I am unaware of the other application's model. My class is used in a numerous XSLT Xalan callouts to provide various translation, transformation, and validation processing that would be problematic to code in straight XSLT 1.0.
From: basex-talk-bounces@mailman.uni-konstanz.de [mailto:basex-talk-bounces@mailman.uni-konstanz.de] On Behalf Of Bondeson, Carl Sent: Wednesday, January 07, 2015 10:16 AM To: basex-talk@mailman.uni-konstanz.de Subject: [basex-talk] BaseX Concurrency
I have a multithreaded web application running under JBoss 6.2. It seems that 2 threads are attempting access concurrently. Any suggestions.
01/07/15 10:07:14 WARN [server ]: Error creating connection to BaseX server - attempt 0 java.io.IOException: Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.demailto:basex-talk@mailman.uni-konstanz.de Version: BaseX 7.6 Java: Oracle Corporation, 1.7.0_71 OS: Windows Server 2008 R2, amd64 Stack Trace: java.nio.channels.OverlappingFileLockException sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255) sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152) sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1056) org.basex.io.random.TableDiskAccess.lck(TableDiskAccess.java:183) org.basex.io.random.TableDiskAccess.sharedLock(TableDiskAccess.java:170) org.basex.io.random.TableDiskAccess.<init>(TableDiskAccess.java:83) org.basex.data.DiskData.init(DiskData.java:122) org.basex.data.DiskData.<init>(DiskData.java:92) org.basex.core.cmd.Open.open(Open.java:70) org.basex.core.cmd.Open.run(Open.java:36) org.basex.core.Command.run(Command.java:342) org.basex.core.Command.run(Command.java:117) org.basex.core.cmd.Check.run(Check.java:38) org.basex.core.Command.run(Command.java:342) org.basex.core.Command.exec(Command.java:321) org.basex.core.Command.execute(Command.java:78) org.basex.server.ClientListener.run(ClientListener.java:145) at com.pilotfish.eip.basex.BaseXClient.execute(BaseXClient.java:79) at com.pilotfish.eip.basex.BaseXClient.execute(BaseXClient.java:91) at com.pilotfish.eip.basex.txlog.BaseXSubmitter.createBaseXClient(BaseXSubmitter.java:54) at com.pilotfish.eip.basex.txlog.BaseXSubmitter.getBaseXClient(BaseXSubmitter.java:45) at com.pilotfish.eip.basex.txlog.BaseXSubmitter.execute(BaseXSubmitter.java:111) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.constructHealthComponentSettings(TransactionLogServiceImpl.java:726) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:696) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:700) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:700) at com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.getHealthComponentConfiguration(TransactionLogServiceImpl.java:607) at com.pilotfish.eip.rest.services.TransactionLogResource.getHealthComponentConfiguration(TransactionLogResource.java:247) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:353) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:343) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:983) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:359) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) at java.lang.Thread.run(Thread.java:745)
Carl R Bondeson Systems Developer Department of Public Health Data Processing 410 Capitol Ave Hartford, CT 06134 Phone: 860-509-7434 carl.bondeson@ct.govmailto:carl.bondeson@ct.gov [cid:image001.jpg@01D02A68.0B359250]http://www.ct.gov/dph
Hi Carl,
I am sorry we cannot provide feedback for older version of BaseX, as potential error may already have been fixed. Could you please check out our latest stable snapshot [1] and report back to us if the problem persists or has been fixed?
Thanks in advance, Christian
[1] http://files.basex.org/releases/latest
On Wed, Jan 7, 2015 at 4:15 PM, Bondeson, Carl Carl.Bondeson@ct.gov wrote:
I have a multithreaded web application running under JBoss 6.2. It seems that 2 threads are attempting access concurrently. Any suggestions.
01/07/15 10:07:14 WARN [server ]: Error creating connection to BaseX server - attempt 0
java.io.IOException: Improper use? Potential bug? Your feedback is welcome:
Contact: basex-talk@mailman.uni-konstanz.de
Version: BaseX 7.6
Java: Oracle Corporation, 1.7.0_71
OS: Windows Server 2008 R2, amd64
Stack Trace:
java.nio.channels.OverlappingFileLockException
sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1056)
org.basex.io.random.TableDiskAccess.lck(TableDiskAccess.java:183)
org.basex.io.random.TableDiskAccess.sharedLock(TableDiskAccess.java:170)
org.basex.io.random.TableDiskAccess.<init>(TableDiskAccess.java:83)
org.basex.data.DiskData.init(DiskData.java:122)
org.basex.data.DiskData.<init>(DiskData.java:92)
org.basex.core.cmd.Open.open(Open.java:70)
org.basex.core.cmd.Open.run(Open.java:36)
org.basex.core.Command.run(Command.java:342)
org.basex.core.Command.run(Command.java:117)
org.basex.core.cmd.Check.run(Check.java:38)
org.basex.core.Command.run(Command.java:342)
org.basex.core.Command.exec(Command.java:321)
org.basex.core.Command.execute(Command.java:78)
org.basex.server.ClientListener.run(ClientListener.java:145)
at
com.pilotfish.eip.basex.BaseXClient.execute(BaseXClient.java:79)
at
com.pilotfish.eip.basex.BaseXClient.execute(BaseXClient.java:91)
at
com.pilotfish.eip.basex.txlog.BaseXSubmitter.createBaseXClient(BaseXSubmitter.java:54)
at
com.pilotfish.eip.basex.txlog.BaseXSubmitter.getBaseXClient(BaseXSubmitter.java:45)
at
com.pilotfish.eip.basex.txlog.BaseXSubmitter.execute(BaseXSubmitter.java:111)
at
com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.constructHealthComponentSettings(TransactionLogServiceImpl.java:726)
at
com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:696)
at
com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:700)
at
com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.setHealthComponentConfiguration(TransactionLogServiceImpl.java:700)
at
com.pilotfish.eip.rest.impl.TransactionLogServiceImpl.getHealthComponentConfiguration(TransactionLogServiceImpl.java:607)
at
com.pilotfish.eip.rest.services.TransactionLogResource.getHealthComponentConfiguration(TransactionLogResource.java:247)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606) at
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
at
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195)
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:353)
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:343)
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
at
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)
at
org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at
org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at
org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at
org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at
org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318)
at
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)
at
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:983)
at
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:359)
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372)
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
at java.lang.Thread.run(Thread.java:745)
Carl R Bondeson
Systems Developer
Department of Public Health
Data Processing
410 Capitol Ave
Hartford, CT 06134
Phone: 860-509-7434
carl.bondeson@ct.gov
[image: Description: DPH Logo - Keeping CT Healthy] http://www.ct.gov/dph
basex-talk@mailman.uni-konstanz.de