今天在看OGG的日志时。发现例如以下OGG-01224 Bad file number错误。查阅资料才知道port不可用,看了一下mgr的參数,发现是设置的DYNAMICPORTLIST 动态port。为什么还不可用。看看MOS上面咋说的:

OGG GoldenGate Extract | Pump
Abends with: "TCP/IP Error 9 (Bad File Number)" (文档 ID 1359087.1)
转究竟部

In this Document

_afrLoop=3534080417780040&id=1359087.1&_adf.ctrl-state=z21n9swk4_33#SYMPTOM" style="">Symptoms

 

_afrLoop=3534080417780040&id=1359087.1&_adf.ctrl-state=z21n9swk4_33#CAUSE" style="">Cause

  Solution
  References

APPLIES TO:

Oracle GoldenGate – Version 11.1.1.1.0 and later

Information in this document applies to any platform.

***Checked for relevance on 24-Mar-2013***

SYMPTOMS

Extract or pump abends with "TCP/IP error 9 (Bad file number)" when starting.

The exact error number may vary:

e.g.,

1. Version 11.1.1.1 12771498

ERROR OGG-01224 TCP/IP error 9 (Bad file number).

ERROR OGG-01668 PROCESS ABENDING.

2. pre GA release version:  v11_1_1_1_024

GGS ERROR 150 TCP/IP error 9 (Bad file number). 

GGS ERROR 190 PROCESS ABENDING.

Let's say you only have 4 Extract pump processes communicating with this target system, and have specified 21 dynamic ports on the target system. Why can't your Extract connect
to the remote system?

CAUSE

The cause is that all the ports listed in DYNAMICPORTLIST in the manager parameter at downstream server are in use.

This error message is usually due to port allocation failure or some orphan collector processes on target preventing the startup of new collectors.

In the GoldenGate environment on the target system, check the ports that Manager is using with this command:

GGSCI (ggdb1) 21> send mgr getportinfo detail

Sending GETPORTINFO, request to MANAGER …

Dynamic Port List

Starting Index 21

Reassign Delay 3 seconds

Entry Port Error Process Assigned Program

—– —– —– ———- ——————- ——-

0 7810 98

1 7811 98

2 7812 0

3 7813 0 18713 2011/07/28 20:39:12 Server

4 7814 0

5 7815 0 3662 2011/07/29 22:11:02 Server

6 7816 0 27070 2011/07/30 02:16:11 Server

7 7817 0 7789 2011/07/31 16:56:10 Server

8 7818 0 14116 2011/07/31 17:36:18 Server

9 7819 0 10900 2011/07/31 17:59:59 Server

10 7820 0 28045 2011/08/01 04:26:01 Server

11 7821 98

12 7822 0 31379 2011/08/01 05:29:31 Server

13 7823 0 23538 2011/08/02 10:21:54 Server

14 7824 0 23593 2011/08/02 10:22:01 Server

15 7825 0 6687 2011/08/03 07:17:50 Server

16 7826 0 17339 2011/08/03 07:22:01 Server

17 7827 0 24905 2011/08/03 08:51:51 Server

18 7828 98

19 7829 0 1881 2011/08/03 08:55:45 Server

20 7830 0 5884 2011/08/03 08:57:03 Server

It is reporting error 98 on the open ports from 7810-7828. The error 98 is "address in use".

You can also check the Manager report file on the target system (dirrpt/MGR.rpt) for an error message.

GGS INFO 301 Command received from EXTRACT on host 10.30.113.28 (START SERVER CPU -1 PRI -1 PARAMS ).

GGS INFO 302 No Dynamic Ports Available.

This confirms that the Manager cannot allocate anymore dynamic ports. Since there should be plenty of ports available, this indicates that there may be "orphaned" server collector
processes.

SOLUTION

The workaround is to increase the port numbers in DYNAMICPORTLIST in mgr.prm.

Bounce the manager afterwards.

If the source Extract dies without communicating to the target server collector, that server will be orphaned and must be killed. Development plans to improve this behavior in a future release (tracked via enhancement Bug 10430342), but until that time, they
must be handled manually in this manner.

You can determine which processes are orphans by stopping the upstream pumps and then seeing what Server processes are still running, and killing them. Once these servers are killed, you should be able restart all the pumps.

In ggsci on the target system:

send mgr childstatus debug

This will retrieve status information about processes started by Manager, and the corresponding port numbers that have been allocated by Manager.

GGSCI (ggdb1) 23> send mgr childstatus debug

Sending CHILDSTATUS, request to MANAGER …

Child Process Status – 14 Entries

ID Group Process Retry Retry Time Start Time Port

—- ——– ———- —– —————— ———– —-

0 PEESIS 27760 0 None 2011/08/04 09:30:45 7843

1 PPESIS 27767 0 None 2011/08/04 09:30:45 7845

2 SRESIP 31149 1 2011/08/04 09:44:32 2011/08/04 09:30:45 8003

3 PEASPIS 3177 2 2011/08/04 10:12:07 2011/08/04 09:30:45 8002

4 PPASPIS 27784 0 None 2011/08/04 09:30:45 7854

5 SRASPIP 27792 0 None 2011/08/04 09:30:45 7860

6 PEIPATIS 27798 0 None 2011/08/04 09:30:46 7861

8 SRIPATIP 27800 0 None 2011/08/04 09:30:46 8000

9 PEDTIS 28879 0 None 2011/08/04 09:30:53 8001

13 PETIBCOS 28959 0 None 2011/08/04 09:30:58 8004

19 SRDTIP 29051 0 None 2011/08/04 09:31:07 8005

20 SREEXIP 29060 0 None 2011/08/04 09:31:08 8006

21 SREXCIP 29097 0 None 2011/08/04 09:31:09 8007

22 SRIPIP 29098 0 None 2011/08/04 09:31:10 8008

You can also use this command to determine what server collector processes are running:

ps -ef | grep server

{ggate}sintegoradb1.aeso.ca:/usr/ggate/product/10.4.0/ggs >ps -ef | grep server

ggate 1881 7278 0 08:55 ? 00:00:02 ./server -p 7829 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 3556 1 0 Jul25 ?

00:01:57 ./server -p 7877 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 3558 1 0 Jul20 ?

00:03:51 ./server -p 7828 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 5884 7278 0 08:57 ?

00:00:02 ./server -p 7830 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

root 6312 1 0 Jul05 ? 00:00:00 /usr/bin/hidd –server

ggate 6687 7278 0 07:17 ? 00:00:04 ./server -p 7825 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 9121 1 0 Jul06 ? 00:07:34 ./server -p 7953 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

root 10924 1 0 Jul05 ?

00:00:00 /usr/libexec/gam_server

ggate 13060 1 0 Jul22 ? 00:02:35 ./server -p 7867 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 14345 1382 0 13:32 pts/4 00:00:00 grep server

ggate 17339 7278 0 07:22 ? 00:00:03 ./server -p 7826 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 18528 1 0 Jul06 ? 00:05:54 ./server -p 7967 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 23233 1 0 Jul06 ? 00:05:55 ./server -p 7965 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 23538 7278 0 Aug02 ? 00:00:14 ./server -p 7823 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 23593 7278 0 Aug02 ? 00:00:15 ./server -p 7824 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 24905 7278 0 08:51 ? 00:00:02 ./server -p 7827 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

ggate 31379 7278 0 Aug01 ? 00:00:28 ./server -p 7822 -k -l /usr/ggate/product/10.4.0/ggs/ggserr.log

In summary:

1) Stop the Manager on the target system, and all of the upstream GoldenGate pump Extract processes.

2) Kill any remaining server processes.

3) Restart the Manager, and then restart the Extracts.

REFERENCES

OGG-01224 Bad file number的更多相关文章

  1. 解决 TortoiseGit 诡异的 Bad file number 问题

    http://blog.csdn.net/renfufei/article/details/41648061 问题描述 昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一 ...

  2. GitHub上传不了的解决 ssh: connect to host github.com port 22: Bad file number git did not exit cleanly (exit code 128)

    问题情况 本来一直用的是github的客户端,结果现在上传的时候出问题了,去网站上看,新项目已经创建,但是代码却怎么都上传不上去.于是只好用命令行的方式解决. Tortoisegit上是这样说的: g ...

  3. 解决 TortoiseGit 诡异的 Bad file number 问题(转)

    问题描述 昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一个诡异的问题. 卸载,清理注册表,重装,重启,各种折腾以后,还是不能解决. 但是23.45分一过,突然灵光一闪 ...

  4. (转)解决 TortoiseGit 诡异的 Bad file number 问题

    此问题,请不要使用 rebase, 下载最新的 TortoiseGit 即可: TortoiseGit-2.3中文版与Git安装包_手册: http://download.csdn.net/detai ...

  5. Unable to open the physical file xxxx. Operating system error 2

    在新UAT服务器上,需要将tempdb放置在SSD(固态硬盘)上.由于SSD(固态硬盘)特性,所以tempdb的文件只能放置在D盘下面,而不能是D盘下的某一个目录下面. ALTER  DATABASE ...

  6. InnoDB: Error number 24 means ‘Too many open files’.--转载

    一.问题的描述 备份程序 执行前滚的时候报错.(-apply-log) InnoDB: Errornumber 24 means 'Too many open files'. InnoDB: Some ...

  7. Oracle中 根据 file# 和 block# 找到对象

    我们在10046生产的trace 文件里经常看到下面的信息. 表示系统在等待散列读取某个文件号的某个块开始的8个块. WAIT #6: nam='db file scattered read' ela ...

  8. 左右v$datafile和v$tempfile中间file#

    v$datafile关于存储在文件中的数据视图的信息,v$tempfile查看存储在一个临时文件中的信息. 有两种观点file#现场,首先来看看官方文件的定义: V$DATAFILE This vie ...

  9. Natas Wargame Level 13 Writeup(文件上传漏洞,篡改file signature,Exif)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADDCAYAAAC29BgbAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF

随机推荐

  1. Xcode6 Xcode7 Xcode 官方链接 --备用

    Xcode 6 官方下载链接: http://adcdownload.apple.com//wwdc_2014/xcode_6_beta_ie8g3n/xcode_6_beta.dmg   Xcode ...

  2. bzoj 1023: [SHOI2008]cactus仙人掌图 tarjan缩环&&环上单调队列

    1023: [SHOI2008]cactus仙人掌图 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1141  Solved: 435[Submit][ ...

  3. BZOJ 1711: [Usaco2007 Open]Dingin吃饭

    Description 农夫JOHN为牛们做了很好的食品,但是牛吃饭很挑食. 每一头牛只喜欢吃一些食品和饮料而别的一概不吃.虽然他不一定能把所有牛喂饱,他还是想让尽可能多的牛吃到他们喜欢的食品和饮料. ...

  4. Java ,单实例 多线程 ,web容器,servlet与struts1-2.x系列,线程安全的解决

    1.Servlet是如何处理多个请求同时访问呢? 回答:servlet是默认采用单实例,多线程的方式进行.只要webapp被发布到web容器中的时候,servlet只会在发布的时候实例化一次,serv ...

  5. hdu 4452

    今天模拟赛的一个模拟题: 每次看到这种题就感觉很繁琐: 这次静下心来写写,感觉还不错!就是很多错误,浪费了一点时间: 代码: #include<cstdio> #include<cs ...

  6. Codeforces Round #198 (Div. 2) —— C

    C题很容易看懂题目,不过两个循环肯定会TLE,所以得用点小聪明: 首先排好序,因为是全排列,乱序和顺序的结果是一样的: 然后呢···· 如果是数列 1 2 3 4 5 元素1 被 2 3 4 5每个减 ...

  7. perl 初始化Hash

    Vsftp:/root/perl/6# cat a5.pl use Data::Dumper; my @arr=qw/a bc d /; my %rec=(); for $field (@arr){ ...

  8. linux必会的60个命令

    ◆ 安装和登录命令:login.shutdown.halt.reboot.install.mount.umount.chsh.exit.last: ◆ 文件处理命令:file.mkdir.grep.d ...

  9. UNion ALL 和 UNION 的区别

    UNION: 指定合并多个结果集并将其作为单个结果集返回.ALL: 将全部行并入结果中.其中包括重复行.如果未指定该参数,则删除重复行.

  10. webbrowser控件事件

    Beforenavigate2: Fired before navigate occurs in the given WebBrowser(window or frameset element). T ...