JDBC failing since moving to 5.5.1

Post any questions regarding Installing or Upgrading Ebase, including problems starting up the Ebase Xi Server or Designer

Moderators: Jon, Steve, Ian, Dave

neilnewman
Ebase User
Posts: 201
Joined: Fri Dec 20, 2013 1:29 pm
Location: Dartford Borough Council
Contact:

JDBC failing since moving to 5.5.1

#1

Postby neilnewman » Mon Aug 26, 2019 3:23 pm

I have just upgraded our LIVE ebase system and we are getting issues connecting via JDBC to our Ingres server, we get the following message and the connection fails, any ideas please as I don't want to roll it back after spending so long upgrading it:
NB: Testing the connection via the Admin console succeeds.
Looking online there appears to be suggestions that the Open Source 11 JDK can show these issues:
https://stackoverflow.com/questions/411 ... bctemplate
I need this fixed ASAP, can I revert the install back to Java 8, until a fix is available or are you aware of the issue and have a fix?

Kind regards
Neil

Mon Aug 26 16:02:03: ERROR Error getting connection using Database Connection HSGPUB
com.atomikos.jdbc.AtomikosSQLException: Connection pool exhausted - try increasing 'maxPoolSize' and/or 'borrowConnectionTimeout' on the DataSourceBean.
at com.atomikos.jdbc.AtomikosSQLException.throwAtomikosSQLException(AtomikosSQLException.java:29)
at com.atomikos.jdbc.AbstractDataSourceBean.throwAtomikosSQLException(AbstractDataSourceBean.java:76)
at com.atomikos.jdbc.AbstractDataSourceBean.throwAtomikosSQLException(AbstractDataSourceBean.java:71)
at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:351)
at com.atomikos.jdbc.nonxa.AtomikosNonXADataSourceBean.getConnection(AtomikosNonXADataSourceBean.java:189)
at com.ebasetech.ufs.kernel.DatabaseConnections.getDataSourceConnection(DatabaseConnections.java:224)
at com.ebasetech.ufs.kernel.DatabaseConnections.getConnection(DatabaseConnections.java:159)
at com.ebasetech.ufs.kernel.DatabaseConnections.getConnection(DatabaseConnections.java:166)
at com.ebasetech.ufs.kernel.UFSServletContextProxy.getDBConnection(UFSServletContextProxy.java:608)
at com.ebasetech.ufs.runtime.resources.RuntimeDBSource.getConnection(RuntimeDBSource.java:576)
at com.ebasetech.ufs.runtime.resources.RuntimeDBSource.fetchUsingPreparedStatement(RuntimeDBSource.java:206)
at com.ebasetech.ufs.runtime.resources.RuntimeDBSource.fetch(RuntimeDBSource.java:108)
at com.ebasetech.ufs.validation.FetchSourceCommand.execute(FetchSourceCommand.java:36)
at com.ebasetech.ufs.validation.CommandProcessor.process(CommandProcessor.java:2939)
at com.ebasetech.ufs.runtime.events.CommandTextNode.execute(CommandTextNode.java:107)
at com.ebasetech.ufs.runtime.events.RunnableContext.execute(RunnableContext.java:71)
at com.ebasetech.ufs.runtime.events.SuspendableExecutable.execute(SuspendableExecutable.java:47)
at com.ebasetech.ufs.validation.Node.execute(Node.java:627)
at com.ebasetech.ufs.validation.Root.execute(Root.java:45)
at com.ebasetech.ufs.runtime.events.RunnableContext.execute(RunnableContext.java:71)
at com.ebasetech.ufs.runtime.events.SuspendableExecutable.execute(SuspendableExecutable.java:47)
at com.ebasetech.ufs.runtime.events.SuspendableContainerExecutable.execute(SuspendableContainerExecutable.java:26)
at com.ebasetech.ufs.runtime.events.ScriptNode.execute(ScriptNode.java:30)
at com.ebasetech.ufs.runtime.events.EventScriptNode.execute(EventScriptNode.java:37)
at com.ebasetech.ufs.runtime.events.RunnableContext.execute(RunnableContext.java:71)
at com.ebasetech.ufs.runtime.events.SuspendableExecutable.execute(SuspendableExecutable.java:47)
at com.ebasetech.ufs.runtime.events.SuspendableContainerExecutable.execute(SuspendableContainerExecutable.java:26)
at com.ebasetech.ufs.runtime.events.BaseEventNode.execute(BaseEventNode.java:32)
at com.ebasetech.ufs.runtime.events.RunnableContext.execute(RunnableContext.java:71)
at com.ebasetech.ufs.runtime.events.SuspendableExecutable.execute(SuspendableExecutable.java:47)
at com.ebasetech.ufs.runtime.events.SuspendableContainerExecutable.execute(SuspendableContainerExecutable.java:26)
at com.ebasetech.ufs.runtime.events.RunnableContext.execute(RunnableContext.java:71)
at com.ebasetech.ufs.runtime.events.SuspendableExecutable.execute(SuspendableExecutable.java:47)
at com.ebasetech.ufs.runtime.events.SuspendableContainerExecutable.execute(SuspendableContainerExecutable.java:26)
at com.ebasetech.ufs.runtime.events.RunnableContext.execute(RunnableContext.java:71)
at com.ebasetech.ufs.runtime.Request.execute(Request.java:448)
at com.ebasetech.ufs.runtime.Request.execute(Request.java:417)
at com.ebasetech.ufs.runtime.Request._execute(Request.java:352)
at com.ebasetech.ufs.runtime.Request.execute(Request.java:317)
at formservlets.FormProcessingUtil.executeRequest(FormProcessingUtil.java:504)
at formservlets.FormProcessor.performExecution(FormProcessor.java:163)
at formservlets.FormProcessor.processRequest(FormProcessor.java:150)
at formservlets.FormProcessor.runForm(FormProcessor.java:46)
at formservlets.FormClient.processingForm(FormClient.java:167)
at formservlets.FormClient.process(FormClient.java:88)
at formservlets.FormClient.doPost(FormClient.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at formservlets.EbaseFilter.processHtmlRequest(EbaseFilter.java:364)
at formservlets.EbaseFilter.processRequest(EbaseFilter.java:259)
at formservlets.EbaseFilter.performFilter(EbaseFilter.java:181)
at formservlets.EbaseFilter.doFilter(EbaseFilter.java:100)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:476)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Mon Aug 26 16:02:03: INFO Transaction rolled back
Mon Aug 26 16:02:03: INFO Transaction rolled back
0 x

neilnewman
Ebase User
Posts: 201
Joined: Fri Dec 20, 2013 1:29 pm
Location: Dartford Borough Council
Contact:

Re: JDBC failing since moving to 5.5.1

#2

Postby neilnewman » Tue Aug 27, 2019 6:59 am

I appear to of found the issue:
The database connection validation query to our Ingres database read: "select 1 from dual", I changed this to "select 1" and all appears to now be working.
Any reasons behind why this change is now required?

Thanks
Neil
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

Re: JDBC failing since moving to 5.5.1

#3

Postby Jon » Tue Aug 27, 2019 10:30 am

The transaction manager used by Verj.io has changed from JOTM to Atomikos in V5.5, which also means that the database connection pool manager software has changed. Your problem probably occurred because Atomikos is stricter and requires that the validation query is valid. But we have also had many problems historically with these validation queries being invalid and this leading to connection pool full problems so it's a bit surprising that you haven't experienced problems before.
0 x

neilnewman
Ebase User
Posts: 201
Joined: Fri Dec 20, 2013 1:29 pm
Location: Dartford Borough Council
Contact:

Re: JDBC failing since moving to 5.5.1

#4

Postby neilnewman » Tue Aug 27, 2019 12:13 pm

Thanks Jon,
I think your right that we were lucky not to get issues earlier, I found this page that got me to correct the problem:

Database validationQuery notes

hsqldb - select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
Oracle - select 1 from dual
DB2 - select 1 from sysibm.sysdummy1
mysql - select 1
microsoft SQL Server - select 1 (tested on SQL-Server 9.0, 10.5 [2008])
postgresql - select 1
ingres - select 1
derby - values 1
H2 - select 1
Firebird - select 1 from rdb$database

Thanks again
Neil
0 x


Who is online

Users browsing this forum: Google [Bot] and 5 guests