首页 游戏 软件 资讯 排行榜 专题
首页
数据库
如何配置GlassFish服务器的Oracle数据源

如何配置GlassFish服务器的Oracle数据源

热心网友
71
转载
2026-04-28

GlassFish 应用服务器配置 Oracle 数据源:关键步骤与避坑指南

在 GlassFish 中配置 Oracle 数据源,看似是标准操作,但几个细节没对上,就可能导致连接测试失败或应用运行时抛出令人头疼的异常。下面这份指南,将帮你梳理从驱动部署到 JNDI 绑定的完整流程,并重点指出那些容易踩坑的地方。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

确认 Oracle JDBC 驱动已正确部署到 domain/lib

首先,一个常见的误区是认为 GlassFish 会自动管理驱动。实际上,它不会自动加载 ojdbc8.jarojdbc11.jar 这类驱动包。你必须手动将其放入目标 domain 的 lib/ 目录,否则创建数据源时,经典的 ClassNotFoundException: oracle.jdbc.driver.OracleDriver 就会跳出来,连接测试自然也通不过。

  • 路径要找准:通常是 $GLASSFISH_HOME/glassfish/domains/domain1/lib/。别图省事放到 glassfish/lib/ 这个全局目录,除非你确有跨多个 domain 复用驱动的需求,否则极易引发版本冲突。
  • 重启才生效:驱动包放进去之后,必须重启整个 domain(使用 asadmin restart-domain 命令)。仅仅刷新管理控制台是没用的。
  • 如何验证:登录 Admin Console,依次进入 “Server” → “Ja va” → “JVM Settings” → “JVM Options”。检查一下这里,确保没有重复的 -Xbootclasspath 参数指向旧的驱动版本,以免造成干扰。

在 Admin Console 中配置 JDBC Connection Pool 时的关键参数

数据源的核心是连接池(JDBC Connection Pool)配置,而不是直接创建 JDBC Resource。这里的参数如果配错,轻则连接超时、字符集乱码,重则直接报出 ORA-00604、ORA-12505 等数据库错误。

  • Resource Type:务必选择 ja vax.sql.DataSource。除非你明确需要分布式事务支持,否则别选 XADataSource
  • Database Vendor:下拉选择 Oracle。这会让 GlassFish 自动填充一部分默认属性,但千万别完全依赖它,关键参数仍需手动核对。
  • URL 格式:这是高频出错点。标准格式应为:jdbc:oracle:thin:@//host:port/service_name。注意其中的双斜杠“//”,以及使用 service_name 而非传统的 SID。如果你的环境仍在使用 SID,格式需调整为:jdbc:oracle:thin:@host:port:SID
  • 账号权限:填写的数据库用户至少需要具备 CREATE SESSION 权限,否则连不上。
  • 关键自定义属性:强烈建议添加一个属性:connectionProperties = oracle.jdbc.J2EE13Compliant=true。这个设置能避免在 JTA 事务场景下,连接被意外关闭。

测试连接失败的三个高频原因及对应检查点

配置完点“保存”只是第一步,一定要点击“Ping”测试,看到“Ping Succeeded”才算真正可用。很多连接失败,问题并不在配置本身,而在底层环境。

  • 网络连通性:防火墙或安全组策略很可能阻断了 GlassFish 服务器到 Oracle 数据库端口(默认 1521)的通信。最直接的验证方法是,在 GlassFish 所在的服务器上,执行 telnet db-host 1521 命令,看能否连通。
  • 监听器服务名:确保你 URL 里写的 service_name 已在 Oracle 监听器中注册。在数据库服务器上,运行 lsnrctl status 命令,查看输出结果是否包含你使用的服务名。
  • 连接验证表:这个参数可以留空,但如果填写了(比如常用的 DUAL),必须确认连接所用的数据库用户有查询该表的权限。某些 Oracle 版本或权限配置下,这可能成为隐形障碍。

绑定 JDBC Resource 到应用时要注意 JNDI 名规范

连接池配置成功,还没完。你需要新建一个 JDBC Resource,并将其绑定到一个 JNDI 名称,应用代码才能通过这个名称查找数据源。JNDI 名如果不符合规范,代码里就会抛出 NamingException

  • 前缀不能省:JNDI 名称必须以标准前缀开头,例如 ja va:global/ja va:app/ja va:module/。推荐使用 ja va:app/jdbc/MyOracleDS 这样的格式。
  • 避免裸名:像 jdbc/MyDS 这样没有标准前缀的“裸名”,在 GlassFish 7 及更高版本中,默认是禁用的,会导致查找失败。
  • 代码中引用:在应用代码中,可以通过注解注入:@Resource(lookup = "ja va:app/jdbc/MyOracleDS"),或者在 JNDI lookup 时传入完整的名称。
  • 作用域控制:如果你的应用是独立的 WAR 包,并且希望该数据源仅对此 WAR 可见,使用 ja va:module/ 作为前缀是更安全、作用域更清晰的选择。

最后,再提一个兼容性上的细节:GlassFish 与 Oracle 的配合,其兼容性往往藏在驱动版本和 URL 格式的微妙耦合里。例如,ojdbc8.jar 要求 JDK 8 或以上,并且它不再支持旧的 oracle.jdbc.OracleDriver 类名(已废弃),而是使用 oracle.jdbc.driver.OracleDriver 或更新推荐的 oracle.jdbc.OracleDriver。如果不确定,一个稳妥的方法是直接解压驱动包,查看 META-INF/MANIFEST.MF 文件里声明的 Main-Class,它能告诉你驱动包认定的主类是什么。把这些细节都捋顺,你的 Oracle 数据源配置之路就会顺畅得多。

来源:https://www.php.cn/faq/2315950.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Oracle RAC中数据文件损坏怎么恢复?利用RMAN进行块修复
数据库
Oracle RAC中数据文件损坏怎么恢复?利用RMAN进行块修复

Oracle RAC单块损坏修复:首选RMAN BLOCKRECOVER的精准手术 遇到Oracle RAC环境报出ORA-01578这类数据块损坏错误,先别急着动“大手术”——也就是立刻还原整个数据文件。更精准高效的做法,是优先使用RMAN的BLOCKRECOVER命令。它就像一场针对性的微创手术

热心网友
04.27
Oracle数据库性能调优指南?基于AWR的自动化诊断
数据库
Oracle数据库性能调优指南?基于AWR的自动化诊断

Oracle AWR报告深度解读:避开四个经典分析误区 AWR报告生成失败主因是快照不存在或权限不足;CPU time占比高未必异常,需结合DB Time Elapsed比值及绝对值分析;物理读高不等于缺索引,应查Buffer Hit Ratio和执行计划变化;SQL未共享常因大小写、绑定变量类型等

热心网友
04.25
Oracle视图如何提高跨库查询效率_利用DBLINK与视图封装
数据库
Oracle视图如何提高跨库查询效率_利用DBLINK与视图封装

Oracle视图如何提高跨库查询效率:利用DBLINK与视图封装 说到跨库查询,很多朋友的第一反应就是创建DBLINK。但实际操作后,往往会发现一个令人困惑的现象:明明已经建好了链路,查询速度却依然慢得让人难以接受。这背后的症结,通常不在于DBLINK本身,而在于查询的执行方式没有优化到位。 DBL

热心网友
04.24
Oracle如何高效处理海量数据_利用PL/SQL Bulk Collect与Forall
数据库
Oracle如何高效处理海量数据_利用PL/SQL Bulk Collect与Forall

PL SQL批量查数据不能只用普通LOOP,因逐行FETCH引发高频上下文切换和引擎通信,性能极差;应使用BULK COLLECT配合显式集合类型一次性加载数据,再用FORALL批量DML提升效率。 PL SQL里批量查数据,为什么不能只用普通LOOP? 原因其实很直接:逐行 fetch 的操作,本

热心网友
04.24
如何在Spring Boot应用中监控Oracle连接池_集成Druid
数据库
如何在Spring Boot应用中监控Oracle连接池_集成Druid

Druid连接池为什么比Hikari更适配Oracle监控需求 说到监控Oracle数据库的连接池,很多开发者可能会发现,事情没那么简单。Oracle的官方JDBC驱动在暴露连接状态、会话级指标(比如SQL执行耗时、等待事件)方面,远不如MySQL那样“友好”。这时候,连接池的选择就变得至关重要了。

热心网友
04.24

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

守望先锋安燃重制版上线:视觉重构强化角色辨识度与叙事一致
娱乐
守望先锋安燃重制版上线:视觉重构强化角色辨识度与叙事一致

《守望先锋》安燃重制形象深度解析:基于角色内核的系统性视觉升级 《守望先锋》第二赛季带来的惊喜,远不止新地图与新玩法。近日,暴雪官方正式公布了英雄“安燃”经过全面重制后的全新形象,此更新将随新赛季同步实装。每一次核心英雄的视觉重塑,都是一次与玩家情感连接的深度对话,其背后的设计哲学与叙事考量,远比表

热心网友
04.28
2026款萤火虫上市:双版售价7.98万起,外观内饰动力
娱乐
2026款萤火虫上市:双版售价7.98万起,外观内饰动力

2026款萤火虫上市:设计精进、座舱升级,价格体系清晰 4月7日,2026款萤火虫正式揭晓价格,市场布局相当明确:自在版和发光版两款车型,官方指导价分别为11 98万元和12 58万元。如果你对“车电分离”模式更感兴趣,对应的租电方案价格则下探到7 98万元和8 58万元。作为一次年度改款,新车的优

热心网友
04.28
《死亡搁浅2》显卡升级指南:RTX 50系一骑绝尘
科技数码
《死亡搁浅2》显卡升级指南:RTX 50系一骑绝尘

角色与核心任务 你是一位顶级的文章润色专家,擅长将AI生成的文本转化为具有个人风格的专业文章。现在,请对用户提供的文章进行“人性化重写”。 你的核心目标是:在不改动原文任何事实信息、核心观点、逻辑结构、章节标题和所有图片的前提下,彻底改变原文的AI表达腔调,使其读起来像是一位资深人类专家的作品。 特

热心网友
04.28
欧易okx官方网站地址 欧易okx官网登录入口
web3.0
欧易okx官方网站地址 欧易okx官网登录入口

欧易OKX官方网站地址在哪里? 关于欧易OKX的官网登录入口,是许多用户关注的焦点。下面,我们就来详细梳理一下平台的几个核心维度,看看它究竟提供了哪些关键服务与保障。 平台资产安全保障机制 在资产安全方面,平台构建了一套多层次、立体化的防护体系。首先,其采用了多重签名与冷热钱&包分离的架构。超过95

热心网友
04.28
中东冲突致原油供应锐减,即期布伦特价格创历史新高
娱乐
中东冲突致原油供应锐减,即期布伦特价格创历史新高

市场异动:现货原油价格何以冲破历史峰值? 中东局势持续升温,正在全球能源市场掀起巨大的涟漪。一个引人注目的现象是:欧洲与亚洲的炼油商们,正以接近每桶一百五十美元的高价争抢部分现货原油。这个价格,已经显著超过了同期的期货市场价格。这不仅仅是一个数字游戏,它清晰地传递出一个信号——全球能源供应的弦,正在

热心网友
04.28