首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iSeries机器上的PASE出现网络错误

iSeries机器上的PASE出现网络错误
EN

Stack Overflow用户
提问于 2011-05-17 18:35:16
回答 1查看 330关注 0票数 1

我正在运行一个服务器程序,它是用C编写的,运行在iSeries机器上的PASE上。PASE (Portable AIX Solutions Environment)是在iSeries机器上模拟AIX。

服务器程序是一种面向连接的迭代tcp服务器。

服务器逻辑包含对accept()的调用,它返回一个套接字描述符。然后调用ioctl(),使用F_IONBIO设置套接字的非阻塞状态。

这个对ioctl的调用间歇性地失败,返回-1并返回errno =9 (EBADF : bad file descriptor),大约0.8%的调用次数。一旦对特定套接字描述符失败,下一次失败总是针对相同的套接字描述符和相同的errno。

当发生这种情况时,客户端失败,errno = 73,即连接被对等重置。

服务器是一个守护进程;因此stdin在初始化时关闭,并在接受()时可用。最初,我观察到套接字描述符0的ioctl()失败,但并非总是如此。因此,我试图通过将stdin设置为'/dev/null‘来防止套接字描述符0的重用,以防出现问题。但我不确定这是否是主要问题。但在此更改后仍无法获得测试结果。

仅在某些计算机上观察到该问题,并且通常在计算机加载时出现。因此,这似乎是一种竞争条件。服务器逻辑经过了良好的测试,看起来很稳定。

在PASE或AIX平台上是否观察到任何与套接字相关的问题?这会与操作系统有关吗?

任何关于这个问题的帮助/指示都将不胜感激。

提前谢谢你,

平均

EN

回答 1

Stack Overflow用户

发布于 2011-06-04 14:13:08

您是否有可能遇到每个作业默认最多200个文件描述符的问题?

如果是这样,您可以使用DosSetRelMaxFH()--Change Maximum Number of File Descriptors应用编程接口来增加限制。

如果这不是问题所在,我建议收集并检查错误的SST通信跟踪。有关详细信息,请参阅TCP/IP Communications Trace Instructions

接下来,我将检查组PTF水平,特别是SF99315 TCP/IP组PTF。

IBM支持对跟踪此类问题非常有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6029567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档