简体   繁体   English

Glassfish 4 - 集群设置 - DAS上的数据库连接池

[英]Glassfish 4 - clustered setup - database connection pool on DAS

I have a glassfish 4 installation (DAS). 我有一个glassfish 4安装(DAS)。 One remote (SSH) node and one cluster with one instance on that node. 一个远程(SSH)节点和一个在该节点上具有一个实例的集群。 Also i have defined a connection pool and the datasource for it. 我也为它定义了一个连接池和数据源。

My test application is very simple - it is a web application with one servlet, in that i load the datasource in the following way: 我的测试应用程序非常简单 - 它是一个带有一个servlet的Web应用程序,我以下列方式加载数据源:

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

What does not work - the datasource on the cluster instance (remote) cannot be instantiated, because the underlying pool cannot be found - stacktrace see at the end of the message. 什么不起作用 - 集群实例(远程)上的数据源无法实例化,因为无法找到基础池 - stacktrace在消息的末尾看到。

What does work: 什么工作:

  • The same application on the local DAS node (defaul node) 本地DAS节点上的相同应用程序(默认节点)
  • The Loading of a string saved as custom JNDI resource on both - remote and local 在远程和本地上加载保存为自定义JNDI资源的字符串
  • The whole application (the datasource, too) on the glassfish 3.1 - remote and local glassfish 3.1上的整个应用程序(数据源也是) - 远程和本地

So, there is something wrong with the current glassfish 4 version - Datasources (or its pool) does not get instantiated (or found per JNDI?) on some remote SSH instance. 那么,当前的glassfish 4版本有问题 - 在某些远程SSH实例上,Datasources(或其池)没有实例化(或者每个JNDI找到?)。 I have tested the official release 4.0 and the nightly build version 4.1-bl3 - the same problem 我测试了官方版本4.0和每晚构建版本4.1-bl3 - 同样的问题

Do you have any idea? 你有什么主意吗?

GlassFish Server Open Source Edition 4.0 - Error report GlassFish Server开源版4.0 - 错误报告

HTTP Status 500 - Internal Server Error HTTP状态500 - 内部服务器错误


type Exception report 类型异常报告

message Internal Server Error 消息内部服务器错误

description The server encountered an internal error that prevented it from fulfilling this request. description服务器遇到内部错误,导致无法完成此请求。

exception 例外

 javax.servlet.ServletException: Error instantiating servlet class javax.servlet.ServletException:实例化servlet类时出错\ncom.sedo.webtesty.HelloWorld com.sedo.webtesty.HelloWorld 

root cause 根本原因

 com.sun.enterprise.container.common.spi.util.InjectionException: com.sun.enterprise.container.common.spi.util.InjectionException:\nError creating managed object for class: class 为类创建托管对象时出错:class\ncom.sedo.webtesty.HelloWorld com.sedo.webtesty.HelloWorld 

root cause 根本原因

 com.sun.enterprise.container.common.spi.util.InjectionException: com.sun.enterprise.container.common.spi.util.InjectionException:\nException attempting to inject Res-Ref-Env-Property: 尝试注入Res-Ref-Env-Property的异常:\ncom.sedo.webtesty.HelloWorld/datasource@javax.sql.DataSource@ resolved com.sedo.webtesty.HelloWorld / datasource @javax.sql.DataSource @已解决\nas: jndi: jdbc/vadsacRootSource@res principal: null@mail: null No as:jndi:jdbc / vadsacRootSource @res principal:null @ mail:null No\nRuntime properties Database Vendor : null Create Tables at Deploy : 运行时属性数据库供应商:null在部署时创建表:\nfalse Delete Tables at Undeploy : false into class false在Undeploy中删除表:false到类\ncom.sedo.webtesty.HelloWorld: Lookup failed for com.sedo.webtesty.HelloWorld:Lookup失败了\n'java:comp/env/com.sedo.webtesty.HelloWorld/datasource' in 'java:comp / env / com.sedo.webtesty.HelloWorld / datasource'in\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming} java.naming.factory.url.pkgs = com.sun.enterprise.naming} 

root cause 根本原因

 javax.naming.NamingException: Lookup failed for javax.naming.NamingException:查找失败\n'java:comp/env/com.sedo.webtesty.HelloWorld/datasource' in 'java:comp / env / com.sedo.webtesty.HelloWorld / datasource'in\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root java.naming.factory.url.pkgs = com.sun.enterprise.naming} [Root\nexception is javax.naming.NamingException: Lookup failed for 异常是javax.naming.NamingException:查找失败\n'jdbc/vadsacRootSource' in 'jdbc / vadsacRootSource'中\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource} com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源}\n[Root exception is javax.naming.NamingException: Unable to lookup [根异常是javax.naming.NamingException:无法查找\nresource : jdbc/vadsacRootSource [Root exception is resource:jdbc / vadsacRootSource [根异常是\ncom.sun.appserv.connectors.internal.api.ConnectorRuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:\nLookup failed for '__SYSTEM/pools/mysqlRootVadsacPool' in “__SYSTEM / pools / mysqlRootVadsacPool”中的查找失败\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}]]] com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源}]]] 

root cause 根本原因

 javax.naming.NamingException: Lookup failed for javax.naming.NamingException:查找失败\n'jdbc/vadsacRootSource' in 'jdbc / vadsacRootSource'中\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource} com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源}\n[Root exception is javax.naming.NamingException: Unable to lookup [根异常是javax.naming.NamingException:无法查找\nresource : jdbc/vadsacRootSource [Root exception is resource:jdbc / vadsacRootSource [根异常是\ncom.sun.appserv.connectors.internal.api.ConnectorRuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:\nLookup failed for '__SYSTEM/pools/mysqlRootVadsacPool' in “__SYSTEM / pools / mysqlRootVadsacPool”中的查找失败\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}]] com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源}]] 

root cause 根本原因

 javax.naming.NamingException: Unable to lookup resource javax.naming.NamingException:无法查找资源\n: jdbc/vadsacRootSource [Root exception is :jdbc / vadsacRootSource [根异常是\ncom.sun.appserv.connectors.internal.api.ConnectorRuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:\nLookup failed for '__SYSTEM/pools/mysqlRootVadsacPool' in “__SYSTEM / pools / mysqlRootVadsacPool”中的查找失败\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}] com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源}] 

root cause 根本原因

 com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:\nLookup failed for '__SYSTEM/pools/mysqlRootVadsacPool' in “__SYSTEM / pools / mysqlRootVadsacPool”中的查找失败\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource} com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源} 

root cause 根本原因

 javax.naming.NamingException: Lookup failed for javax.naming.NamingException:查找失败\n'__SYSTEM/pools/mysqlRootVadsacPool' in '__SYSTEM / pools / mysqlRootVadsacPool'中\nSerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, SerialContext [myEnv = {java.naming.factory.initial的= com.sun.enterprise.naming.impl.SerialInitContextFactory,\njava.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,\njava.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.url.pkgs = com.sun.enterprise.naming,\ncom.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource} com.sun.enterprise.naming.logicalName =的java:comp / env的/ com.sedo.webtesty.HelloWorld /数据源}\n[Root exception is javax.naming.NameNotFoundException: [根异常是javax.naming.NameNotFoundException:\npools] 池] 

root cause 根本原因

 javax.naming.NameNotFoundException: pools javax.naming.NameNotFoundException:池 

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.0 logs. note备注 GlassFish Server Open Source Edition 4。0日志中提供了异常的完整堆栈跟踪及其根本原因。


GlassFish Server Open Source Edition 4.0 GlassFish Server开源版4.0

在当前的4.1版本中修复了这个问题 - 现在一切正常

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM