Glassfish 4 - cluster setup - pooling database connections in DAS

I have a glass fish setup (DAS). One remote (SSH) node and one cluster with one instance per node. I also defined a connection pool and a data source for it.

My test app is very simple - it's a single servlet web app where I load the datasource like this:

@Resource(lookup = "jdbc/vadsacRootSource")
private Datasource datasource;

      

What doesn't work - the data source on the cluster instance (remote) cannot be created because the underlying pool cannot be found - see the stacktrace at the end of the post.

What works:

  • The same application on a local DAS node (defaul node)
  • Loading a string stored as a custom JNDI resource on both - remote and local
  • All application (data source too) for glassfish 3.1 - remote and local

So, something is wrong with the current version of Glassfish 4 - Datasources (or its pool) is not getting an instance (or found on JNDI?) On some remote SSH instance. I tested official release 4.0 and nightly version 4.1-bl3 - same problem

Do you have any ideas?

GlassFish Server Open Source Edition 4.0 - Bug Reporting

HTTP Status 500 - Internal Server Error


Type Exception report

message Internal Server Error

Description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class
com.sedo.webtesty.HelloWorld

The main reason

com.sun.enterprise.container.common.spi.util.InjectionException:
Error creating managed object for class: class
com.sedo.webtesty.HelloWorld

The main reason

com.sun.enterprise.container.common.spi.util.InjectionException:
Exception attempting to inject Res-Ref-Env-Property:
com.sedo.webtesty.HelloWorld / datasource@javax.sql.DataSource @ resolved
as: jndi: jdbc / vadsacRootSource @ res principal: null @ mail : null No
Runtime properties Database Vendor: null Create Tables at Deploy:
false Delete Tables at Undeploy: false into class
com.sedo.webtesty.HelloWorld: Lookup failed for
'java: comp / env / com.sedo.webtesty.HelloWorld / datasource' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming}

root cause

javax.naming.NamingException: Lookup failed for
'java: comp / env / com.sedo.webtesty.HelloWorld / datasource' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming} [Root
exception is javax.naming.NamingException: Lookup failed for
'jdbc / vadsacRootSource' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}
[Root exception is javax.naming.NamingException: Unable to lookup
resource: jdbc / vadsacRootSource [Root exception is
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
Lookup failed for '__SYSTEM / pools / mysqlRootVadsacPool' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}]]]

root cause

javax.naming.NamingException: Lookup failed for
'jdbc / vadsacRootSource' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}
[Root exception is javax.naming.NamingException: Unable to lookup
resource: jdbc / vadsacRootSource [Root exception is
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
Lookup failed for '__SYSTEM / pools / mysqlRootVadsacPool' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}]]

root cause

javax.naming.NamingException: Unable to lookup resource
: jdbc / vadsacRootSource [Root exception is
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
Lookup failed for '__SYSTEM / pools / mysqlRootVadsacPool' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}]

root call

com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
Lookup failed for '__SYSTEM / pools / mysqlRootVadsacPool' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}

root cause

javax.naming.NamingException: Lookup failed for
'__SYSTEM / pools / mysqlRootVadsacPool' in
SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs = com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName = java: comp / env / com.sedo.webtesty.HelloWorld / datasource}
[Root exception is javax.naming.NameNotFoundException:
pools]

The main reason

javax.naming.NameNotFoundException: pools

Note A complete trace of the exception stack and its root causes is available in GlassFish Server Open Source Edition 4.0 logs.


GlassFish Server Open Source Edition 4.0

+3


source to share


1 answer


The problem is fixed in the current version 4.1 - everything works now



0


source







All Articles