开发者社区> 问答> 正文

docker集群springboot项目链接oracle会出错

使用docker部署了3个boot项目容器,oracle在另外一台服务器上,三个容器启动的时候,不能同时启动,同时启动会报 Connection reset

原提问者GitHub用户Gyv12345

展开
收起
山海行 2023-07-05 19:41:09 73 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果Docker集群中Spring Boot项目连接Oracle数据库会报错,可能的原因有以下几点:

    数据库连接配置不正确。比如IP、端口、用户名、密码写错了。

    数据库账户权限不足。项目需要的权限(如插入、查询等)没有给该数据库账户。

    网络问题。Docker容器内部和外部的网络配置不当,无法联通到Oracle实例。

    jar包版本兼容性问题。Oracle的JDBC驱动和Spring框架版本不匹配。

    Docker容器时区与数据库时区不一致。这可能会影响Date和Timestamp类型的字段。

    JDBC URL使用了其他服务的域名。Docker容器内部DNS解析问题。

    多个应用共用一个数据库连接池导致问题。比如应用1链接失败后,应用2再链接时出错。

    Oracle Privaceman 和 Wallet 配置不当。需要维护密码或者加密连接到数据库。

    这些常见的原因,可以从下几个方面排查:

    检查数据库连接配置
    查看Oracle数据库的应用权限配置
    验证网络 entre Docker容器和 Oracle实例是否连通
    校验Spring Boot和JDBC驱动的兼容性
    设置Docker容器与Oracle数据库使用同一时区
    使用IP而非域名修复JDBC URL
    设置独立的数据库连接池
    调整Oracle身份验证相关的配置

    2023-07-30 15:46:26
    赞同 展开评论 打赏
  • 已经解决,问题是因为在容器中java程序连接数据库,需要传一个随机码,但是在容器中的程序,生成随机码的速度非常的慢,造成了程序的报错。在生成镜像的时候,直接对jvm进行了设置,就解决了

    原回答者GitHub用户Gyv12345

    2023-07-06 11:04:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
构建基因数据应用生态系统—— docker in Bio/informatics 立即下载