On May 5, 2014, at 1:15 AM, Anu Prab <anupr...@gmail.com> wrote:

>>> Hi,
>>> 
>>>> We are using Tomcat 7.0.40 version. We are using Tomcat DBCP for
>>>> pooling connections.
>>>> 
>>>> We are able to pool connections for different aliases. But for
>>>> one alias, connections are not pooling. The user and password is
>>>> good because the
>>>> same
>>>> alias in apache dbcp works fine.
>>>> 
>>>> What do you mean by “alias”?  Not following you there.
>>>> 
>>> Well, alias is the resource name.
> 
>>> That wasn't clear in your first post.
> 
>>>> Why are we not able to pool any connections here?
>>>> 
>>>> Also, what do you mean when you say it’s “not pooling”?  Are you
>>>> getting
>>>> an >error or exception?  If so, what is it?
>>>> 
>>>> Yes, whenever a connection is requested from this particular
>>>> resource, a null pointer exception is thrown at the point of
>>>> invoking getConnection.
> 
>> Stack trace?
> java.lang.NullPointerException
>        at
> org.apache.tomcat.jdbc.pool.ConnectionPool.setupConnection(ConnectionPool.java:285)
>        at
> org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:189)
>        at com.xxxx.CustomFactory.createDataSource(CustomFactory.java:90)

1.) As I mentioned before, remove your custom factory and try without it.  If 
the error doesn’t go away (although I suspect it will), post a new stack trace.

2.) If possible, step into the code with a debugger and see what’s triggering 
the NPE.

Dan


>        at
> org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:237)
>        at
> org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
>        at
> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
>        at org.apache.naming.NamingContext.lookup(NamingContext.java:843)
>        at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
>        at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
>        at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
>        at
> org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1093)
>        at
> org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:672)
>        at
> org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:271)
>        at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
>        at
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>        at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
>        at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>        at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>        at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>        at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
>        at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
>        at
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1654)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>        at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> 
> 
>>>> Here is a sample of context xml entry:
>> 
>>>> Are you putting this in “conf/context.xml”?  If so, are you sure
>>>> that’s
>>> what you want?
>>>> 
>>>> Yes, this is from context.xml.
> 
>>> There can be more than one context.xml. Dan was asking if you are sure
>>> you wanted to modify the site-wide context.xml file instead of just
>>> doing it for a single web application (which is much more popular and
>>> safe).
> 
> Sorry, I got you wrong the first time. This entry is in the web
> application's context.xml. conf/context.xml does not have any entry related
> to this web application.
> 
>>>> All the resources work except for one. What could be the reason?
>>>> 
>>>> <Resource name="jdbc/resource" auth="Container"
>>>> type="javax.sql.DataSource" fairQueue="true" factory="<
>>>> customEncrytpedFactory>”
>>>> 
>>>> Have you tried taking your custom factory out of the mix and
>>>> using a stock
>>>> one? > Do you still see the same issue?
>>>> 
>>>> Since the same custom factory is working for other resources except
>>>> for this one, I have not tried this out.
>>>> 
>>>> username="<username>" password="<encrypted_password>"
>>>> driverClassName="oracle.jdbc.OracleDriver" url="<url>"
>>>> timeBetweenEvictionRunsMillis="1800000" validationQuery="SELECT 1
>>>> from dual" validationInterval="30000" maxActive="50" minIdle="4"
>>>> maxIdle="4" maxWait="10000" initialSize="4"
>>>> removeAbandonedTimeout="60" removeAbandoned="true"
>>>> logAbandoned="false" minEvictableIdleTimeMillis="600000"
>>>> initSQL="<initSQL>” testOnBorrow="false" testOnReturn="false"
>>>> testWhileIdle="true" />
> 
>> Okay, what are the differences between the <Resource> configuration
>> and your usage of them? NPE would likely point to an incorrect
>> resource name being used in your code, but since you haven't posted
>> any stack trace, I can only guess.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to