2017-07-17 1 views
-1

Ich bin neu in der Verbindungspooling-Technik und im Tomcat Official Guide für den Tomcat JDBC-Verbindungspool gibt es eine Option zum Initialisieren von Pooling nach Plain Java Class durch Initialisierung der Data Source-Klasse. Aber wenn ich versuche, dasselbe zu implementieren, gibt es mir ständig die Ausnahme. Meine URL ist korrekt.Konfigurieren von Tomcat Connection Pooling ohne Verwendung von JNDI

Kann jemand verstehen, was alles erforderlich ist, um Connection Pooling mit Pool Properties einzurichten?

String dburl="jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=hostname) (PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=shostname2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Service)))"; 

p.setUrl(dburl); 
p.setDriverClassName("oracle.jdbc.OracleDriver"); 
p.setUsername(username); 
p.setPassword(pwd); 
p.setJmxEnabled(true); 
p.setTestWhileIdle(false); 
p.setTestOnBorrow(true); 
p.setValidationQuery("SELECT 1 from dual"); 
p.setTestOnReturn(false); 
p.setValidationInterval(30000); 
p.setTimeBetweenEvictionRunsMillis(30000); 
p.setMaxActive(100); 
p.setInitialSize(10); 
p.setMaxWait(10000); 
p.setRemoveAbandonedTimeout(600); 
p.setMinEvictableIdleTimeMillis(30000); 
p.setMinIdle(10); 
p.setLogAbandoned(true); 

p.setRemoveAbandoned(true); 
p.setJdbcInterceptors(
     "org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;" 
     + "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer;" 
     + "org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer"); 

p.setLogValidationErrors(true); datasource = new org.apache.tomcat.jdbc.pool.DataSource(); 
datasource.setPoolProperties(p); 



Jul 17, 2017 1:47:58 PM org.apache.tomcat.jdbc.pool.ConnectionPool init 
SEVERE: Unable to create initial connections of pool. 
java.sql.SQLException: invalid arguments in call 
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) 
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) 
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160) 
    at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:183) 
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346) 
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) 
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310) 
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203) 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:732) 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:664) 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:479) 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154) 
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118) 
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107) 
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:131) 
    at org.telstra.ipdam.utils.DatasourceConnection.getConnection(DatasourceConnection.java:29) 
    at org.telstra.ipdam.persistence.Service.getEnrichmentDetails(Service.java:50) 
    at org.telstra.ipdam.enrichmentResource.EnrichmentUpdate.getEnrichmentMessage(EnrichmentUpdate.java:73) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    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:144) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) 
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) 
    at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) 
    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:317) 
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) 
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) 
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) 
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434) 
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 
+0

Bitte setzen voll stacktrace – user7294900

+0

Bitte nicht umbuchen Fragen versuchen. Wenn Sie darauf aufmerksam machen müssen, müssen Sie der ursprünglichen Frage weitere Informationen hinzufügen. –

+0

Diese Frage ist markiert und voll von [Tag: jndi]. Was bedeutet also "ohne Verwendung von JNDI" in Ihrem Titel? – EJP

Antwort

-1

dieses Problem aufgrund oracle.jdbc Treiber auftreten Sie p.setDriverClassName("oracle.jdbc.driver.OracleDriver"); anstelle von p.setDriverClassName("oracle.jdbc.OracleDriver");

+0

Ich habe das versucht, aber hat nicht funktioniert. Immer noch den gleichen Fehler werfen. –

+0

Wenn das das Problem wäre, wäre er nicht so weit gekommen wie er. – EJP