Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果服务器突然下降,java代码会在中间终止吗?_Java_Jvm_Weblogic - Fatal编程技术网

如果服务器突然下降,java代码会在中间终止吗?

如果服务器突然下降,java代码会在中间终止吗?,java,jvm,weblogic,Java,Jvm,Weblogic,假设我有一个包含1000行代码的java函数,它部署在weblogic上 如果PC或Weblogic突然关闭(即强制关闭),代码是否有可能在1000行的X行运行和终止 如果是,是否有任何可能的方法在服务器恢复时“运行”其余代码(从X+1到1000) 谢谢 如果PC或Weblogic突然关闭(即强制关闭),代码是否有可能在1000行的X行运行和终止 是 如果是,是否有任何可能的方法在服务器恢复时“运行”其余代码(从X+1到1000) 您必须实现这样一种机制,然后它需要“重置”到X之前的某个点,然后

假设我有一个包含1000行代码的java函数,它部署在weblogic上

如果PC或Weblogic突然关闭(即强制关闭),代码是否有可能在1000行的X行运行和终止

如果是,是否有任何可能的方法在服务器恢复时“运行”其余代码(从X+1到1000)

谢谢

如果PC或Weblogic突然关闭(即强制关闭),代码是否有可能在1000行的X行运行和终止

如果是,是否有任何可能的方法在服务器恢复时“运行”其余代码(从X+1到1000)

您必须实现这样一种机制,然后它需要“重置”到
X
之前的某个点,然后恢复事务。尽管如此,您的实现可能是一个具有持久消息的rabbitmq主题。根据我的经验,更典型的配置涉及在集群中运行多个Weblogic服务器,并在此场景中故障转移到该集群的另一个成员(以及与持久队列的组合)

如果PC或Weblogic突然关闭(即强制关闭),代码是否有可能在1000行的X行运行和终止

如果是,是否有任何可能的方法在服务器恢复时“运行”其余代码(从X+1到1000)


您必须实现这样一种机制,然后它需要“重置”到
X
之前的某个点,然后恢复事务。尽管如此,您的实现可能是一个具有持久消息的rabbitmq主题。根据我的经验,更典型的配置是在一个集群中运行多个Weblogic服务器,并在此场景中故障切换到该集群的另一个成员(以及与持久队列相结合)。

无论您的代码执行什么操作,都可能随时因外部故障而中断。JRE本身是无状态的;在某一点上没有自动恢复的方法。代码本身必须设计为“可重启”。也就是说,它必须将状态保存到某种外部的、持久的服务中。如果此代码正在修改外部资源(调用web服务、数据库等),它还必须在重新启动时以某种方式将其保存的状态与外部资源同步


RabbitMQ可以在某些方面提供帮助——它是一个有保证的传递消息总线。它可以确保传递给外部资源的消息。如果您想要一个分布式的、集群感知的应用程序,它还可以在代码的多个运行实例之间进行同步,这是很难做到的

无论您的代码在做什么,它都可能随时被外部故障中断。JRE本身是无状态的;在某一点上没有自动恢复的方法。代码本身必须设计为“可重启”。也就是说,它必须将状态保存到某种外部的、持久的服务中。如果此代码正在修改外部资源(调用web服务、数据库等),它还必须在重新启动时以某种方式将其保存的状态与外部资源同步


RabbitMQ可以在某些方面提供帮助——它是一个有保证的传递消息总线。它可以确保传递给外部资源的消息。如果您想要一个分布式的、集群感知的应用程序,它还可以在代码的多个运行实例之间进行同步,这是很难做到的

谢谢,该功能实际上是在集群中运行的&我们发现在故障切换/服务器关闭期间,代码有时会运行一半。有了MQ,我们能保证整个代码完全运行吗(不熟悉它)?你的问题仍然很模糊;服务器随时可能崩溃。您需要将代码设计为快速失败,并在一般情况下处理失败。您可能还会发现,向代码添加额外的跟踪功能有助于查找故障源。谢谢,该功能实际上是在集群中运行的&我们发现,在故障切换/服务器关闭期间,代码有时会运行一半。有了MQ,我们能保证整个代码完全运行吗(不熟悉它)?你的问题仍然很模糊;服务器随时可能崩溃。您需要将代码设计为快速失败,并在一般情况下处理失败。您可能还会发现,在代码中添加额外的跟踪有助于查找故障源。这听起来更像是服务器稳定性问题,而不是编程问题。如果服务器需要停机,您可以始终先以安全的方式关闭应用程序。这听起来更像是服务器稳定性问题,而不是编程问题。如果服务器需要关闭,您可以始终先以安全的方式关闭应用程序。