维护的一个接口出现了执行时间超过半个小时情况。
1、接口执行超过半个小时未给调用程序反馈,调用程序认为调用失败,报错
com.caucho.hessian.io.HessianProtocolException:
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
at $Proxy0.createAccount(Unknown Source)
解决问题思路:查看源代码,分析171代码的含义
1、客户端连接关闭
2、网络数据丢包(linux下的iptables控制)
3、接口程序执行超过30分钟时
4、服务端连接关闭
四中方式下执行均未模拟出相同报错。
最后,考虑到程序是运行在负载机器上,通过负载机器访问接口程序,对于负载机器的原理不了解。问题一的解决到次搁浅。
由于对于apache负载机器的研究代价太大,于是,将程序执行时的打印日志:开始时间、执行时间、结束时间等。
问题2、在打印足够的日志发现接口执行确实超过半个小时,接口重复调用三次、四次的也确实存在。而像问题一的问题缺没有再次出现。
在测试环境双方联调测试发现:执行超过半个小时接口会被重复调用。跟踪访问日志发现调用方无二次调用操作,而接口二次调用。
于是,将此现象与服务器管理员描述后,调整了负载机的时间控制。问题得到规避。
抛砖引玉。
分享到:
相关推荐
在使用Delphi 7开发应用程序时,有时会遇到一个常见的问题,即在尝试调用Web Service时,程序因为Windows的数据执行保护(Data Execution Prevention, DEP)机制而失败。DEP是Windows操作系统为了提高系统安全性而...
此外,在复杂的业务场景中,可能需要同时调用多个WebService,此时若采用多线程处理,虽然可以在一定程度上解决阻塞问题,但由于多线程控制的复杂性,很容易引发线程安全等问题。 #### 三、异步通信的基本原理与...
例如,我们可以创建一个名为`AddNumbers`的方法,它接受两个整数参数并返回它们的和。方法签名可能如下所示: ```csharp [WebMethod] public int AddNumbers(int num1, int num2) { return num1 + num2; } ``...
总结,Ajax请求WebService的跨域问题可以通过JSONP和CORS两种方式解决。JSONP适用于简单的GET请求,而CORS则提供了更全面的跨域支持,包括POST、PUT等请求方法,并能设置更精细的控制策略。在实际项目中,开发者应...
例如,如果多个线程同时访问共享资源,可能引发数据竞争。为解决这些问题,可以使用锁(Mutex, Semaphore)、线程同步原语(Monitor)或线程安全的数据结构(如ConcurrentQueue, ConcurrentDictionary)。 七、异常...
因为只有一个锁`this`,即使递归调用,也不会出现两个线程争夺不同资源的情况。 7. 代码中没有正确利用数据库连接池,因为`Close()`是在`finally`块中调用的,可能导致连接在使用后立即关闭,而无法返回到连接池。...
冒泡排序是一种简单的排序算法,通过重复遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换,也就是说该数列已经排序完成。 #### 9\. C#...
18.5 两个attribute实例的相互匹配 18.6 检测定制attribute时不创建从Attribute派生的对象 18.7 条件attribute类 第19章 可空值类型 19.1 C#对可空值类型的支持 19.2 C#的空接合操作符 19.3 CLR对可空值类型...
Visual Studio 将这两个组成部分分别存储在一个单独的文件中。视觉元素在.aspx 文件中创建。 .aspx.cs 文件:Web 窗体页的编程逻辑 .aspx.cs 文件是 Web 窗体页的编程逻辑位于一个单独的类文件中,该文件称作代码...
- **题目**: 在SQL Server中,给定表`table1`中有两个字段`ID`、`LastUpdateDate`,其中`ID`表示更新的事务号,`LastUpdateDate`表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。 - **解答**: - ...
- 示例代码中展示了递归实现:对于斐波那契数列`F(n) = F(n-1) + F(n-2)`,当n小于等于2时返回1,否则返回前两个数的和。 3. C#中的委托和事件: - 委托:C#中的一种类型,可将方法作为参数传递,本质上是函数...
Visual Studio 将这两个组成部分分别存储在一个单独的文件中。视觉元素在 aspx 文件中创建。 4. aspx.cs 文件:Web 窗体页的编程逻辑 aspx.cs 文件是 Web 窗体页的编程逻辑位于一个单独的类文件中,该文件称作代码...
在.NET面试中,涉及的知识点广泛而深入,包括语言特性、框架应用、Web开发、数据库操作以及设计原则等多个方面。以下是对这些知识点的详细解析: 1. **Override与Overload的区别**: - `Override`(覆写)是在继承...
Visual Studio将这两个组成部分分别存储在一个单独的文件中。视觉元素在.aspx 文件中创建。 4. .ascx:ASP.NET的用户控件 用户控件(.ascx)是ASP.NET中的一个组件,提供了封装了特定功能和行为的Web页面的开发。...