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.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