当前位置: 首页 > 知识库问答 >
问题:

Spring批次

长孙阳成
2023-03-14

我们正在从Oracle DB迁移到Azure SQL Server,用于我们的Spring批处理应用程序

我断断续续地得到以下错误

错误:01.03.2022:1458(40.269)[]main]命令行JobRunner:作业因错误而终止:创建名为“dateStoreList”的bean时出错:设置bean属性“jobRepository”时无法解析对bean“jobRepository”的引用;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建名为“jobRepository”的bean时出错:调用init方法失败;嵌套的异常是org。springframework。jdbc。支持MetaDataAccessException:无法获取用于提取元数据的连接;嵌套的异常是org。springframework。jdbc。CannotGetJdbcConnectionException:无法获取JDBC连接;嵌套的异常是org。阿帕奇。平民dbcp。SQLNestedException:无法创建PoolableConnectionFactory(到主机sqlsrv-01.database.windows.net端口1433的TCP/IP连接已失败。错误:“sqlsrv-01.database.windows.net。验证连接属性。确保SQL Server实例正在主机上运行,并在端口接受TCP/IP连接。确保到端口的TCP连接未被防火墙阻止。”)

数据来源:

<!-- Connection Pooled DATA SOURCE -->
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
    <propertyname="driverClassName"value="${jdbc.driverClassName}"/>
    <propertyname="url"value="${jdbc.url}"/>
    <propertyname="connectionProperties"value="sendStringParametersAsUnicode=false;"/>
    <propertyname="username"value="${jdbc.username}"/>
    <propertyname="password"value="${jdbc.password}"/>
    <property name="initialSize" value="2" />
    <property name="maxActive" value="20" />
    <property name="maxIdle" value="1" />
    <property name="validationQuery" value="SELECT 1"/>
    <propertyname="testOnBorrow"value="false"/>
    <propertyname="testWhileIdle"value="true"/>
    <propertyname="timeBetweenEvictionRunsMillis"value="1200000"/>
    <propertyname="minEvictableIdleTimeMillis"value="3000000"/>
    <propertyname="numTestsPerEvictionRun"value="10"/>
    <propertyname="poolPreparedStatements"value="true"/>
    <propertyname="defaultAutoCommit"value="false"/>
</bean>

如何在Spring批处理应用程序级别启用重试,以自动处理任何数据库间歇性故障和恢复?

共有1个答案

黎曾笑
2023-03-14

根据这个答案,作为临时解决方案,您可以添加?autoReconnect=true到您的JDBC URL。不过,我想知道这是否是一种绷带解决方案,是否存在更糟糕的问题。看看这篇关于断开连接的微软文章。你的人际关系是否变得陈旧和中断?

 类似资料:
  • 你好 我是Spring Batch世界的新手,最后几天我花时间观看Michael Minella的YouTube视频,阅读一些文档并成功运行我在互联网上找到的一些演示项目。我认为Spring Batch是我们需求的热门候选者。但这是我们的故事。 我在一家公司工作,该公司在十多年前为他们的业务部门开发了自己的调度和批处理框架。该框架能够运行数据库存储程序、数据库函数和动态SQL。不用说,维护它非常具

  • 我需要根据工作步骤1中的某些条件来决定下一步调用哪个步骤。 请注意:在步骤1中,我使用的是纯tasklet方法。例子: 请帮助,我如何在示例tasklet中放入一些代码或进行一些配置以决定调用的下一步? 我已经调查过https://docs.spring.io/spring-batch/reference/html/configureStep.html

  • 如果其他人已经解决了这个问题,那就只是寻找一些信息。我想同时使用Spring集成和Spring批处理。这两个都是SpringBoot应用程序,理想情况下,我希望将它们和各自的配置分开,这样它们都是自己的可执行jar。我在自己的进程空间中执行它们时遇到问题,我相信我希望,除非有人能说服我,否则,每个程序都能像自己的Spring Boot应用程序一样运行,并用自己的配置文件和属性初始化自己。不过,我遇

  • 按照标题,我有一个使用spring Batch在后端运行的服务。 我的服务: 作业已停止,但控制台中仍输出文本: 我不知道如何在作业停止时停止-method。我怎么做?

  • 使用CommandLineRunner处理工作

  • 在Spring batch中(请参见https://docs.Spring.io/spring-batch/3.0.x/reference/html/metadataschema.html),有六个表: batch_job_execution batch_job_execution_context batch_job_execution_params batch_job_instance batc